【DP 训练】Free Candies, UVa 10118
2016-10-07 10:51
471 查看
#include<bits/stdc++.h> using namespace std; int n,dp[50][50][50][50],pile[5][50],top[5]; int dfs(int cur,int status) { if(cur==5)return 0; int& ans = dp[top[1]][top[2]][top[3]][top[4]]; if(ans!=-1)return ans; ans = 0; for(int i=1;i<=4;i++) { if(top[i]==n)continue; ++top[i]; if(status&1<<pile[i][top[i]]) ans = max(ans,dfs(cur-1,status^1<<pile[i][top[i]])+1); else ans = max(ans,dfs(cur+1,status^1<<pile[i][top[i]])); --top[i]; } return ans; } int main(void) { while(scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) { for(int j=1;j<=4;j++) { cin>>pile[j][i]; } } memset(top,0,sizeof(top)); memset(dp,-1,sizeof(dp)); cout<<dfs(0,0)<<endl; } return 0; }
相关文章推荐
- UVa 10118:Free Candies(DP)
- UVA - 10118 Free Candies(dp 与状态所对应的信息)
- UVa 10118 - Free Candies(dp)
- [逆向DP]UVa10118 - Free Candies
- Free Candies - UVa 10118 dp
- uva 10118 (Free Candies)(DP)
- UVA - 10118 Free Candies(dp)
- uva 10118(DP)
- UVa 10118 Free Candies (记忆化搜索+状态压缩)
- uva 10118 - Free Candies(记忆化搜索)
- UVA10118_Free Candies状态压缩
- uva 10118(DP)
- 记忆化搜索 逆向dp uva10118
- uva 10118 Free Candies
- UVa 10118 Free Candies
- UVa 10118 Free Candies (记忆化搜索+哈希)
- UVA - 10118 Free Candies
- uva 10118 Free Candies
- UVa 10118 Free Candies(记忆化搜索经典)
- UVA 10118 Free Candies