摘要: View Code //Catalan数//h[0]=h[1]=1//h[n]=sum(h[i]*h[n-i-1]) (n>i>=0)//递推关系:h[n]=C(2n,n)/(n+1);//1.括号化问题。//1.1 矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)//2.出栈次序问题。//2.1 一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?//2.2 有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票,另外 阅读全文
posted @ 2013-04-29 12:59 zhang1107 阅读(183) 评论(0) 推荐(0) 编辑
摘要: http://www.codeforces.com/problemset/problem/55/DView Code //dp[i][j][k] 表示长度为i的,对2520取模为j的,最小公倍数为k的数的个数,1~9最小公倍数只有48个,预处理出来。const int MM = 11111;typedef __int64 int64;#define mod 2520#define debug puts("wrong")int64 N,L,R;int num[MM],cnt;int64 dp[19][2520][50];int id[MM], g;void get_init( 阅读全文
posted @ 2013-04-29 12:45 zhang1107 阅读(188) 评论(0) 推荐(0) 编辑
摘要: map STLView Code //map<vector<int>,int>vis; 可以对一个list进行映射。//类似于map<map<int,int>,int>vis 之类的都是可以做到的,注意键值需要一一对应。//begin() 返回指向map头部的迭代器//clear() 删除所有元素//count() 返回指定元素出现的次数//empty() 如果map为空则返回true//end() 返回指向map末尾的迭代器//erase() 删除一个元素//find() 查找一个元素 //if(vis.find(x)!=vis.end())/ 阅读全文
posted @ 2013-04-29 10:49 zhang1107 阅读(129) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4013记忆化搜索,学到啦用map做映射不用担心数组开多大的问题,还有map<vector<int>,int>vis;可以对一个list进行映射,由于10^9以内的素数因子的组合很少,可以记忆化。View Code //记忆化搜索,学到啦用map做映射不用担心数组开多大的问题,还有map<vector<int>,int>vis;//可以对一个list进行映射,由于10^9以内的素数因子的组合很少,可以记忆化。const int M 阅读全文
posted @ 2013-04-29 10:34 zhang1107 阅读(260) 评论(0) 推荐(0) 编辑