ZOJ 1227 Free Candies(记忆化搜索)
2013-04-25 06:41
253 查看
#include <iostream> #include <cstdio> #include <memory.h> #include <vector> using namespace std; const int maxn=21; int cnt[maxn],grid[maxn*2][4],mxans,n,idx[4],ans;; bool dp[42][42][42][42]; void dfs(int tms){ mxans=max(mxans,ans); bool &ref=dp[idx[0]][idx[1]][idx[2]][idx[3]]; if(tms>=5)return; else if(ref)return; ref=1; for (int i=0;i<4;++i){ if(idx[i]<n){ int f=0; if(cnt[grid[idx[i]][i]]+1==2){ cnt[grid[idx[i]][i]]=0; tms--; f=1; ans++; }else{ cnt[grid[idx[i]][i]]=1; tms++; } idx[i]++; dfs(tms); idx[i]--; if(f){ cnt[grid[idx[i]][i]]=1; tms++; ans--; }else{ cnt[grid[idx[i]][i]]=0; tms--; } } } } int main(){ while (scanf("%d",&n)&&n){ memset(grid,0,sizeof(grid)); for (int i=0;i<n;++i){ for (int j=0;j<4;++j){ int t; scanf("%d",&grid[i][j]); } } mxans=0; ans=0; memset(dp,0,sizeof(dp)); memset(cnt,0,sizeof(cnt)); memset(idx,0,sizeof(idx)); dfs(0); printf("%d\n",mxans); } return 0; }
相关文章推荐
- ZOJ 1227 Free Candies
- UVa 10118 Free Candies (记忆化搜索+状态压缩)
- ZOJ 1107 FatMouse and Cheese(记忆化搜索)
- UVa 10118 - Free Candies(记忆化搜索)
- zoj 1107 FatMouse and Cheese(动态规划 记忆化搜索)
- ZOJ3352【记忆化搜索】
- ZOJ 3795 Grouping(强联通缩点,记忆化搜索)
- [ZOJ 3469]Food Delivery[记忆化搜索]
- 100道动态规划——5 UVA 10118 Free Candies 记忆化搜索 以及 证明状态
- [记忆化搜索] zoj 3681 E - Cup 2
- ZOJ Walk Through the Forest (dijkstra + BFS || 记忆化搜索)
- UVa 10118 Free Candies(记忆化搜索经典)
- ZOJ 1039 Number Game (状态压缩,记忆化搜索)
- zoj 3644(dp + 记忆化搜索)
- zoj 3644(dp + 记忆化搜索)
- ZOJ-1227
- HUD 1227 && POJ 1485 && ZOJ 1196
- FOJ/FZU/FZOJ 1550Monetary System【记忆化搜索】
- zoj 3644 记忆化搜索
- UVA 10118 Free Candies(记忆化搜索)