Gambler Bo (高斯消元求特解)
对于图中的每一个点假设点击Xi * m + j 然后每个点都有那么对于每一个点可以列举出一个方程式,n*m个点解n*m个未知数。利用高斯消元就可以解决。
问题就在这个题目可能不止有一个特,所以我们需要求解的时特解。然后那一个求解的我看不懂。
#include <bits/stdc++.h>
using namespace std ; const int maxn = * ;
int n, m, cnt;
int id[][], data[][], a[maxn][maxn], x[maxn]; int gcd(int a, int b){
return b?gcd(b, a%b) : a;
} int lcm(int a, int b){
return a / gcd(a, b) * b;
} void init(){
memset(x, , sizeof(x));
memset(a, , sizeof(a));
for(int i = ; i <= n; i ++){
for(int j = ; j <= m; j ++){
a[id[i][j]][cnt] = ( - data[i][j])%;
a[id[i][j]][id[i][j]] = ;
if( i > ) a[id[i][j]][id[i - ][j]] = ;
if( j > ) a[id[i][j]][id[i][j - ]] = ;
if( i < n) a[id[i][j]][id[i + ][j]] = ;
if( j < m) a[id[i][j]][id[i][j + ]] = ;
}
}
} void gaussi(){
for(int i = ; i < cnt; i ++){
int top = i;
for(int j = i + ; j < cnt; j ++)
top = abs(a[j][i]) > abs(a[top][i]) ? j : top;
if(a[top][i]){
for(int j = i; j <= cnt; j ++)
swap(a[top][j], a[i][j]);
for(int j = i + ; j < cnt; j ++)
if(a[j][i]){
int d = lcm(a[j][i], a[i][i]);
int x1 = d/a[j][i], x2 = d/a[i][i];
for(int k = i; k <= cnt; k ++)
a[j][k] = ((a[j][k] * x1 - a[i][k] * x2)% + ) % ;
}
}
}
int ans = ;
for(int i = cnt - ; i > ; i --){
x[i] = a[i][cnt];
for(int j = i + ; j < cnt; j ++)
x[i] = ((x[i] - a[i][j] * x[j])% + )%;
x[i] = a[i][i] * x[i] % ;
ans += x[i];
}
printf("%d\n", ans);
for(int i = ; i < cnt; i ++){
while(x[i]){
printf("%d %d\n", (i - )/m + , (i - )%m + );
x[i] --;
}
} } int main () {
int T ;scanf("%d",&T);
while(T -- ){
cnt = ;
scanf("%d%d",&n,&m);
for(int i = ; i <= n; i ++)
for(int j = ; j <= m; j ++)
scanf("%d",&data[i][j]), id[i][j] = cnt++;
init();
gaussi();
}
return ;
}
Gambler Bo (高斯消元求特解)的更多相关文章
- 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.输出 ...
- hdu 5755 Gambler Bo 高斯消元
题目链接 给n*m的方格, 每个格子有值{0, 1, 2}. 然后可以对格子进行操作, 如果选择了一个格子, 那么这个格子的值+2, 这个格子上下左右的格子+1, 并且模3. 问你将所有格子变成0的操 ...
- HDU4870_Rating_双号从零单排_高斯消元求期望
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...
- HDU 5833 (2016大学生网络预选赛) Zhu and 772002(高斯消元求齐次方程的秩)
网络预选赛的题目……比赛的时候没有做上,确实是没啥思路,只知道肯定是整数分解,然后乘起来素数的幂肯定是偶数,然后就不知道该怎么办了… 最后题目要求输出方案数,首先根据题目应该能写出如下齐次方程(从别人 ...
- 【BZOJ2137】submultiple 高斯消元求伯努利数
[BZOJ2137]submultiple Description 设函数g(N)表示N的约数个数.现在给出一个数M,求出所有M的约数x的g(x)的K次方和. Input 第一行输入N,K.N表示M由 ...
- SPOJ HIGH(生成树计数,高斯消元求行列式)
HIGH - Highways no tags In some countries building highways takes a lot of time... Maybe that's bec ...
- 【bzoj2115】[Wc2011] Xor DFS树+高斯消元求线性基
题目描述 输入 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 Di的无向边. 图 ...
- 【bzoj3105】[cqoi2013]新Nim游戏 高斯消元求线性基
题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴,但不能同时从 ...
- 【bzoj4004】[JLOI2015]装备购买 贪心+高斯消元求线性基
题目描述 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 <= j < ...
随机推荐
- java web filter读取classpath配置文件内容
以下demo,从类路径classpath中获取venus.properties(本项目中用到的文件),思路是在初始化的时候读取,然后放在局部变量里面. package club.codeapes.we ...
- python_flask 注册,登陆,退出思路 ---纯个人观点
1注册逻辑首先查询数据库用户名 并判断用户是否存在,如不存在就插入数据 并返回响应给前端2前端模板获取注册信息 判断 用户名不能为空及密码不能为空,和密码不一致 拼接注册url 组成get获取对象 响 ...
- webpack4入门配置
下面是抄过来的,方便自己翻越 webpack4.x入门配置 1.首先npm install webpack webpack-cli webpack-dev-server -g (mac电脑用超级管 ...
- python 去除微软的BOM
傻逼微软会给文件前面加上efbbbf, 导致开发人员浪费很多时间在排错上,下面通过python代码来实现去除微软BOM的功能 用法很简单,指定可能含有BOM开头的文件,并且将微软的\r\n 换成lin ...
- TZOJ 5225: 玩转二叉树
描述 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整数. 输入 输入第一行给出 ...
- Python字符串拼接的6种方法
如有其他字符串拼接方法 欢迎留言提出哦 (示例版本为Py2) 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串 ...
- oracle用户被锁
使用PLSQL客户端:1.用管理员账户登录PLSQL Developer(登录名可以为system,选择类型的时候把Normal修改为Sysdba).2.左侧选择My Objects,查看Users文 ...
- 31-ADC模拟/数字转换
31-ADC模拟/数字转换 (1).ADC的IO分配
- 关于mobilesroll使用方法的再次声明
js $('#name').click(function(valueText) { $('#demo').mobiscroll('show'); // return false; }); $(&quo ...
- SQL Server--疑难杂症之坑爹的Windows故障转移群集(转)
估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也SQL SERVER,败也SQL SERVER. --======================================= ...