摘要:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1243 这时一道笛卡尔树的题目。 刚开始,想都没想就手打了一棵Treap,也没有计算最坏情况下要操作多少次,于是就一直改指针什么的,并一直TLE。后来,只好找题解来解释一下我TLE的原因了。直接就看到一个博客,博主也是跟我一样,刚开始的时候用了Treap,结果TLE了。然后,我就看到了一个新名词——笛卡尔树(Cartesian Tree)。我立即维基了一下笛卡尔树的定义,发现原来笛卡尔树的构造十分简单。 笛卡尔树,一种特殊的Treap,采用离线插入。当结点权值被固定的时... 阅读全文
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1223 dp递推求满足条件的不等式的个数。 这里需要用到大数乘法,于是我就顺便打了一个大数的模板,重载了+和*运算符。 递推的公式很简单,dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j] * j,其中i 是指共有i 个符号,j 是指将i 个符号分成j 份,dp得到种类的数目。然后dp[i][1~i]各项相加,就是最终的答案了。代码如下:View Code 1 #include <cstdio> 2 #include <cstring> 3 #incl 阅读全文