BZOJ 3503 高斯消元
2024-08-31 14:05:50
思路:
高斯消元就好啦
注意每个格子最多只能和4个相邻
所以是 n*m*n*m*5 的 并不会TLE
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,m,a[44][44],xx[]={0,0,1,-1,0},yy[]={1,-1,0,0,0},eli[1666][1666],b[1666],ans[1666];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int k=0;k<=4;k++){
int dx=i+xx[k],dy=j+yy[k];
if(a[dx][dy]){
int tempa=(i-1)*m+j,tempb=(dx-1)*m+dy;
eli[tempa][tempb]=1;
}
}
for(int i=1;i<=n*m;i++){
bool flag=0;
for(int j=i;j<=n*m;j++){
if(eli[j][i]){
for(int k=1;k<=n*m;k++)
swap(eli[i][k],eli[j][k]);
flag=1;break;
}
}
if(!flag)continue;
for(int j=i+1;j<=n*m;j++){
if(eli[j][i])
for(int k=1;k<=n*m;k++)
eli[j][k]^=eli[i][k];
}
}
for(int i=n*m;i;i--){
ans[i]=eli[i][i]?b[i]:1;
if(ans[i])for(int j=1;j<=i-1;j++)if(eli[j][i])b[j]^=1;
}
for(int i=1;i<=n*m;i++){
printf("%d ",ans[i]);
if(i%m==0)putchar('\n');
}
}
最新文章
- JS - 柯里化
- C#委托与事件的简单使用
- NBUT比赛 方格规律递推题
- 注意页面上的时间戳可能会成为bd快照的时间_快照不更新的原因
- 【python】Python标准库defaultdict模块
- EcilpsePHP studio 3.0 运行(run)环境配置
- Java Concurrency - Callable &; Future
- 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装
- jTemplates——学习(1)
- windows、linux创建子进程
- .Net中jQuery.ajax()调用asp.net后台方法 总结
- 201521123044 《Java程序设计》第9周学习总结
- Ryz的鬼题
- 【学习笔记】Hibernate关联映射(Y2-1-6)
- Linux运维故障排查思路
- Node.js Event Loop 的理解 Timers,process.nextTick()
- nginx socket转发设置
- Confluence 6 使用 LDAP 授权连接一个内部目录 - 服务器设置
- 如何用 纯C++(ndk)开发安卓应用 ?
- 传输层协议TCP和UDP分析
热门文章
- 【POJ 2485】 Highways
- UVALive 4192/HDU 2959 Close Enough Computations 数学
- codeblocks开源的c、c++编译器,小巧方便
- iOS中respondsToSelector与conformsToProtocol的相关理解和使用
- TensorFlow高层次机器学习API (tf.contrib.learn)
- [JZOJ 4307] [NOIP2015模拟11.3晚] 喝喝喝 解题报告
- BZOJ 1898 构造矩阵+矩阵快速幂
- Nashorn——在JDK 8中融合Java与JavaScript之力--转
- 【原创】VSFTP: Login failure: 530 Login incorrect的解决办法
- 移动端font-size适配