poj解题报告——2068
2015-08-16 11:34
316 查看
题目是说有2*n个人坐在一起,分为2组交叉坐,共有s个石头,每次挨着取石头,石头不能超过当前人取最大的限制,若谁取到最后一个石头,那么就算失败。现在问我方是否能胜利,胜利输出1,失败输出0。
dp[i][j]表示为第i个人剩下j个石头的胜负情况。
dp[i][j]表示为第i个人剩下j个石头的胜负情况。
#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn=8200; int dp[21][maxn],n,a[21],tot; int min(int a,int b) { return a<b?a:b; } int DFS(int index,int res) { if(index==n+1) index=1; if(res==1) return 0; if(res<=a[index]) return dp[index][res]=1;; if(dp[index][res]!=-1) return dp[index][res]; for(int i=1;i<=min(res,a[index]);i++) if(!DFS(index+1,res-i)) return dp[index][res]=1; return dp[index][res]=0; } int main() { while(scanf("%d",&n)&&n) { memset(dp,-1,sizeof(dp)); scanf("%d",&tot); n*=2; for(int i=1;i<=n;i++) scanf("%d",&a[i]); if(DFS(1,tot)) printf("1\n"); else printf("0\n"); } return 0; }
相关文章推荐
- POJ 3630/HDU 1671 Phone List(字典树)
- 8天学通MongoDB——索引操作(转)
- 【C++】智能指针auto_ptr
- Session、Cookie总结
- jquery mobile开发中footer一直在底部的设置方法
- Spark的TorrentBroadcast:概念和原理
- 『iOS/Obj-C』The difference among int, NSInteger, NSUInteger and NSNumber
- 1114 hdu
- 不要在一棵树上吊死
- HDU2222 Keywords Search(AC自动机模板题)
- arm定时器0
- C++基础---指针
- Android EventBus源码解析 带你深入理解EventBus
- HttpServletRequest 相关的监听
- 动态规划
- 二叉树非递归遍历
- CocoaUI 开源了!大家快来了解下
- HttpSession 相关的监听
- hdu 3001 Travelling (TSP问题 )
- eclipse:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) wit