A85870.「GXOI / GZOI2019」与或和
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:512MB
题目描述
Freda 学习了位运算和矩阵以后,决定对这种简洁而优美的运算,以及蕴含深邃空间的结构进行更加深入的研究。
对于一个由非负整数构成的矩阵,她定义矩阵的 AND 值为矩阵中所有数二进制 \texttt{AND(&)} 的运算结果;定义矩阵的 OR 值为矩阵中所有数二进制 OR(|) 的运算结果。
给定一个 N×N 的矩阵,她希望求出:
- 该矩阵的所有子矩阵的 AND 值之和(所有子矩阵 AND 值相加的结果)。
- 该矩阵的所有子矩阵的 OR 值之和(所有子矩阵 OR 值相加的结果)。
接下来的剧情你应该已经猜到——Freda 并不想花费时间解决如此简单的问题,所以这个问题就交给你了。
由于答案可能非常的大,你只需要输出答案对 1,000,000,007(109+7) 取模后的结果。
输入格式
输入文件的第一行是一个正整数 N,表示矩阵的尺寸。
接下来 N 行,每行 N 个自然数,代表矩阵的一行。相邻两个自然数之间由一个或多个空格隔开。
输出格式
输出只有一行,包含两个用空格隔开的整数,第一个应为所有子矩阵 AND 值之和除以 109+7 的余数,第二个应为所有子矩阵 OR 值之和除以 109+7 的余数。
输入输出样例
输入#1
3 1 0 0 0 0 0 0 0 0
输出#1
1 9
输入#2
3 1 2 3 4 5 6 7 8 9
输出#2
73 314
说明/提示
所有测试数据的范围和特点如下表所示:
| 测试点编号 | n 的规模 | 矩阵中的自然数 |
|---|---|---|
| 1 | 1≤n≤10 | ≤100 |
| 2 | 1≤n≤10 | ≤100 |
| 3 | 1≤n≤100 | ≤100 |
| 4 | 1≤n≤100 | ≤100 |
| 5 | 1≤n≤100 | ≤100 |
| 6 | 1≤n≤1,000 | ≤231−1 |
| 7 | 1≤n≤1,000 | ≤231−1 |
| 8 | 1≤n≤1,000 | ≤231−1 |
| 9 | 1≤n≤1,000 | ≤231−1 |
| 10 | 1≤n≤1,000 | ≤231−1 |