XCOM Enemy Unknown 简单的dfs() 枚举就行,不过有个用二进制压缩的没看懂
2013-11-09 19:55
393 查看
[align=left]Problem Description[/align]
XCOM-Enemy Unknown是一款很好玩很经典的策略游戏.
在游戏中,由于未知的敌人--外星人入侵,你团结了世界各大国家进行抵抗.
View Code
XCOM-Enemy Unknown是一款很好玩很经典的策略游戏.
在游戏中,由于未知的敌人--外星人入侵,你团结了世界各大国家进行抵抗.
#include<iostream> #include<string> #include<cstring> #include<cmath> #include<cstdio> #include<vector> using namespace std; int st[1001],fear[1001]; int cas,ans; int n,m,k,i,j; bool flag; struct node { int a[3]; }fi[1001];//此处还可用二维数组 vector<int>mvy[6]; void dfs(int cur,int *afr) { if(flag)//剪枝 return; for(int it=0;it<n;it++)//剪枝 { if(afr[it]>5) { ans=max(ans,cur-2); return; } } if(cur>k)//剪枝 { flag=true; ans=k; return; } int tmp[20];//为了保持原始数据,(其实就是还原) for(int it=0;it<3;it++)//考虑3种情况 { for(int jt=0;jt<n;jt++) tmp[jt]=afr[jt]; tmp[fi[cur].a[it]]-=2; if(tmp[fi[cur].a[it]]<1)//此处必须判断 tmp[fi[cur].a[it]]=1; for(int jt=1;jt<=2;jt++) { int k=(it+jt)%3; int sta=st[fi[cur].a[k]]; for(int kt=0;kt<mvy[sta].size();kt++) { tmp[mvy[sta][kt]]+=1; } tmp[fi[cur].a[k]]+=1; } dfs(cur+1,tmp); } } int main() { scanf("%d",&cas); int ca=0; while(cas--) { ++ca; scanf("%d%d%d",&n,&m,&k); for(i=0;i<m;i++) mvy[i].clear(); for(i=0;i<n;i++) { scanf("%d",&st[i]); mvy[st[i]].push_back(i); } for(i=0;i<n;i++) scanf("%d",&fear[i]); for(i=1;i<=k;i++) for(j=0;j<3;j++) { scanf("%d",&fi[i].a[j]); } ans=0; flag=false; dfs(1,fear); printf("Case #%d: %d\n",ca,ans); } return 0; } //其实就是枚举
View Code
相关文章推荐
- UVA 1508 - Equipment 状态压缩 枚举子集 dfs
- HDU 5423 Rikka with Tree(简单DFS+枚举)
- [PKU] 1753 Flip Game [状态压缩,DFS/BFS,枚举]
- Fliptile POJ3279 二进制压缩枚举 解题报告
- uva 10325 The Lottery (容斥原理)dfs枚举 或二进制枚举
- poj1416~简单dfs枚举题
- codeforces B - Preparing Olympiad(dfs或者状态压缩枚举)
- 习题7-4:切断圆环链(二进制枚举子集+dfs判环)
- hdu 4628 Pieces (状态压缩+二进制枚举+dp)
- 简单记录一下二进制枚举状态子集的技巧
- 二进制图像压缩算法,2005IEEE一篇文章的实现及简单改进算法
- 杭电2553_N皇后(直接DFS解法和二进制状态压缩解法)——java
- UVA 1508 - Equipment 状态压缩 枚举子集 dfs
- The Pilots Brothers' refrigerator(POJ 2965)(dfs枚举+状态压缩)
- codeforces-#476B. Dreamoon and WiFi(dfs、二进制枚举)
- [kuangbin]专题一 简单搜索 D - Fliptile(二进制枚举)
- poj 1753 Flip Game(bfs状态压缩 或 dfs枚举)
- poj--3279(二进制压缩枚举)
- POJ2965 状态压缩+BFS,DFS枚举,以及大牛的解法~
- poj 1426 Find The Multiple(dfs || 二进制枚举)