上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页
摘要: 思路:dp[i][0]:没有49出现的个数dp[i][1]:出现只4的个数dp[i][2]:出现49的个数代码如下: 1 #include 2 #include 3 #include 4 #define ll __int64 5 using namespace std; 6 int bit[20]; 7 ll dp[20][3]; 8 ll dfs(int pos,int h,bool f) 9 {10 if(pos==-1) return h==2;11 if(!f&&dp[pos][h]!=-1) return dp[pos][h];12 ll ans=0;13 ... 阅读全文
posted @ 2013-09-05 20:53 _随心所欲_ 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 思路:要找一个数能被他的所有反的数字整除,只需求出这个数能被其数字的LCM整除。而LCM最大为5*7*8*9=2520;如果直接开dp[20][2520][2520]会超内存,而2^3,3^2,5,7的组合只有4*3*2*2=48种,所以开dp[20][2520][50]即可。链接:http://codeforces.com/problemset/problem/55/D代码如下: 1 #include 2 #include 3 #include 4 #define ll __int64 5 using namespace std; 6 int bit[20],hash[2529]; 7 ll 阅读全文
posted @ 2013-09-05 20:38 _随心所欲_ 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 思路:dp[i][0]:位数 2 #include 3 int bit[6],dp[6][3]; 4 int dfs(int pos,int h,bool f) 5 { 6 if(pos==-1) return 1; 7 if(!f&&dp[pos][h]!=-1) return dp[pos][h]; 8 int ans=0; 9 int e=f?bit[pos]:9;10 for(int i=0;i<=e;i++){11 if(i==4||(h==1&&i==2)) continue;12 ans+=dfs(pos-1... 阅读全文
posted @ 2013-09-05 18:58 _随心所欲_ 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 思路:构造矩阵,矩阵快速幂!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define ll __int64 7 #define mod 1000000007 8 using namespace std; 9 int let[100];10 struct ma11 {12 ll a[60][60];13 }A,B;14 ll sum(ma a)15 {16 ll ans=0;17 for(int i=0;i>=1;55 a=mul(a,a);56 }57 ... 阅读全文
posted @ 2013-09-05 16:02 _随心所欲_ 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 思路:在贾志豪神牛的论文 里,这两种游戏都有其中树的删边游戏:叶子节点的SG值为0;中间节点的SG值为它的所有子节点的SG值加1 后的异或和。ANTI-SG:先手必胜当且仅当:(1)游戏的SG函数不为0且游戏中某个单一游戏的SG函数大于1;(2)游戏的SG函数为0且游戏中没有单一游戏的SG函数大于1。代码如下: 1 #include 2 #include 3 using namespace std; 4 vectorp[102]; 5 int ans,n; 6 int dfs(int m,int f) 7 { 8 int res=0; 9 for(int i=0;i1) cnt... 阅读全文
posted @ 2013-09-05 09:50 _随心所欲_ 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 思路:叶子节点的SG值为0;中间节点的SG值为它的所有子节点的SG值加1 后的异或和。详见贾志豪神牛的论文:组合游戏略述 ——浅谈SG游戏的若干拓展及变形代码如下: 1 #include 2 #include 3 using namespace std; 4 vectorp[100002]; 5 int get_sg(int n,int u) 6 { 7 int ans=0; 8 for(int i=0;i<p[n].size();i++){ 9 if(p[n][i]!=u) ans^=(1+get_sg(p[n][i],n));10 }11 r... 阅读全文
posted @ 2013-09-04 17:09 _随心所欲_ 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 给出序列,在剩下的卡中选择,谁先拿到大于31的输,搜一下就可以了!代码如下: 1 #include 2 #include 3 char str[25]; 4 int a[7],sum; 5 bool dfs(int m) 6 { 7 if(m>=31) return 0; 8 for(int i=1;i=31){32 if(l&1) puts("A");33 else puts("B");34 continue;35 }36 if(dfs(sum)){37 ... 阅读全文
posted @ 2013-09-04 14:04 _随心所欲_ 阅读(286) 评论(0) 推荐(0) 编辑
摘要: SG函数应用!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int sg[1002],a[101],n; 8 int get_sg(int m) 9 {10 if(sg[m]!=-1) return sg[m];11 bool vis[10000];12 memset(vis,0,sizeof(vis));13 for(int i=0;i<n&&a[i]<=m;i++)14 for(int j=0;j<=m-a[i]-j... 阅读全文
posted @ 2013-09-03 22:12 _随心所欲_ 阅读(267) 评论(0) 推荐(0) 编辑
摘要: SG函数打表,求NIM和!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int sg[51][51]; 8 char str[51]; 9 void init()10 {11 int i,j,a,b,k;12 bool vis[510];13 for(i=0;i<=50;i++){14 sg[i][0]=sg[0][i]=i;15 }16 for(i=1;i<=50;i++)17 for(j=1;j<=... 阅读全文
posted @ 2013-09-03 21:46 _随心所欲_ 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 主要是求NIM积!!!代码如下:#include#include#include#include#define ll __int64using namespace std;int f[20][20];int nim(int x,int y);int _nim(int x,int y){ if(!x||!y)return 1>i)&1)e*=1>i)&1)ret=nim(ret,3*(1>i)&1) for(int j=0;j>j)&1) ret^=_nim(i,j); return ret;}int main(){ int t,x,y,n 阅读全文
posted @ 2013-09-03 14:57 _随心所欲_ 阅读(338) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页