Black And White
来源:互联网 发布:mac终端是什么意思 编辑:程序博客网 时间:2024/05/20 14:26
http://acm.hdu.edu.cn/showproblem.php?pid=5113
一个就是我们要有顺序的来填充,一行一行的填充,还有就是剪枝的这个语句,真的比较难想,可能之后一想很简单,当时想的话,就感觉很难。
#include<cstdio>#include<cstring>const int maxn=10;int mp[maxn][maxn];int val[30];int vis[maxn][maxn];int n,m,k;int flag;int check(int col,int x,int y){ if(mp[x+1][y]==col||mp[x-1][y]==col||mp[x][y-1]==col||mp[x][y+1]==col) return 0;return 1;}void dfs(int x,int y,int num){//printf("%d %d\n",x,y);if(num==n*m){flag=1;return;}if(vis[x][y]) return;for(int i=1;i<=k;i++){//这里是提前判断if(val[i]>(n*m-num+1)/2) return;}for(int i=1;i<=k;i++){if(val[i]>0&&check(i,x,y)){//printf("(%d,%d) :%d\n",x,y,i);mp[x][y]=i;vis[x][y]=1;val[i]--;if(y<m){ //一层一层的填充,如果到底了,我们就从下一行开始 dfs(x,y+1,num+1); if(flag) return;} else{dfs(x+1,1,num+1); if(flag) return; }mp[x][y]=-1;vis[x][y]=0;val[i]++;}}}int main(){int T;scanf("%d",&T);int cnt=1;while(T--){scanf("%d %d %d",&n,&m,&k);for(int i=1;i<=k;i++)scanf("%d",&val[i]);flag=0;memset(mp,-1,sizeof(mp));memset(vis,0,sizeof(vis));dfs(1,1,0);printf("Case #%d:\n",cnt++);if(flag){printf("YES\n");for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(j==1)printf("%d",mp[i][j]);elseprintf(" %d",mp[i][j]);}printf("\n");}}else{printf("NO\n");}}}
阅读全文
0 0
- Black And White
- Black And White
- Black and white hdu3633
- hdu3911 Black And White
- hdu3911---Black And White
- HDU5113 Black And White
- Black And White HDU
- Black And White
- White, Black and White Again )(CodeForces
- hdu 3911 Black and White
- hdu 3911 Black And White
- hdu 3911 Black And White
- HDU 3911 Black And White
- HDU 3911 Black And White
- HDU 3911 Black And White
- HDU-3911Black and White
- hdu 5113 Black And White
- Black And White (dfs + 剪枝)
- 需要改变的其实是一种习惯
- War Chess
- LeetCode week 10 : Edit Distance
- 如何配置Bitnami Redmine中的邮件通知服务
- Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated
- Black And White
- 输出字母矩阵
- pycharm环境下Python2和Python3共存使用
- 前端常见算法题(伯乐在线)
- Prime Path
- 17.11.3日报
- 【视频编码压制】关于近两年的视频压制学习总结种种
- 32位 win10 安装 TensorFlow
- Fragment 嵌套 Tablayout+ViewPager+fragment 遇到的问题