sdust 2410 Mine Number
今天看了3个这种题了 枚举第一行即可
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue> 7 #include<stack> 8 #include<vector> 9 #include<map> 10 #include<string> 11 #define maxn 12 #define INF 13 using namespace std; 14 typedef long long LL; 15 int n,m,flag; 16 17 int num1[21][21],num2[21][21]; 18 int get_sum(int i,int j) 19 { 20 int tem=num2[i][j]; 21 if(i>0) 22 tem+=num2[i-1][j]; 23 if(j<m-1) 24 tem+=num2[i][j+1]; 25 if(j>0) 26 tem+=num2[i][j-1]; 27 return tem; 28 } 29 int check(int x) 30 { 31 int ans=num2[0][x]; 32 if (x) 33 ans+=num2[0][x-1]; 34 if (x<m-1) 35 ans+=num2[0][x+1]; 36 if (ans==num1[0][x] || ans+1==num1[0][x]) 37 return true; 38 return false; 39 } 40 int puan(int s) 41 { 42 for(int j=0;j<m;j++) 43 { 44 if((s&(1<<j))) 45 num2[0][j]=1; 46 else 47 num2[0][j]=0; 48 } 49 if(n==1) 50 { 51 for(int i=0;i<m;i++) 52 if(get_sum(0,i)!=num1[0][i]) 53 return 0; 54 return 1; 55 } 56 for(int i=0;i<m;i++) 57 { 58 if(!check(i)) 59 return 0; 60 } 61 for(int i=1;i<n;i++) 62 for(int j=0;j<m;j++) 63 { 64 if(get_sum(i-1,j)==num1[i-1][j]) 65 num2[i][j]=0; 66 else if(get_sum(i-1,j)+1==num1[i-1][j]) 67 num2[i][j]=1; 68 else 69 return 0; 70 71 } 72 for(int i=0;i<m;i++) 73 if(get_sum(n-1,i)!=num1[n-1][i]) 74 return 0; 75 return 1; 76 } 77 int main() 78 { 79 80 char str[30]; 81 int t; 82 while(scanf("%d",&t)!=EOF) 83 { 84 for(int ii=1; ii<=t; ii++) 85 { 86 scanf("%d%d",&n,&m); 87 for(int i=0; i<n; i++) 88 { 89 scanf("%s",str); 90 for(int j=0; j<m; j++) 91 num1[i][j]=str[j]-'0'; 92 } 93 94 for(int i=0; i<(1<<m); i++) 95 { 96 if(puan(i)) 97 break; 98 } 99 printf("Case %d:\n",ii); 100 for(int i=0; i<n; i++) 101 { 102 for(int j=0; j<m; j++) 103 { 104 if(num2[i][j]) 105 printf("*"); 106 else 107 printf("."); 108 } 109 printf("\n"); 110 } 111 } 112 } 113 114 return 0; 115 }
转载于:https://www.cnblogs.com/tsw123/p/4424979.html
sdust 2410 Mine Number相关推荐
- mysql函数 动态语句_自定义函数动态执行SQL语句
Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...
- 小清新版js扫雷(使用原生js)
目录 扫雷小游戏 预览 游戏讲解 界面 逻辑设计 寻找目标格子周围格子 更新数字 游戏结束 开始游戏 总结 完整代码 HTML css js 扫雷小游戏 预览 游戏讲解 扫雷是一个益智游戏,通过格盘上 ...
- python入门小项目 | 开发一个《小猫抓鱼》小游戏
小猫抓鱼 开发工具 讲解部分 一.游戏原理 二.游戏逻辑 三.重点代码实现 开发工具 python3.6.4 第三方库: pygame,random 讲解部分 一.游戏原理 游戏原理很简单,和接水果的 ...
- 山东省第三届ACM省赛
ID Title Hint A Impasse (+) B Chess C An interesting game 最小费用最大流 D n a^o7 ! E Fruit Ninja I d ...
- 学习TypeScript数据类型-从零到英雄
It's all the rage these days in the world of web development - TypeScript. I'd wager by now you hav ...
- C#LeetCode刷题之#434-字符串中的单词数(Number of Segments in a String)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3941 访问. 统计字符串中的单词个数,这里的单词指的是连续的不是 ...
- 在2410上移植uboot1.3.2
转贴地址:http://blog.chinaunix.net/u2/74524/showart_1105803.html 目前官方网站上最新版本的u-boot 是1.3.3,本来想打算移植1.3.3的 ...
- 在2410上移植uboot1.3.2【转】
转贴地址:http://blog.chinaunix.net/u2/74524/showart_1105803.html 目前官方网站上最新版本的u-boot 是1.3.3,本来想打算移植1.3.3的 ...
- rounding to an arbitrary number of significant digits
转:http://stackoverflow.com/questions/202302/rounding-to-an-arbitrary-number-of-significant-digits Q: ...
最新文章
- stream filter_Stream 流实践
- mysql随机显示记录_MySQL随机读取表中记录
- CAS无锁(乐观锁、自旋锁)优化
- linux查看应用线程号命令,虚拟机:Linux查看线程信息的步骤
- 利率计算中的套路!用 Python 告诉你究竟亏了多少!
- 题解 T28305 【yizimi的旅游景点】
- 用设计模式去掉没必要的状态变量 —— 状态模式
- ugui unity3d 仪表盘_Unity3D---UGUI---UI创建以及Canvas设置
- 全球加密货币总市值突破7500亿美元 比特币市值突破5200亿美元
- 这样的AI技术实战方式,大boss都看不下去了!
- B站【云E办】在线办公系统 项目源码
- 不用找,你想要的3dmax最新IES光域网素材都在这里!
- JAVA-JDK环境变量配置
- 微信小程序云开发源码(垃圾分类源码)
- 基于物联网技术的电动车锂电池安全预警系统
- gtx1050ti最稳定的驱动_GTX1050ti显卡驱动
- C# 切割超级大图(.bmp)[1G以上超大图片分块加载代码]
- 学习编程,既要仰望星空,又要脚踏实地
- 解决kali虚拟机无法连接网络的问题
- 极简之SVN使用,入职必备