Catalan number
当年组合数学里面的计数章节,生成函数。包括Knuth的具体数学里都是经典章节。
1/(n+1) X C(2n,n)
经典例子是n个结点的二叉树个数,很容易写出递推方程来。
f(n)=sum(f(k)*f(n-1-k)), 0<=k<=n-1
其中的1是root,递推出口或者base是f(0)=1, 也即空树只有一个,然后就可以一路递推过去了。
但是括号匹配,后者收BOP上的买票找零问题,似乎比这个的递推方程要复杂一些。
n对括号,顺序不知,揉在一起,问有多少种合法序列。咋一样括号,第一反应都是栈,但这题不是。
我按照BOP上的思路复述一遍。
0,1,2,…..2n-1
第一个一定是( 不然出错,然后后面找到一个与他匹配的), 这个)的index一定是奇数。因为如果是偶数,那么中间夹杂了奇数个括号对,
不能成为合法的括号序列。因此将问题划分为设为index为k,那么中间1…k-1, 后面k+1…2n-1 都是合法序列对,划分为两个子问题。由于括号对是
和其实位置无关的,因此用长度一维就可以表示了。
f(2n)=sum(f(k-1)f(2n-1-(k+1)+1))=sum(f(k-1)f(2n-k-1)) 由于k是奇数,不利于k的枚举,因此设k=2*i+1, i=0,…n-1
f(2n)=sum(f(2i)*f(2n-2i-2)) i=0….n-1
上面式子用下变量替换就是前面二叉树计数的例子了,具体求解在严奶奶的DS书上
string a, b;
a+=(b[i]+”#”)是不可以的,因为后者是char+ char* , string没有重载这个参数列表的+运算,string jin=”#”, 这样是可以的,+= + 的左边都最好是string类型。
http://www.cplusplus.com/reference/string/string/operator+/
开的数组大小是10W的数量级大小,百万级程序会挂掉,如果在class里面
Manacher算法的时间复杂度分析见这里 http://www.douban.com/note/321468038/
http://hihocoder.com/contest/hiho1/problem/1 hihocoer题目,还有leetcode也有,不过leetcode需要返回串,需要维护maxi
http://www.cnblogs.com/BigBallon/p/3816890.html?ADUIN=837626197&ADSESSION=1409747372&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349 一个HUST学弟的博客,他的代码有点区别,
前面加了一个$, 感觉使得复杂了,我倾向于邹波的版本
每次弄路由器都会出现各种问题,现在应该总结下各种问题,科研人员有点渣啊。。。。
复旦宿舍上网(Internet)几种方式
绑定静态IP,宿舍楼下,然后设置代理(有些实验室有免费代理,一般需要将宿舍IP加到代理里面才可以用,另一种是每个人都有的复旦图书馆代理,proxy.fudan.edu.cn)或者使用VPN(可能
只有少数同学认识计算机系或者信息办的同学才有的)购买宽带上网,北区非洲街,花钱,然后新建宽带连接,输入账号密码,属于铁通网络,是外网,因此访问内网的时候需要断宽带,比较麻烦,不如用图书馆代理方便
3.使用路由器。单端口路由器(连接宿舍端口),连接路由Wifi,然后设置无线的IP和子网掩码(总是忘记,一般是192.168.1.1-255随便选一个非路由IP的,只要不和路由IP冲突就可以了),不然和路由器不是一个子网(192.168.*)的,无法连上路由设置。双端口可以无线,也可以有线连接
- 无线路由器,双端口可以无线和有线连接路由器,然后设置里面选择PPPoE方式,然后输入账号密码,就可以连接了