2017.2.10【初中部 GDKOI】模拟赛B组 粉刷(paint) 题解
来源:互联网 发布:淘宝宝贝详情页源代码 编辑:程序博客网 时间:2024/05/16 03:34
原题:
http://172.16.0.132/senior/#contest/show/1918/1
题目描述:
鸡腿想到了一个很高(sha)明(bi)的问题,墙可以看作一个N*M的矩阵,有一些格子是有污点的。现在鸡腿可以竖着刷一次,覆盖连续的最多C列,或者横着刷一次,覆盖连续的最多R行。现在鸡腿把墙上的情况告诉你,请你告诉鸡腿最少要刷多少次才能刷干净!
输入:
第1行,输入俩正整数N,M。
第2到N+1行,每行一个长度为M的字符串,每个字符可能是’.’表示干净的,或者’X’表示这个格子有污点。
第N+2行,输入俩正整数表示R和C。
输出:
输出一行一个整数,表示鸡腿最少要刷几次。
样例输入:
输入1:
1 9
XXXXXXXXX
2 3
输入2:
11 14
XXX..XXX..XXX.
.X..X….X…X
.X..X….X…X
.X..X….X…X
.X…XXX..XXX.
…………..
…XX…XXX…
….X……X..
….X….XXX..
….X……X..
…XXX..XXX…
1 2
样例输出:
输出1:
1
输出2:
7
数据范围限制:
对于50%的数据1≤N,M≤5;
对于100%的数据1≤N,M,R,C≤15。
分析:
dg每一种行的状态,每一种状态中对列进行贪心,最后更新答案
实现:
#include<cstdio>#include<cstring>#include<iostream>using std::min;int n,m,r,c,i,j,ans;bool bz1[15],bz2[15];char s[15][15];void dg(int t,int sum){ int i,j; if(t>n) { memset(bz2,false,sizeof(bz2)); for(j=1;j<=m;j++) for(i=1;i<=n;i++) if(!bz1[i]&&s[i][j]=='X') bz2[j]=true; for(i=1;i<=m;i++) if(bz2[i]) { for(j=1;j<=c;j++) bz2[min(j+i-1,m)]=false; sum++; } if(sum<ans) ans=sum; return; } if(!bz1[t]) { for(i=1;i<=r;i++) bz1[min(i+t-1,n)]=true; dg(t+1,sum+1); for(i=1;i<=r;i++) bz1[min(i+t-1,m)]=false; } dg(t+1,sum);}int main(){ scanf("%d%d\n",&n,&m); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) scanf("%c",&s[i][j]); scanf("\n"); } scanf("%d%d",&r,&c); ans=2147483647; dg(1,0); printf("%d",ans); }
0 0
- 2017.2.10【初中部 GDKOI】模拟赛B组 粉刷(paint) 题解
- 2017.2.10【初中部 GDKOI】模拟赛B组题解
- 2017.2.09【初中部 GDKOI】模拟赛B组 昵称 题解
- 2017.2.11【初中部 GDKOI】模拟赛B组题解
- 2017.2.11【初中部 GDKOI】模拟赛B组题解
- 2017.2.10【初中部 GDKOI】模拟赛B组 方格游戏(game) 题解
- 2017.2.10【初中部 GDKOI】模拟赛B组 运算符(calc) 题解
- 2017.1.13【初中部 GDKOI】模拟赛B组 逆光 题解
- 2017.1.14【初中部 GDKOI】模拟赛B组题解
- 2017.1.19【初中部 GDKOI】模拟赛B组 开灯 题解
- 2017.1.19【初中部 GDKOI】模拟赛B组 长方形 题解
- 2017.1.21【初中部 GDKOI】模拟赛B组 国色天香 题解
- 2017.2.10【初中部 GDKOI】模拟赛B组
- 2017.2.09【初中部 GDKOI】模拟赛B组 最难的问题 题解
- 2017.2.09【初中部 GDKOI】模拟赛B组 拦截导弹 题解
- 2017.2.09【初中部 GDKOI】模拟赛B组 格斗俱乐部 题解
- 2017.2.11【初中部 GDKOI】模拟赛B组 摧毁巴士站(bus) 题解
- 2017.2.11【初中部 GDKOI】模拟赛B组 空间航行(warp) 题解
- falcon post数据时要注意
- Teemo Attacking
- Android性能优化系列之apk瘦身
- tomcat+nginx+redis实现均衡负载、session共享(二)
- 递归的函数
- 2017.2.10【初中部 GDKOI】模拟赛B组 粉刷(paint) 题解
- 海量数据处理问题汇总
- PAT:A1025. PAT Ranking (0/25)
- xml解析成view对象需要注意的事
- swagger出现no response from server错误的解决办法
- cpp——类——成员访问权限
- 初识nodeJs
- web编程从入门到项目实战-Package.json篇
- testng.xml文件结构组成及节点属性说明