博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NEFU 506&&ZOJ 3353 Chess Board (四种构造的高斯消元)
阅读量:5339 次
发布时间:2019-06-15

本文共 1807 字,大约阅读时间需要 6 分钟。

题意:有四种翻转方式,问是否能使得所有棋子都变为0,求最小步数。

题解:依次构造枚举求出最小值即可。

 

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int inf=0x3f3f3f;const int maxn=300;//有equ个方程,var个变元。增广矩阵行数为equ,列数为var+1,分别为0到varint equ,var;int a[maxn][maxn]; //增广矩阵int x[maxn]; //解集int free_x[maxn];//用来存储自由变元(多解枚举自由变元可以使用)int free_num;//自由变元的个数//返回值为-1表示无解,为0是唯一解,否则返回自由变元个数int gauss(){ int max_r,col,k; free_num=0; for(k=0,col=0; k
abs(a[max_r][col])) max_r=i; if(!a[max_r][col]) { k--; free_x[free_num++]=col; continue; } if(max_r!=k) for(int j=col; j
=0; i--) { x[i]=a[i][var]; for(int j=i+1; j
0) a[(i-1)*m+j][t]=1; //上 if(i<(n-1)) a[(i+1)*m+j][t]=1; //下 if(j>0) a[i*m+j-1][t]=1; //左 if(j<(m-1)) a[i*m+j+1][t]=1; //右 }}void init2(){ memset(a,0,sizeof(a)); memset(x,0,sizeof(x)); equ=n*m; var=n*m; for(int i=0; i
0) a[(i-1)*m+j][t]=1; //上 //if(i
0) a[i*m+j-1][t]=1; //左 if(j<(m-1)) a[i*m+j+1][t]=1; //右 if(i>0&&j>0) a[(i-1)*m+j-1][t]=1; //左上 //if(i>0&&j<(m-1)) a[(i-1)*m+j+1][t]=1; //右上 if(i
0) a[(i+1)*m+j-1][t]=1; //左下 //if(i
0) a[(i-1)*m+j][t]=1; //上 if(i<(n-1)) a[(i+1)*m+j][t]=1; //下 if(j>0) a[i*m+j-1][t]=1; //左 if(j<(m-1)) a[i*m+j+1][t]=1; //右 //if(i>0&&j>0) a[(i-1)*m+j-1][t]=1; //左上 if(i>0&&j
0) a[(i+1)*m+j-1][t]=1; //左下 //if(i
0) a[(i-1)*m+j][t]=1; //上 if(i<(n-1)) a[(i+1)*m+j][t]=1; //下 if(j>0) a[i*m+j-1][t]=1; //左 //if(j
0&&j>0) a[(i-1)*m+j-1][t]=1; //左上 if(i>0&&j
0) a[(i+1)*m+j-1][t]=1; //左下 if(i<(n-1)&&j<(m-1)) a[(i+1)*m+j+1][t]=1; //右下 }}int solve(){ int t=gauss(); if(t==-1) { return inf; } else if(t==0) { int ans=0; for(int i=0; i
=0; j--) { int idx; for(idx=j; idx
>data[i]; init1(); for(int i=0; i

 

转载于:https://www.cnblogs.com/Ritchie/p/5866247.html

你可能感兴趣的文章
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
hbuilder调底层运用,多张图片上传
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
Maven之setting.xml配置文件详解
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
HDU 2063 过山车
查看>>
高精度1--加法
查看>>
String比较
查看>>
Django之Models
查看>>
CSS 透明度级别 及 背景透明
查看>>
Linux 的 date 日期的使用
查看>>
PHP zip压缩文件及解压
查看>>
SOAP web service用AFNetWorking实现请求
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>