博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1681 Painter's Problem(高斯消元法,染色问题)
阅读量:6042 次
发布时间:2019-06-20

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

题意:

一个n*n 的木板 ,每个格子 都 可以 染成 白色和黄色,( 一旦我们对也个格子染色 ,他的上下左右都将改变颜色);

给定一个初始状态 , 求将 所有的 格子 染成黄色 最少需要染几次?  若 不能 染成 输出 inf。

 

高斯消元,写得很懵逼。慢慢理解orz。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #define Inf 0x3fffffff 8 #define maxn 300 9 using namespace std; 10 int n; 11 int a[maxn][maxn]; //增广矩阵 12 int x[maxn]; //解集 13 int free_x[maxn]; //标记是否为不确定的变元 14 void init(){ 15 memset(a,0,sizeof(a)); 16 memset(x,0,sizeof(x)); 17 memset(free_x,1,sizeof(free_x)); 18 for (int i=0;i
0) a[(i-1)*n+j][t]=1; 23 if (i
0) a[i*n+j-1][t]=1; 25 if (j
abs(a[max_r][now])) max_r=i; 43 } 44 if (max_r!=k){ //与第i行交换 45 for (j=k;j<=var;j++) swap(a[k][j],a[max_r][j]); 46 } 47 if (a[k][now]==0){ // 说明该now列第k行以下全是0了,则处理当前行的下一列. 48 k--; 49 free_x[num++]=now; 50 continue; 51 } 52 for (i=k+1;i
>=1; 73 } 74 for (j=k-1;j>=0;j--){ 75 int tmp=a[j][var]; 76 for (int l=j+1;l
> t; 89 string str; 90 while (t--){ 91 cin >> n; 92 init(); 93 for (int i=0;i
> str; 95 for (int j=0;j

 

转载于:https://www.cnblogs.com/changer-qyz/p/8448754.html

你可能感兴趣的文章
Django REST_framework框架 03
查看>>
复习perl..
查看>>
mysql编译安装,以及mysql管理
查看>>
Android系统Intent的使用
查看>>
nginx+video-thumbextractor生成视频缩略图
查看>>
linux的shell编程初探---变量
查看>>
考研英语(1-10)转自何凯文老师
查看>>
监控和消耗内存资源
查看>>
萤石云API (4年前分享)
查看>>
Java多线程——重进入(Reentrancy)机制
查看>>
Apache和Nginx设置伪静态(URL Rewrite)的方法
查看>>
crontab 使用时间
查看>>
远程密令临时开启ssh端口
查看>>
【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图
查看>>
ACCP学习旅程之----- CSS样式库
查看>>
Apache日志Shell分析
查看>>
freemarker中日期的比较
查看>>
特殊用法
查看>>
Linux service管理自定义脚本
查看>>
mysql创建date数据类型
查看>>