hdoj 1045 Fire Net 直接枚举 模拟就好了
来源:互联网 发布:用友软件u8下载 编辑:程序博客网 时间:2024/06/11 19:04
题目链接
直接枚举所有结果就可以了,
就是第一次模拟这样的数据 每个位置若没有阻挡物,存在着两种状态,一是有堡垒,二是空地。直接枚举就可以了。
自己的代码写的很繁琐,但是 首次想到了 将if(y>=n){x++,y=0}通过这项关键函数,就可以有序的枚举 从左往右 然后判断是否成立,若成立重新扫描一遍,得到堡垒是否最多。
自己第一次写的枚举代码 很是繁琐。
#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>using namespace std;char a[10][10];char b[10][10];int sum=0,n;int MAX;int judge(){ int flag=1; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(b[i][j]=='O'){ int k=j; while(++k<n){ if(b[i][k]=='.')continue; if(b[i][k]=='O'){ flag=0; goto end; } if(b[i][k]=='X')break; } } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(b[j][i]=='O'){ int k=j; while(++k<n){ if(b[k][i]=='.')continue; if(b[k][i]=='O'){ flag=0; goto end; } if(b[k][i]=='X')break; } } } } end:; if(flag==1){ int sum=0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++) if(b[i][j]=='O')sum++; } return sum; } else return -1; }void fun(int x,int y,char tmp){ if(y>=n){x++;y=0;} if(a[x][y]=='X')b[x][y]='X'; else { b[x][y]=tmp; } if( (x==n-1)&&(y==n-1)){ // for(int i=0;i<n;i++) // printf("%s\n",b) int sum=judge(); if(MAX<sum){MAX=sum;} return ; } fun(x,y+1,'O'); fun(x,y+1,'.');}int main(){ while(scanf("%d",&n)!=EOF){ if(n==0)break; for(int i=0;i<n;i++) scanf("%s",a[i]); //O . MAX=-1; if(a[0][0]!='X'){ fun(0,0,'O'); fun(0,0,'.'); } else { fun(0,0,'O'); } printf("%d\n",MAX); } return 0; }
- hdoj 1045 Fire Net 直接枚举 模拟就好了
- HDOJ 1045 Fire Net
- HDOJ 1045 Fire Net
- hdoj 1045 Fire Net
- HDOJ 1045 Fire Net
- hdoj-1045-Fire Net
- hdoj-1045 Fire Net
- ACM HDOJ 1045 (Fire Net)
- hdoj 1045 Fire Net 【DFS】
- 【HDOJ 1045】Fire Net--dfs
- hdoj 1045 Fire Net(DFS)
- 【ACM】HDOJ 1045 Fire Net
- hdoj 1045 Fire Net 【dfs】
- hdoj 1045 Fire Net (dfs)
- HDOJ HDU 1045 Fire Net
- UVA 509 RAID! 模拟?直接搞就好了 暴力
- HDOJ 题目1045 Fire Net(dfs)
- 【HDOJ 1045】Fire Net--二分图
- 二叉树的操作汇总
- HDU 1892 二维树状数组
- 如何打一个rpm包
- maven创建Myeclipse2013 web项目
- 130902 recommendation system
- hdoj 1045 Fire Net 直接枚举 模拟就好了
- 约瑟夫问题总结及代码实现
- 堆和栈的一些小疑问
- 超越竞争对手的秘密武器-技术重用
- QT 的信号与槽机制介绍
- 编译 50 字节代码耗费 4G 内存
- AC自动机算法详解
- C++和Java有什么不同
- redis-2.6.16源码分析之pub-sub系统