Codeforces 7A
2015-08-16 20:48
253 查看
题目大意:给出一块8*8棋盘的终态,初始状态是全部白棋,一次操作可以把一行或一列的棋子换成黑棋,可以重复换,问最少要多少次。
好吧,构造题,平时做得比较少。我的构造方法基于贪心的思想,我们先处理行,处理完行再处理列。对于一行在终态中全黑的,我们自然要在初始棋盘中将其涂黑,然后对于非全黑的一行,我们枚举每一个格子,再检查在这个格子上能不能竖着涂,能就在初始棋盘上涂。对于列同样的搞法。
这道题完全凭感觉写的,我自己都不清出我写了些什么鬼畜的东西,到现在还是一头雾水,反正交几次就A了,哪位大神可以证明请评论,谢谢。
%%%__debug大神。
好吧,构造题,平时做得比较少。我的构造方法基于贪心的思想,我们先处理行,处理完行再处理列。对于一行在终态中全黑的,我们自然要在初始棋盘中将其涂黑,然后对于非全黑的一行,我们枚举每一个格子,再检查在这个格子上能不能竖着涂,能就在初始棋盘上涂。对于列同样的搞法。
这道题完全凭感觉写的,我自己都不清出我写了些什么鬼畜的东西,到现在还是一头雾水,反正交几次就A了,哪位大神可以证明请评论,谢谢。
%%%__debug大神。
#include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<iostream> #include<string> char map1[8][8]; int map[8][8],ini[8][8]; int judge1(int i) { int flag=0,f2=0; for(int j=0;j<8;j++) if(map[i][j]==0)flag++; for(int j=0;j<8;j++) if(ini[i][j]==1)f2++; if(f2==8)return 8; return flag; } void paint1(int i) { for(int j=0;j<8;j++) ini[i][j]=1; } void paint2(int i) { for(int j=0;j<8;j++) ini[j][i]=1; } int judge2(int k) { int flag=0,f2=0; for(int i=0;i<8;i++) if(map[i][k]==0)flag++; for(int j=0;j<8;j++) if(ini[j][k]==1)f2++; if(f2==8)return 8; return flag; } int main() { int cnt=0; for(int i=0;i<8;i++) scanf("%s",map1[i]); for(int i=0;i<8;i++) for(int j=0;j<8;j++) map[i][j]=map1[i][j]=='W'?0:1; for(int i=0;i<8;i++) { int f1=judge1(i); if(f1==0)paint1(i),cnt++; else { for(int j=0;j<8;j++) {int k=judge2(j); if(k==0) paint2(j),cnt++; } } } for(int i=0;i<8;i++) { int f2=judge2(i); if(f2==0)paint2(i),cnt++; else { for(int j=0;j<8;j++)if(judge1(j)==0) paint1(j),cnt++; } } printf("%d\n",cnt); }
相关文章推荐
- POJ3258 二分
- HDU 4630-No Pain No Game(线段树+离线处理)
- Java中循环问题:for,while,do-while 各种练习(打印上三角、下三角、输出100以内的素数、水仙花、最大公约、最小公倍数、分解质因数、兔子问题)
- maven常用命令介绍
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
- 认识Runtime1
- ntfs mount fail after upgrade win10
- ORACLE 10g 安装教程[图文]
- HDU 5301(Buildings-贪心构造)
- HDU 5391 Zball in Tina Town
- iOS概念入门学习-Foundation-NSArray
- 设置电脑分屏显示的4种情况
- c++类占用的内存空间
- URL的结构介绍
- 我的创业经历
- html5中的clip
- Ubuntu14.04下安装 Jlink 往S3C2440 开发板下载程序过程的 安装、使用
- CCF题目:Z字形扫描
- Android中的样式和主题(Styles and Themes)
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动