hdu 杭电 1045 Fire Net
生活随笔
收集整理的这篇文章主要介绍了
hdu 杭电 1045 Fire Net
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题意:地图中最多能放多少炮台。
解法:深搜。
ac代码:
View Code #include<iostream> using namespace std;char map[8][8]; int sum,maxi,n;bool check(int x,int y) {if(map[x][y]=='X')return 0;int i;for(i=x-1;i>=0;i--){if(map[i][y]=='X')break;if(map[i][y]=='0')return 0;}for(i=y-1;i>=0;i--){if(map[x][i]=='X')break;if(map[x][i]=='0')return 0;}return 1; }void dfs(int num,int sum) {if(num==n*n){if(maxi<sum) maxi=sum;return ;}int x=num/n;int y=num%n;if(check(x,y)){map[x][y]='0';dfs(num+1,sum+1);map[x][y]='.';}dfs(num+1,sum); }int main() {while(cin>>n,n){int i,j;for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>map[i][j];memset(co,0,sizeof(co));memset(ro,0,sizeof(ro));memset(use,0,sizeof(use));sum=0;maxi=0;dfs(0,0);cout<<maxi<<endl;}return 0; } /* 4 .X.. .... XX.. .... 4 .X.X X.X. .X.X X.X. 3 ... ... ... 3 X.. .X. ..X 4 X.X. .X.X X.X. .X.X 2 XX .X 3 .X. X.X .X. 3 ... .XX .XX 4 .... .... .... .... 2 .. .. 2 XX X. 2 .X .X 2 .. XX 2 XX .. */
转载于:https://www.cnblogs.com/zgfailmr/archive/2012/09/01/2666313.html
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的hdu 杭电 1045 Fire Net的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 修改input file默认样式
- 下一篇: HP ML110/120 G7配置阵列卡