摘要:
给出M个短串,这些短串由前N个大写字母组成。然后随机的按字符生成字符串,每次生成1~N个字符的概率是相等的,当生成串包含任意一个指定短串时,就停止生成。问生成串的长度的期望是多少。 首先建立Trie图,对每个可能作为短串结束的点都打上标记。用E(x)表示从这个点走到停止生成所需长度的期望。显然,对于打标记的点,E(x)=0。对于没打标记的点E(x)=∑(E(next[x][i])*1/N)+1(0<i<N),next[x][i]是它在trie图中接受字母i后走到的点。 然后根据Trie图建立方程组,用高斯消元求解E(0)即可。 高斯消元的精度着实很低,现在的代码能过G++,但C++ 阅读全文
posted @ 2012-09-13 18:33
Burn_E
阅读(319)
评论(1)
推荐(0)
摘要:
求从L~R转换成B进制之后数位之和为M的数有多少个。 国家集训队09年的论文《浅谈数位类统计问题》对这一类的问题总结的比较详细,数形结合的思想十分巧妙。 第二种查询要用到第一种查询的结果,然后二分一下就可以了。 1 #include <string.h> 2 #include <stdio.h> 3 #include <string.h> 4 typedef long long LL; 5 int q,x,y,b,m,k; 6 int d[32][301],num[32]; 7 int dp(int l,int s){ 8 if(s<0)return 阅读全文
posted @ 2012-09-13 14:52
Burn_E
阅读(179)
评论(0)
推荐(0)
浙公网安备 33010602011771号