摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1544View Code 阅读全文
posted @ 2013-05-03 22:27 zhang1107 阅读(120) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2663View Code //放骨牌类问题,dfs枚举方法,递推。 const int MM = 1111;#define debug puts("wrong")typedef __int64 int64;int64 N,M,dp[111][11];void dfs(int64 row,int64 col,int64 pre,int64 now,int64 ss) { if(col>=3) { if(pre==7) dp[row][now]+=ss; return; } if((pre&(1<< 阅读全文
posted @ 2013-05-03 21:41 zhang1107 阅读(211) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1095catalan数确定N个节点的二叉树的种数,左右分配节点确定id。View Code const int MM = 11111;const int maxn = 19;typedef __int64 int64;#define debug puts("wrong")int N;int cata[maxn];void get_cata() { int i,j,k; cata[0]=cata[1]=1; for(i=2;i<maxn;i++) { for(cata[i]=0,j=0;j<i;j++) cat 阅读全文
posted @ 2013-05-03 21:35 zhang1107 阅读(166) 评论(0) 推荐(0) 编辑
摘要: http://acm.fzu.edu.cn/problem.php?pid=2113枚举1的个数,ans=ans+i*dfs();View Code const int MM = 11111;typedef __int64 int64;#define debug puts("wrong")int cnt, num[MM];int64 dp[20][20][20],L,R;int64 dfs(int le,int sum,int s,bool less) { if(le==-1) return sum==s; if(!less && dp[le][sum][s 阅读全文
posted @ 2013-05-03 12:05 zhang1107 阅读(278) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3416注意当0也是满足条件的情况下, 假设数字分解有cnt位,则结果将会多出cnt-1个0,即ans-cnt+1为最后结果。View Code 阅读全文
posted @ 2013-05-03 11:13 zhang1107 阅读(134) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4352类似于O(nlog n)的LIS求法,用1<<10记录10以内数的出现情况,贪心更新。View Code //类似于O(nlog n)的LIS求法,用1<<10记录10以内数的出现情况,贪心更新。const int MM = 11111;typedef __int64 int64;int K,cnt, num[MM];int64 dp[20][1<<10][10],L,R;void get_data() { scanf("%I64d%I64d%d" 阅读全文
posted @ 2013-05-03 09:53 zhang1107 阅读(133) 评论(0) 推荐(0) 编辑