bzoj4008

好题,这题可以分开算每个技能的贡献

orz popoqqq http://blog.csdn.net/popoqqq/article/details/45365759

 1 var f,w:array[0..510,0..510] of double;
 2     p:array[0..510] of double;
 3     d:array[0..510] of longint;
 4     t,i,j,n,m:longint;
 5     ans:double;
 6
 7 begin
 8   readln(t);
 9   while t>0 do
10   begin
11     dec(t);
12     readln(n,m);
13     fillchar(f,sizeof(f),0);
14     for i:=1 to n do
15       readln(p[i],d[i]);
16     ans:=0;
17     for i:=1 to n do
18     begin
19       w[i,0]:=1;
20       for j:=1 to m do
21         w[i,j]:=w[i,j-1]*(1-p[i]);
22     end;
23     f[0,m]:=1;
24     for i:=0 to n-1 do
25       for j:=0 to m do
26       begin
27         f[i+1,j]:=f[i+1,j]+f[i,j]*w[i+1,j];
28         if j>0 then
29         begin
30           f[i+1,j-1]:=f[i+1,j-1]+f[i,j]*(1-w[i+1,j]);
31           ans:=ans+f[i,j]*(1-w[i+1,j])*d[i+1];
32         end;
33       end;
34     writeln(ans:0:10);
35   end;
36 end.

时间: 2024-10-04 23:55:44

bzoj4008的相关文章

【bzoj4008】 HNOI2015—亚瑟王

http://www.lydsy.com/JudgeOnline/problem.php?id=4008 (题目链接) 题意 给出n个技能,每个技能按顺序有p[i]的可能性释放,可以造成d[i]的伤害.每一轮游戏只能发动一个技能,问r轮游戏期望造成的伤害. Solution 刚了半个下午的dp,然而Wa了又调,调了又Wa,发现整个dp都是萎的,然后删了重写...无奈,看了题解. http://blog.csdn.net/vmurder/article/details/46461649 get了求

【BZOJ-4008】亚瑟王 概率与期望 + DP

4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 515[Submit][Status][Discuss] Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个看脸的游戏,技能的发动都是看概率的.作为一个

bzoj4008: [HNOI2015]亚瑟王

Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一个看脸的游戏,技能的发动都是看概率的.作为一个非 洲人,同时作为一个前 OIer,小 K 自然是希望最大化造成伤害的期望值.但他已 经多年没写过代码,连 Spaly都敲不对了,因此,希望你能帮帮小 K,让他感受一 下当欧洲人是怎样的体验. 本题中我们将考虑游戏的一个简化版模型. 玩家有一套卡牌,共

【BZOJ4008】【HNOI2015】亚瑟王 概率DP

链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/46461649"); } 题解: f(i,j) 表示分配给第 [i,n] 张牌 j 次机会的期望. 然后 f(i,j)=f(i?1,j)?(1?pi?1)j)+f(i?1,j+1)?(1?(1?pi?1)j+1) 总结

bzoj4008 亚瑟王 概率dp

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4008 重述题意:卡牌有发动概率和伤害,每张卡牌只发动一次,按顺序遍历,给出轮数,求伤害期望. 神思路啊--我的脑子基本想不出来-- 如果说正面刚,刚一天也刚不掉,我们换个思路,用f[i][j]表示第i张卡被遍历j次的概率. 这个概率可以分为两部分: 1.第i-1张卡被遍历j次且一直没发动.这一段公式为f[i-1][j]*(1-p[i-1])j.其中,p[i]表示第i张卡发动的概率. 2.第i

BZOJ4008. [HNOI2015]亚瑟王 期望概率dp

看到这道题想什么? 一个好转移的状态由于T最多444所以把每个点控制在O(400000)以内,所以对于n和r最多乘一次因此猜f[n][r],f[r][n],首先一轮一轮的搞不好转移,那么先想一想f[n][r],如果是从头开始,在转移到下一位的时候,前面的会对后面的有恶心的影响,那么倒着来f[i][j]=(1.0-p[i])j*f[i+1][j]+[1.0-(1.0-p[i])j*(f[i+1][j-1]+d[i]), #include<cstdio> #include<cstring&g

[转载]hzwer的bzoj题单

counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ1202 BZOJ1051 BZOJ1001 BZOJ1588 BZOJ1208 BZOJ1491 BZOJ1084 BZOJ1295 BZOJ3109 BZOJ1085 BZOJ1041 BZOJ1087 BZOJ3038 BZOJ1821 BZOJ1076 BZOJ2321 BZOJ1934 BZOJ