第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南):签到题A Matrix Equation(高斯消元求线性异或方程组自由元个数)
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(高斯消元求线性异或方程组自由元个数)相关推荐
- 第45届国际大学生程序设计竞赛(ICPC)银川站太原理工大学收获4枚奖牌
第45届国际大学生程序设计竞赛(ICPC)银川站,由宁夏理工学院承办,于2021年5月15-16日在宁夏的石嘴山市进行. 太原理工大学在比赛中获得2银2铜共4枚奖牌的好成绩. 参加本次比赛的四个队,涵 ...
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛)
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)(重现赛) 导语 涉及的知识点 题目 C D G J M 参考文献 导语 日常的队内集训,开始的时候状态其实很好,但是到了后两题就出现了 ...
- 第45届国际大学生程序设计竞赛(ICPC)沈阳站太原理工大学收获1枚铜牌
第45届ICPC沈阳区域赛,于2021年7月18日在东北大学南湖校区举行.太原理工大学2个队参加比赛,由20级中学没有学过编程的3名同学组成的队,首次参加现场赛并获得铜奖.
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题K Co-prime Permutation,L Let‘s Play Curling
序 emmm因为没时间补题(虽然签到有四题),所以只能先放两个签到. 这是比赛链接:https://ac.nowcoder.com/acm/contest/10272 这是题解链接:2020年ICPC ...
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 题解(除了C、G之后补)
整理的算法模板合集: ACM模板 这次比赛好多原题呀-(就是那种稍微拓展了一点的原题) 目录 A.Easy Equation B.XTL's Chessboard D.Pokemon Ultra Su ...
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题HIL
H. Hard Calculation 链接:https://ac.nowcoder.com/acm/contest/12548/H 来源:牛客网 题目描述 Hooray! It is the fir ...
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛 B.XTL‘s Chessboard(思维)
题目链接:https://ac.nowcoder.com/acm/contest/8688/B 题目描述 Xutianli is a perfectionist, who only owns &quo ...
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明),签到题4题
文章目录 H. Hard Calculation I. Mr. Main and Windmills L. Simone and graph coloring J.Parallel Sort 补题链接 ...
- 【第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛】Simone and Graph Coloring
#include <bits/stdc++.h> using namespace std; const int maxn = 1000005, INF = 0x7f7f7f7f; int ...
最新文章
- MXNet中x.grad源码追溯
- 小米手机无法连接eclipse调试案例
- 【数据库】MySQL数据库(一)
- boost::mpi模块sendrecv() 操作的测试
- 基本机器学习面试问题 --- 理论/算法2
- ubuntu下面 将桌面换成 英文
- RabbitMQ从初学到精通一
- highCharts文档与演示效果的使用 - 文档(应用型)解读
- pytorch torchvision.datasets.ImageFolder
- 如何将百度文库中不能复制的文字复制下来
- 利用ajaxSubmit()提交表单后,子窗口关闭,父窗口显示查询页面
- CubeMX编写风力摆控制系统[HAL库]
- 使用Layui搭建后台管理界面
- ajax 传实体对象,前端ajax或axios发送数据后端实体类接受(实例和报错原因)
- C++Pollard_rho分解质因数及其例题—————Prime Test
- arcgis如何将16bit栅格数据转换为8bit栅格数据
- 只需要一招,改变你的网易云皮肤(仅限于PC端)
- 如何进行数据可视化制图
- 组策略 控制台登录计算机用用户,更方便的管理计算机!Windows组策略应用全攻略一...
- 台式win7f1到f12热键取消_Windows 7旗舰版系统中键盘F1到F12快捷键的作用详解
热门文章
- 中英文对照 —— 英语语法与文法概念
- 条件概率与条件概率举例
- 万有引力(Law of universal gravitation)
- 机器学习基础(三十七) —— 处理类别特征
- mysql 随机记录 newid()_sql随机查询数据语句(NewID(),Rnd,Rand(),random())
- python有趣小程序-第一个有趣的python小程序
- 零基础学python图文版-杭州零基础学python图文版
- python处理excel表格-Python读写Excel表格(简单实用)
- python在线朗读-简单的python代码实现语音朗读
- python免费课程400节-北京市python儿童学编程