bzoj3404】的更多相关文章

3404: [Usaco2009 Open]Cow Digit Game又见数字游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 47  Solved: 32[Submit][Status] Description     贝茜和约翰在玩一个数字游戏.贝茜需要你帮助她.     游戏一共进行了G(1≤G≤100)场.第i场游戏开始于一个正整数Ni(l≤Ni≤1,000,000).游 戏规则是这样的:双方轮流操作,将当前的数字减去一个数,这个数可以…
题解: 博弈论 然而我直接暴力dp 代码: #include<bits/stdc++.h> using namespace std; ; int f[N],n,T; void init() { f[]=; ;i<N;i++) { ,Max=; while (j) { !=) { Max=max(j%,Max); Min=min(j%,Min); } j/=; } &&!f[i-Min])f[i]=; &&!f[i-Max])f[i]=; } } int m…
#include<cstring> #include<cstdio> #include<algorithm> #include<set> using namespace std; int m,n; int SG[1000001]; int sg(int x) { if(SG[x]!=-1) return SG[x]; if(!x) return SG[x]=0; set<int>S; int maxv=0,minv=2147483647; int…
summary:44 没救了...整天刷水迟早药丸! ❤bzoj3892: 区间dp.我原来的思路是dp[i][j]表示前i个数跳过了j次,那么转移可以前k个数转移了j-1次,枚举k就好了,但是这样是错的,因为前k个数转移了j-1次,那么再k到i之间到底要在哪一步跳无法确定.于是便WA了.正确的转移应该是前i-k-1个数转移了j-k次,在i-k-1到i直接跳过去就好了.dp的转移方程要多验证是否是对的...! #include<cstdio> #include<cstring> #…