摘要: 思路:数位DP 1 #include 2 #include 3 int bit[10],dp[10][10][13][2]; 4 int dfs(int pos,int pre,int mod,bool h,bool inf) 5 { 6 if(pos==-1) return h&&!mod; 7 if(!inf&&dp[pos][pre][mod][h]!=-1) return dp[pos][pre][mod][h]; 8 int i,ans=0; 9 int e=inf?bit[pos]:9;10 for(i=0;i<=e;i++){11 ... 阅读全文
posted @ 2013-09-05 21:46 _随心所欲_ 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 主要注意下0的情况就可以!!!链接:http://acm.uestc.edu.cn/problem.php?pid=1307代码如下: 1 #include 2 #include 3 #include 4 #define ll __int64 5 using namespace std; 6 int bit[10],dp[20][20]; 7 int dfs(int pos,int pre,bool h,bool f) 8 { 9 if(pos==-1) return h==0;10 if(!f&&dp[pos][pre]!=-1&&!h) return dp[ 阅读全文
posted @ 2013-09-05 21:30 _随心所欲_ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 思路: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) 编辑