摘要: 链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2476大意:1~n的排列中前m个数中恰好有k个数在原位上的个数解法:首先是从m个数中取出k个数:C(m, k) ;其次,为了保证前m个数中剩下的m-k个数不在原位上,考虑剩下n-k个数的错排;接着是后面n-m个数中有1个在原位上,剩余n-k-1再错排C(n-m,1)*f[n-k-1],这样依次下去……结果便为:C(m,k)*(f[n-k]+f[ 阅读全文
posted @ 2013-08-09 21:13 sxqqslf 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=24&problem=1962&mosmsg=Submission+received+with+ID+12183600大意:有k个麻球,每只活一天,死之前可能会生出一些新的麻球,生出i个麻球的概率是pi,求m天后,所有麻球死亡的概率解法:k个麻球分别独立,可以单独考虑,令f[i]表示1个麻球i天后死亡的概率,考虑它生下j个孩子,那么,这j个孩子在(i-1)(因 阅读全文
posted @ 2013-08-09 19:21 sxqqslf 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 前人太聪明了,,怎么搞出的这种东西。。水平明显不是一个层次啊,,同样都是地球人啊,,怎么差距这么大啊 阅读全文
posted @ 2013-08-04 19:28 sxqqslf 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 哈哈,独自在外,祝自己生日快乐啦~ 阅读全文
posted @ 2013-08-04 07:08 sxqqslf 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635大意:给出一个简单有向图,问最多可以向图中添加几条边,并且保证图不是强连通解法:图的最后形式肯定是两部分X和Y,且两部分之间要么只有X到Y的边,要么只有Y到X的边,并且X和Y都是完全图,此时有边数为 ans = x*(x-1)+y*(y-1)+x*y,因为x+y = n,化简得:ans = n*n-n-x*y,当x尽可能小的时候,ans才会尽可能的大,所以 首先求强连通分量缩点,然后找到出度或入度为0(一定存在)中点数最少的强连通分量作为X,最后的答案还需要减去原来就存在的边代码如下: 1... 阅读全文
posted @ 2013-08-03 15:11 sxqqslf 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638大意:询问区间内有多少段连续的数,如3 1 2 5 4,区间[2,4]内有2段数,1~2和5解法:考察当前插入一个数x会发生什么变化:如果x+1和x-1都已出现,那么x的插入会使得他们3个数连成一段,段的个数减少1;如果两者均没有出现,那么段的个数增加1;如果只出现其一,则段的个数不发生变化;那么,我们可以先将所有的数,按照这样的规律所取得的值插入到一颗线段树中,整个区间段的个数即为区间和;但是,询问不一定是整个区间,所以还需要删除前面的一些数,进一步,我们将所有询问读入后,按照左端点排序,对于每 阅读全文
posted @ 2013-08-02 18:07 sxqqslf 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632大意:求出一个串的不同的回文子序列的个数思路:首先是回文子序列,不是子串;考虑动态规划,状态表示:f[s][e]表示区间[s,e]内有所少个回文子序列,那么转移就是: f[s][e] = f[s+1][e] + f[s][e-1] - f[s+1][e-1],因为[s+1,e]和[s,e-1]会有重复的部分(容斥原理); 另外,如果ch[s] = ch[e],那么可以首位两个字符可以和内部的串组成新的回文串,加上其本身("ch[s]ch[e]"也是回文串),故还需要加上 f[s 阅读全文
posted @ 2013-08-02 13:52 sxqqslf 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 首先说下遗憾吧,,没能搞出第一题,,签到题啊,,不过当时确实不会,从来没做过这种类型的题(本来题就做得少-_-),最后就因为这题,没拿到分,,离交钱又进了一步流程:1008,hehe,一开始看题,没理解,后来注意到hehe代表两种意思,然后算了下小范围的结果,惊奇的发现时fibonacci数列,于是果断让zwx写,不过这货居然递推的时候忘记取模,2Y;然后gap了一段时间,期间考虑了1001的算法,没怎么明白zwx讲的,他觉得正确,于是就写了,不过复杂度有点高,我开始想1011,随便画了几个图,惊奇的发现,取胜似乎只与右下角的个子有关,然后果断写之,1Y,居然是我们学校第一个做出此题的,嘿嘿, 阅读全文
posted @ 2013-08-01 18:56 sxqqslf 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个字符串,要求每次删去其中的回文子序列(可以不连续),问最少删除几次,可以将串清空,例:abb,依次删去bb,a或a,bb 需要2次解法: 比赛的时候考虑了贪心,即每次删去最长的,但存在反例:abcddcbacd,若删去abcddcba,需要3次,其实最少2次,abcdcba,dcd;然后又考虑搜索,syc写了,不过最后没写出来,比赛的时候确实没有想到更好的做法; 正确的做法是状态压缩DP,长度只有16,最多2^16个状态,dp[x]表示x这个状态最少需要多少次,那么dp[x]=min(dp[x],dp[k]),k为x的子集,每个状态的初始值,需要根据其特征来定,如果本身就.. 阅读全文
posted @ 2013-07-31 14:52 sxqqslf 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 多校第三场,CLJ出的题目,好多字符串,好多数据结构,好多数学题,但是只A了一题,妥妥的最后……要交300块钱了…… 阅读全文
posted @ 2013-07-30 17:51 sxqqslf 阅读(104) 评论(0) 推荐(0) 编辑