problem

  • 给出两个n*n的01矩阵,A和B
  • 定义两种运算,Z(i,j)=Xi行*Yj列相加%2,D(i,j)=X(i,j)*Y(i,j)
  • 求最多有多少个可能的矩阵C,满足A运算1C==B运算2C。

solution

思路:(明天接着补)

  • A和B相同等价于A(i,j)异或B(i,j)为0.
  • Xi行Yj列相加%2 等价于 Xi行Yj列相互异或(异或方程组)

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 255;
const int mod = 998244353;
LL pows(LL x, LL y, LL mod){LL res = 1;while(y>0){if(y&1)res = res*x%mod;x = x*x%mod;y >>= 1;}return res%mod;
}int n, a[maxn][maxn], b[maxn][maxn];
int t[maxn][maxn]; //增广矩阵
int Gauss(){//用第i个式子消去第i个系数,求得倒三角int cnt = 0;//表示行,这样在当前系数全为零时也能继续算下一个系数for(int i = 0; i < n; i++){int r = cnt;while(r<n && !t[r][i])r++;if(r==n)continue;if(r!=cnt)swap(t[r],t[cnt]);for(int j = cnt+1; j < n; j++){if(t[j][i]!=0){for(int k = i; k < n+1; k++)t[j][k] ^= t[cnt][k];}}cnt++;}//无解:存在(0,0,...,t)这样的行,且a!=0//无穷解:出现(0,0,...,0)这样的行int num = 0; //自由元for(int i = 0; i < n; i++){int ok = 1;for(int j = 0; j < n; j++){if(t[i][j] != 0){ok = 0; break;}}if(ok==1){if(t[i][n]==0)num++;if(t[i][n]!=0)return -1;}}return num;
}int main(){cin>>n;for(int i = 0; i < n; i++)for(int j = 0; j < n; j++)cin>>a[i][j];for(int i = 0; i < n; i++)for(int j = 0; j < n; j++)cin>>b[i][j];memcpy(t,a,sizeof(t));LL ans = 1;for(int i = 0; i < n; i++){memcpy(t,a,sizeof(t));for(int j = 0; j < n; j++)t[j][j] = (a[j][j]-b[j][i]+2)%2;int free = Gauss();if(free==-1)continue;ans = ans*pows(2,free,mod)%mod;}cout<<ans<<"\n";return 0;
}

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南):签到题A Matrix Equation(高斯消元求线性异或方程组自由元个数)相关推荐

  1. 第45届国际大学生程序设计竞赛(ICPC)银川站太原理工大学收获4枚奖牌

    第45届国际大学生程序设计竞赛(ICPC)银川站,由宁夏理工学院承办,于2021年5月15-16日在宁夏的石嘴山市进行. 太原理工大学在比赛中获得2银2铜共4枚奖牌的好成绩. 参加本次比赛的四个队,涵 ...

  2. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛)

    第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛) 导语 涉及的知识点 题目 C D G J M 参考文献 导语 日常的队内集训,开始的时候状态其实很好,但是到了后两题就出现了 ...

  3. 第45届国际大学生程序设计竞赛(ICPC)沈阳站太原理工大学收获1枚铜牌

    第45届ICPC沈阳区域赛,于2021年7月18日在东北大学南湖校区举行.太原理工大学2个队参加比赛,由20级中学没有学过编程的3名同学组成的队,首次参加现场赛并获得铜奖.

  4. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling

    序 emmm因为没时间补题(虽然签到有四题),所以只能先放两个签到. 这是比赛链接:https://ac.nowcoder.com/acm/contest/10272 这是题解链接:2020年ICPC ...

  5. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 题解(除了C、G之后补)

    整理的算法模板合集: ACM模板 这次比赛好多原题呀-(就是那种稍微拓展了一点的原题) 目录 A.Easy Equation B.XTL's Chessboard D.Pokemon Ultra Su ...

  6. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL

    H. Hard Calculation 链接:https://ac.nowcoder.com/acm/contest/12548/H 来源:牛客网 题目描述 Hooray! It is the fir ...

  7. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 B.XTL‘s Chessboard(思维)

    题目链接:https://ac.nowcoder.com/acm/contest/8688/B 题目描述 Xutianli is a perfectionist, who only owns &quo ...

  8. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题4题

    文章目录 H. Hard Calculation I. Mr. Main and Windmills L. Simone and graph coloring J.Parallel Sort 补题链接 ...

  9. 【第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛】Simone and Graph Coloring

    #include <bits/stdc++.h> using namespace std; const int maxn = 1000005, INF = 0x7f7f7f7f; int ...

最新文章

  1. MXNet中x.grad源码追溯
  2. 小米手机无法连接eclipse调试案例
  3. 【数据库】MySQL数据库(一)
  4. boost::mpi模块sendrecv() 操作的测试
  5. 基本机器学习面试问题 --- 理论/算法2
  6. ubuntu下面 将桌面换成 英文
  7. RabbitMQ从初学到精通一
  8. highCharts文档与演示效果的使用 - 文档(应用型)解读
  9. pytorch torchvision.datasets.ImageFolder
  10. 如何将百度文库中不能复制的文字复制下来
  11. 利用ajaxSubmit()提交表单后,子窗口关闭,父窗口显示查询页面
  12. CubeMX编写风力摆控制系统[HAL库]
  13. 使用Layui搭建后台管理界面
  14. ajax 传实体对象,前端ajax或axios发送数据后端实体类接受(实例和报错原因)
  15. C++Pollard_rho分解质因数及其例题—————Prime Test
  16. arcgis如何将16bit栅格数据转换为8bit栅格数据
  17. 只需要一招,改变你的网易云皮肤(仅限于PC端)
  18. 如何进行数据可视化制图
  19. 组策略 控制台登录计算机用用户,更方便的管理计算机!Windows组策略应用全攻略一...
  20. 台式win7f1到f12热键取消_Windows 7旗舰版系统中键盘F1到F12快捷键的作用详解

热门文章

  1. 中英文对照 —— 英语语法与文法概念
  2. 条件概率与条件概率举例
  3. 万有引力(Law of universal gravitation)
  4. 机器学习基础(三十七) —— 处理类别特征
  5. mysql 随机记录 newid()_sql随机查询数据语句(NewID(),Rnd,Rand(),random())
  6. python有趣小程序-第一个有趣的python小程序
  7. 零基础学python图文版-杭州零基础学python图文版
  8. python处理excel表格-Python读写Excel表格(简单实用)
  9. python在线朗读-简单的python代码实现语音朗读
  10. python免费课程400节-北京市python儿童学编程