poj 1167 简单搜索
2013-07-22 12:21
246 查看
这题主要是注意好限定的条件
条件1:每个公交车都至少要到达两次
条件2:公交车相同时间和相同间隔是属于两种车辆
条件3:不同的车可能到达时间相同
上述都是深搜的重要条件:
View Code
条件1:每个公交车都至少要到达两次
条件2:公交车相同时间和相同间隔是属于两种车辆
条件3:不同的车可能到达时间相同
上述都是深搜的重要条件:
#include<algorithm> #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> using std::sort; int const N = 1000; struct node { int begin,interval,Count; bool operator <(const node &tmp)const { return Count>tmp.Count; } }bus ; int sum ,n,val,cnt,ans; int Min(int a,int b) { return a<b?a:b; } bool judge(int b,int inter) { for(int i=b;i<=59;i+=inter) { if(sum[i]==0) return false; } return true; } void dfs(int t,int num) { if(n<=0) { ans=Min(num,ans); return ; } for(int i=t;i<cnt;i++) { if(num+(n/bus[i].Count)>=ans)return ; if(judge(bus[i].begin,bus[i].interval)) { for(int j=bus[i].begin;j<=59;j+=bus[i].interval) { sum[j]--; n--; } dfs(i,num+1); for(int j=bus[i].begin;j<=59;j+=bus[i].interval) { sum[j]++; n++; } } } } int main() { while(~scanf("%d",&n)) { memset(sum,0,sizeof(sum)); cnt=0; for(int i=0;i<n;i++) { scanf("%d",&val); sum[val]++; } for(int i=0;i<=29;i++) { if(sum[i]==0)continue; for(int j=i+1;j<=59-i;j++) { if(judge(i,j)) { bus[cnt].begin=i; bus[cnt].interval=j; bus[cnt].Count=(59-i)/j+1; cnt++; } } } ans=17; sort(bus,bus+cnt); dfs(0,0); printf("%d\n",ans); } return 0; }
View Code
相关文章推荐
- POJ 3278 Catch That Cow(kuangbin带你飞 专题一:简单搜索)
- [kuangbin带你飞]专题一 简单搜索F - Prime Path(POJ 3126)
- poj1248深度搜索简单题
- [kuangbin带你飞]专题一 简单搜索 C - Catch That Cow poj 3278
- POJ 3126-Prime Path 简单搜索 BFS
- [kuangbin带你飞]专题1 简单搜索 B - Dungeon Master POJ - 2251
- POJ 3984 迷宫问题(kuangbin带你飞 专题一:简单搜索)
- POJ 3279 Fliptile(kuangbin带你飞 专题一:简单搜索)
- poj 3909 简单 搜索
- POJ 1321棋盘问题(简单搜索dfs回溯)
- poj2386——油田问题(简单搜索)
- [kuangbin带你飞]专题一 简单搜索 - A - 棋盘问题 POJ - 1321
- poj~1321(简单搜索)
- POJ - 3984 迷宫问题 [kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞]专题1 简单搜索 C - Catch That Cow POJ - 3278
- poj 1979 Red and Black (简单裸搜索)
- POJ 3087 Shuffle'm Up(kuangbin带你飞 专题一:简单搜索)专题一完结
- [kuangbin带你飞]专题一 简单搜索 B - Dungeon Master(POJ 2251)
- [kuangbin带你飞]专题一 简单搜索 POJ - 1321
- 简单搜索poj 2243(水