pro:给定N*M的矩阵,每次操作一个位置,它会增加2,周围4个位置会增加1。给定初始状态,求一种方案,使得最后的数都为0;(%3意义下。

sol:(N*M)^3的复杂度的居然过了。          好像标程是M^3的,因为第一排确定了,后面的都确定了。所以我们只要设关于第一排的方程,那么跑下来,第N+1排的都为0,则合法。

(此题由于3的特殊性,x关于3的逆元=x;所以不用求逆元

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int maxn=;
int a[maxn][maxn],ans[maxn];
int x[]={,,,-};
int y[]={,-,,};
void Guass(int N)
{
rep(i,,N-){
int t=i;
rep(j,i+,N-) if(a[j][i]>a[t][i]) t=j;
if(i!=t) rep(j,i,N) swap(a[i][j],a[t][j]);
if(!a[i][i]) continue;
rep(j,i+,N-){
if(!a[j][i]) continue;
int t1=a[i][i],t2=a[j][i];//保留,不能直接带进去
rep(k,i,N)
a[j][k]=((a[j][k]*t1-a[i][k]*t2)%+)%;
}
}
for(int i=N-;i>=;i--){
a[i][N]=a[i][N]*a[i][i]%;
rep(j,,i-)
a[j][N]=((a[j][N]-a[i][N]*a[j][i])%+)%;
}
}
int main()
{
int T,N,M,S,t,p;
scanf("%d",&T);
while(T--){
scanf("%d%d",&N,&M); S=N*M;
rep(i,,S) rep(j,,S) a[i][j]=;
rep(i,,N-) rep(j,,M-){
t=i*M+j;
scanf("%d",&a[t][S]);
a[t][S]=-a[t][S];
}
rep(i,,S-) a[i][i]=;
rep(i,,N-)
rep(j,,M-){
t=i*M+j;
rep(k,,) {
if(i+x[k]>=&&i+x[k]<N&&j+y[k]>=&&j+y[k]<M){
a[(i+x[k])*M+j+y[k]][t]=;
}
}
}
Guass(S);
int res=;
rep(i,,S-) res+=a[i][S];
printf("%d\n",res);
rep(i,,S-){
p=i/M+; t=i%M+;
if(a[i][S]) printf("%d %d\n",p,t);
if(a[i][S]==) printf("%d %d\n",p,t);
}
}
return ;
}

HDU - 5755:Gambler Bo (开关问题,%3意义下的高斯消元)的更多相关文章

  1. HDU 5755 Gambler Bo(高斯消元)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5755 [题目大意] 一个n*m由0,1,2组成的矩阵,每次操作可以选取一个方格,使得它加上2之后对 ...

  2. hdu 5755 Gambler Bo (高斯消元法解同余方程组)

    http://acm.hdu.edu.cn/showproblem.php?pid=5755 题意: n*m矩阵,每个格有数字0/1/2 每选择一个格子,这个格子+2,4方向相邻格子+1 如何选择格子 ...

  3. hdu 5755 Gambler Bo 高斯消元

    题目链接 给n*m的方格, 每个格子有值{0, 1, 2}. 然后可以对格子进行操作, 如果选择了一个格子, 那么这个格子的值+2, 这个格子上下左右的格子+1, 并且模3. 问你将所有格子变成0的操 ...

  4. HDU 5755 Gambler Bo

    可以设n*m个未知量,建立n*m个方程.位置i,j可以建立方程 (2*x[i*m+j]+x[(i-1)*m+j]+x[(i+1)*m+j]+x[i*m+j-1]+x[i*m+j+1])%3=3-b[i ...

  5. 【HDU 5833】Zhu and 772002(异或方程组高斯消元)

    300个最大质因数小于2000的数,选若干个它们的乘积为完全平方数有多少种方案. 合法方案的每个数的质因数的个数的奇偶值异或起来为0. 比如12=2^2*3,对应的奇偶值为01(2的个数是偶数为0,3 ...

  6. 【HDU 5833】Zhu and 772002(异或方程组高斯消元讲解)

    题目大意:给出n个数字a[],将a[]分解为质因子(保证分解所得的质因子不大于2000),任选一个或多个质因子,使其乘积为完全平方数.求其方法数. 学长学姐们比赛时做的,当时我一脸懵逼的不会搞……所以 ...

  7. POJ - 1222: EXTENDED LIGHTS OUT (开关问题-高斯消元)

    pro:给定5*6的灯的状态,如果我们按下一个灯的开关,它和周围4个都会改变状态.求一种合法状态,使得终状态全为关闭: sol:模2意义下的高斯消元. 终于自己手打了一个初级板子. #include& ...

  8. hdu 5755 2016 Multi-University Training Contest 3 Gambler Bo 高斯消元模3同余方程

    http://acm.hdu.edu.cn/showproblem.php?pid=5755 题意:一个N*M的矩阵,改变一个格子,本身+2,四周+1.同时mod 3;问操作多少次,矩阵变为全0.输出 ...

  9. HDU 4870 Rating(高斯消元 )

    HDU 4870   Rating 这是前几天多校的题目,高了好久突然听旁边的大神推出来说是可以用高斯消元,一直喊着赶快敲模板,对于从来没有接触过高斯消元的我来说根本就是一头雾水,无赖之下这几天做DP ...

随机推荐

  1. Cognos集成至portal平台运行报表时只出“#”

    1. 问题描述 报表集成到平台后,运行报表过程中,当多次运行后,页面只显示“#” 2. 问题分析 这是因为浏览器筛选器限制问题 3. 解决方案 在IE浏览器设置中,Internet选项-安全-自定义级 ...

  2. css--样式表的引入方法

    html引用css方法如下1.直接在div中使用css样式(内链)2.html中使用style自带式(嵌入)3.使用@import引用外部CSS文件(外部引入)4.使用 link引用外部CSS文件 推 ...

  3. sftp无法连接问题

    sftp连接linux 出现错误,就是服务器没有开sftp服务 解决:在linux服务器上,确保sftp定义在sshd的配置文件(一般为/etc/ssh/sshd_config)中:Subsystem ...

  4. WPF实现分页控件

    页面代码如下: <UserControl x:Class="Music163.DataGridPaging" xmlns="http://schemas.micro ...

  5. Rhino学习教程——1.2

    实战——创建个性化工具栏: 因为我们的制图习惯不同,所以可以吧自己常用的工具放在一起.我上次说的自定义界面就是这个和调整工具栏位置. 1.打开常用>设置 2.选择工具列>编辑>新增工 ...

  6. work2:贪吃蛇

    学号:2017*****7219 姓名:邰嘉琛我的码云贪吃蛇项目仓库:https://gitee.com/tjc666/sesnake/tree/master2) 给出你的各项任务完成时间估算与实际消 ...

  7. Python _Mix*10

    函数的动态参数 *args位置参数,动态传参 **kwargs关键字参数,动态传参 顺序:位置→*args→默认值→**kwargs 形参的位置*,**:聚合 实参的位置*,**:打散 (可以把lis ...

  8. mysql5.7设置默认编码

    1.通过 show variables like '%char%';查看MySQL字符集情况 mysql> show variables like '%char%';+------------- ...

  9. Vscode下的Markdown的基本使用

    1.Vscode默认支持Markdown语法,只需要安装相应的扩展插件,Markdown Preview enhanced. 2.安装完插件后,在Vscode上新建一个文件,然后将文件的语言模式设置为 ...

  10. ng-repeat 中的track by

    <div style="font-size:15px"ng-repeat="item in groups.items track by $index"&g ...