HDU 3569 Imaginary Date 简单期望】的更多相关文章

推一下公式.就会发现是这个.. 由于设结果有x种方案.则每一个数字出现的概率都均等,然后和就是x*m 每种方案的概率是1/x 每一个数出现的概率都是1/n 所以每一个方案的和就是 sum/n *m #include <cstring> #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; const int N = 1005; int main() { int…
Crossing Rivers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 738    Accepted Submission(s): 387 Problem Description You live in a village but work in another village. You decided to follow t…
Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1871    Accepted Submission(s): 1065 Problem Description Adam and Eve enter this year’s ACM International Collegiate Programming Con…
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意简单,直接用容斥原理即可 AC代码: #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cstdlib> #include <cmath> #include <vector> #include &…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:从0走到n,每次走之前掷一次筛子,掷出几点就向前走几点,走到大于等于n的地方就停止.但是,有些地方可以连着走,即到达这个地方时可以接着到达以后的某个格子.问停止是掷骰子的期望? 思路: E(i) (i>=n) 全部为0 对于0<i<n E(i)=(E(i+1)+E(i+2)+E(i+3)+E(i+4)+E(i+5)+E(i+6))/6+1 如果i会被传送到j 那么E(i)=E(j…
Abandoned country 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5723 Description An abandoned country has n(n≤100000) villages which are numbered from 1 to n. Since abandoned for a long time, the roads need to be re-built. There are m(m≤1000000) ro…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意: 一共有n种卡片.每买一袋零食,有可能赠送一张卡片,也可能没有. 每一种卡片赠送的概率为p[i],问你将n种卡片收集全,要买零食袋数的期望. 题解: 表示状态: dp[state] = expectation state表示哪些卡片已经有了 找出答案: ans = dp[0] 什么都没有时的期望袋数 如何转移: 两种情况,要么得到了一张新的卡片,要么得到了一张已经有的卡片或者啥都没有.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意: 你在下简化版飞行棋... 棋盘为一个线段,长度为n. 上面有m对传送门,可以直接将你从a[i]传送到b[i]处. 每扔一次骰子,可以向前移动的步数为骰子的点数. 你的初始位置为0.当位置>=n时,游戏结束. 问你扔骰子次数的期望. 题解: 表示状态: dp[i] = rest steps 位置为i时,剩余需要掷骰子次数的期望. 找出答案: ans = dp[0](初始位置) 如何转移:…
题意: 就是现在给出m个串,每个串都有一个权值,现在你要找到一个长度不超过n的字符串, 其中之前的m个串每出现一次就算一次那个字符串的权值, 求能找到的最大权值的字符串,如果存在多个解,输出最短的字典序最小的串. 当最大全权值为0时输出空串. 输入最多100个子串,权值为不超过100的正整数. 每个子串长度至少为1,不超过10, n <= 50 如果不考虑方案输出,这题就变得相当简单了. dp[i][j]表示走到长度为 i 的时候 ,到AC自动机 j 这个节点所获得的最大权值和. 我一开始的做法…
测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i]=max(dp[i]+a[i],a[i]) 解释: 以a[i]结尾的最大值,要么是以a[i-1]为结尾的最大值+a[i],要么是a[i]自己本身,就是说,要么是连同之前的 构成一个多项的字串,要么自己单独作为一个字串,不会有其他的可能了. 状态规划的对状态的要求是:当前状态只与之前的状态有关,而且不影响下一…