题目名称 3118. [GXOI/GZOI2019]与或和
输入输出 andorsum.in/out
难度等级 ★★★☆
时间限制 3000 ms (3 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatar梦那边的美好ET 于2019-04-27加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:2, 通过率:50%
Gravatar梦那边的美好ET 100 8.083 s 26.52 MiB C++
Gravatar梦那边的美好ET 0 12.037 s 26.52 MiB C++
关于 与或和 的近10条评论(全部评论)

3118. [GXOI/GZOI2019]与或和

★★★☆   输入文件:andorsum.in   输出文件:andorsum.out   简单对比
时间限制:3 s   内存限制:256 MiB

【题目描述】

Freda 学习了位运算和矩阵以后,决定对这种简洁而优美的运算,以及蕴含深邃空间的结构进行更加深入的研究。对于一个由非负整数构成的矩阵,她定义矩阵的 AND 值为矩阵中所有数二进制 AND(&) 的运算结果;定义矩阵的 OR 值为矩阵中所有数二进制 OR(|) 的运算结果。给定一个 N×N 的矩阵,她希望求出:

1. 该矩阵的所有子矩阵的 AND 值之和(所有子矩阵 AND 值相加的结果)。

2. 该矩阵的所有子矩阵的 OR 值之和(所有子矩阵 OR 值相加的结果)。

接下来的剧情你应该已经猜到——Freda 并不想花费时间解决如此简单的问题,所以这个问题就交给你了。由于答案可能非常的大,你只需要输出答案对1,000,000,007 取模后的结果。

【输入格式】

从文件 andorsum.in 中读入数据。输入文件的第一行是一个正整数 N,表示矩阵的尺寸。接下来 N 行,每行 N 个自然数,代表矩阵的一行。相邻两个自然数之间由一个或多个空格隔开。

【输出格式】

输出到文件 andorsum.out 中。输出只有一行,包含两个用空格隔开的整数,第一个应为所有子矩阵 AND值之和除以 10e9 + 7 的余数,第二个应为所有子矩阵 OR 值之和除以 10e9 + 7 的余数。

【样例输入】

3
1 0 0
0 0 0
0 0 0

【样例输出】

1 9

【提示】