hdu 4499 dfs
来源:互联网 发布:淘宝卖家找小二介入 编辑:程序博客网 时间:2024/05/22 06:21
给你一个棋盘,最大是5*5的,问你最多可以放多少个炮,炮和炮之间不可以相互攻击,
这块只的是只能走一步,不存在两个炮中间三个棋子的情况..
dfs搜索:对每一个格子判断是否可以放(没有障碍),如果可以放分放与不放两种方案;
分别搜索一下即可。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,m;int ans;int map[11][11];int q;void dfs(int x,int y,int k){ if(x>=m) { ans=max(ans,k); return ; } if(y>=n) { dfs(x+1,0,k); return ; } if(map[x][y]) { dfs(x,y+1,k); return ; }
dfs(x,y+1,k);//不放 int flag=1; int i,j,sum,l; sum=0; for(i=x-1;i>=0;i--) { if(map[i][y]) sum++; if(sum==2&&map[i][y]==2) { flag=0; break; } } sum=0; for(i=y-1;i>=0;i--) { if(map[x][i]) sum++; if(sum==2&&map[x][i]==2) { flag=0; break; } } if(!flag) return ; map[x][y]=2; dfs(x,y+1,k+1);//放 map[x][y]=0;}int main(){ int i, j , k, l; while(cin>>m>>n>>q) { ans=0; memset(map,0,sizeof(map)); for(i=0;i<q;i++) { cin>>k>>l; map[k][l]=1; } dfs(0,0,0); cout<<ans<<endl; }}
0 0
- hdu 4499 dfs
- hdu 4499 Cannon dfs
- hdu 4499 Cannon(DFS)
- HDU-4499 Cannon (DFS)
- HDU DFS
- 【DFS】HDU
- HDU DFS
- hdu 4499 dfs(通化邀请赛)
- hdu 4499 Cannon 暴力dfs搜索
- HDU ACM 4499 Cannon 暴力DFS
- HDU 4499 Cannon (DFS回溯)
- HDU-2610 && HDU-2610 (dfs)
- HDU 1864 (DFS)
- hdu 1258 DFS
- hdu 1045 DFS+回溯
- hdu--1342 lotto (dfs)
- hdu 1010(DFS)
- hdu 1501(dfs)
- 一个缓存容灾写的例子
- 缓存一致性(Cache Coherency)入门
- 2014/9/30------C语言 常用的 windows.h 与 stdlib.h
- STL源码剖析——STL算法之sort排序算法
- nyoj181小明的难题
- hdu 4499 dfs
- Linux shell你所不知道的$($*和$@)
- 题目1045:百鸡问题
- 转载 - 别再浪费时间了!如何从细节上真正节省用户的时间
- Chrome导入数字证书
- STL源码剖析——STL算法之find查找算法
- Flex4 新特性
- (转载)初窥Linux 之 我最常用的20条命令
- OC基础-封装+继承+多态+self+类方法