![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
概率期望
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
Hacked Exam 14pts 2021Google codejam round1A
https://codingcompetitions.withgoogle.com/codejam/round/000000000043585d/0000000000754750#analysis只会前2个set,也就是n<=2n=1时,比较一下s和q-s哪个大,如果q-s大就对答案全部取反期望得分就是q-s,否则就输出当前的答案,那么得分就是sn=2a时,设得分分别为as,bs,a[i]!=b[i]的位置一共cnt个,那么这cnt个一定是一边得分一边不得分,那么可以计算出q-cnt这些相原创 2021-04-12 17:28:21 · 155 阅读 · 0 评论 -
gym102994G. Blackjack Moscow Pre-Finals Workshop 2020 - Legilimens+Coffee Chicken Contest
https://codeforces.com/gym/102994/problem/G学习自https://blog.csdn.net/Irving0323/article/details/115291600赛中想的是前i张牌选的牌之和为j的dp,然后枚举下一张牌在哪个位置插入,然而怎么转移都发现会有重复的,或者其他问题。。。题解告诉我们设dp[i][j][k]为考虑前i张牌选了j张牌总和为k的概率,那么概率肯定就是 ( j! ) /(n*(n-1)*...(n-j+1)),也就是前j张牌是任.原创 2021-04-12 16:03:07 · 632 阅读 · 0 评论 -
AtCoder Beginner Contest 189 F - Sugoroku2
https://atcoder.jp/contests/abc189/tasks/abc189_f这题发现倒着推就是个解方程了设dp[i]表示从i位置到结束还要走i步可知dp[i]=(dp[i+1]+dp[i+2]...dp[i+m])/m+1,如果dp[i+k]是回到0的那么dp[i+k]=dp[0]所以我们记录一个关于dp[0]的参数k和一个常数b,dp[i]=k*dp[0]+b然后从后往前扫,维护一个滑动窗口的总参数和k和常数b那么dp[i]=(k*dp[0]+b)/m+1原创 2021-01-23 21:44:51 · 412 阅读 · 2 评论 -
AtCoder Grand Contest 006 C - Rabbit Exercise
https://atcoder.jp/contests/agc006/tasks/agc006_c明明在暑假已经见过了置换快速幂,明明已经领悟了期望的良好的性质,直接用期望算可以得到pi=p_i+1+p_i-1-p_i两件美好的事叠加在一起,do si de,还是不会做呢这题关键是想到令每个位置当前所在的坐标的期望为pi,然后依次交换以后pi=p_i+1+p_i-1-p_i,然而这个式子并不好办,还是跟顺序有关然后我们令bi=p_i-p_i-1,代入以后发现依次操作实际上是交换了b_i和b_原创 2020-11-27 20:00:54 · 131 阅读 · 0 评论 -
1001 Battle for Wosneth 2020 年百度之星·程序设计大赛 - 复赛
http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=892&pid=1001把p/100当做每次alice攻击b掉的血量,那么b会在m/(p/100)天死亡,由于是alice先手,那么b的攻击天数会是m/(p/100)-1,那么它能让alice掉的血就是(m/(p/100)-1)*q/100,然后把alice命中m次加的m血加上就是答案#include<bits/stdc++.h>#define p原创 2020-08-09 22:01:21 · 260 阅读 · 0 评论 -
bzoj4008亚瑟王
2天前写的,现在才写题解= =,这题主要是有个问题无法解决,之前发动过的卡牌这次会直接跳过。这样如果要把第几轮作为dp数组的一维的话,就需要用状态压缩存储之前的情况。所以需要另外一种状态设计方法。我们发现如果一轮要访问到第i张牌,那么1-i-1一定也访问过一遍,这就是这题最巧妙的地方。f[i][j]为第i张牌被访问j次的概率,j包括被触发和被跳过的次数。初始条件f[1][r]=1.0,因为...原创 2019-03-28 18:40:54 · 235 阅读 · 0 评论 -
2019 牛客多校第一场 F
题目传送门:https://ac.nowcoder.com/acm/contest/881#question考场上看到输出36E,且保证36E是整数,然后想起整点三角形,面积一定是x/2,那么可以猜出期望是三角形面积的x/18。理性分析,期望肯定大于1/2,不会超过2/3,或者超过一点,于是盲猜一发11/18过了。然后看到了正解,其实好像还挺好算了。。。。不过求图形期望这种没什么经验,...原创 2019-07-19 15:13:53 · 338 阅读 · 0 评论 -
hdu 6656 2019杭电多校第7场 期望题
设f[i]为从i升级到i+1期望需要的金钱,由于每级都是能倒退或者升级到i+1,所以询问从l,r的期望金钱可以直接前缀和,那么推导每一级升级需要的期望钱也可以用前缀和推导设sum[i]=f[1]+f[2]....f[i] ,那么从 l 升级到 r 就是sum[r-1]-sum[l-1]。对于f[i] ,有p的概率交钱直接变成i+1,有(1-p)的概率回到x级,那么回到x级后想要升级到i+1...原创 2019-08-12 19:32:11 · 282 阅读 · 0 评论 -
2019徐州网络赛 J Random Access Iterator
https://nanti.jisuanke.com/t/41392卧槽这题这么水竟然只过了200+,I题那么难,过了400+卧槽,想I去了,结果队友一直WA这题f[u]为以u为根节点的能输出最大值的概率,一次随机并dfs能得到最大值的概率为tmp= sum{f[v]} /sons[u],如果v无法找到最大值,f[v]=0,如果v就是最远点,那么f[v]=1。那么k次随机能找到的概...原创 2019-09-07 22:03:30 · 338 阅读 · 2 评论 -
BZOJ 3270 在各个房间相遇结束的概率
这题本来是上周五打cf前就想出来的。。。结果一直没写。。。终于做到一种到一定精度就停下来的题了然后不停得将概率推下去,直到概率小于某个精度就停下来,因为当t很大的时候,f[t][u][v]可能只有一点点了,不会对答案造成影响,结束就行。之前eps定的1e-7WA了。感谢评论区提醒,开成1e-10就过了。#include<bits/stdc++.h>#define m...原创 2019-03-12 21:23:54 · 143 阅读 · 0 评论 -
codeforces 453A 摇n次m面的色子,求最大值的期望
一开始纠结会爆double 的问题,怎么存m^n,不知道怎么办了。。。看了题解发现计算(i/m)^n,妙啊一个容斥的方法,(i^n-(i-1)^n)/m^n,就是最大值为i的概率,因为在1-i里选的所有方案数减去1-(i-1)中选数字的方案数,就是1-i里选而且必包含i的方案总数。#include<bits/stdc++.h>#define maxl 100010usin...原创 2019-03-04 15:18:20 · 2491 阅读 · 0 评论 -
bzoj1415 noi2005 聪聪和可可 期望
本来毫无思路,看到网上设了二维数组表示期望后,觉得很妙。设f[i][j]为聪聪在i,可可在j的聪聪吃到可可的时间期望。dis[i][j]==1 ||==2 时,f[i][j]=1 ,i==j 时,f[i][j]=0;由于聪聪能走2步,可可每次只能走一步,所以dis[i][j]一定是越来越小的。我们可以先处理出g[i][j]表示此时聪聪应该往哪走。最后就按照期望的定义求就行了。d...原创 2019-03-04 14:31:43 · 135 阅读 · 0 评论 -
LightOJ 1027 概率期望
设期望为t,那么根据期望的定义,(sigma(xi)(xi>0)+sigma(-xi+t)(xi<0))/n=t解一个方程,t=sum/(n-cnt)#include<bits/stdc++.h>#define maxl 110#define eps 1e-8using namespace std;int n,cas;int a[maxl];long...原创 2019-02-27 17:09:28 · 171 阅读 · 0 评论 -
bzoj 1076 奖励关
从数据范围和先决条件这两个东西可以看出要状压顺推发现那个当前要决定吃还是不吃,决定不出后以后都不能再吃完全不知道怎么处理。然后看了题解,有人说这种中间要抉择最优策略一般都是从后往前推f[i][s]表示从第i天到第k天,第i天已有宝物为s的时候,能增加的价值的期望假设当前新增宝物为j而且j是可吃的话 f[i][s]+=max(f[i+1][s],f[i+1][s|1<<(...原创 2019-03-02 14:20:07 · 99 阅读 · 0 评论 -
poj2096 期望
bug有两种分类方式,分为n种,又分为s种,每天找出一个bug,在每一种中的概率分别为1/n,1/s,问期望多少天能n种找全,s种也找全设f[i][j]为当前已经找到i种和j种bug后,还需要期望f[i][j]天找全。我们可以想到f[i][j]后一天找出一个bug,i*j/(n*s) 还是f[i][j], (n-i)*j/(n*s)得到f[i+1][j],i*(s-j)/(n*s)得f[i...原创 2019-03-02 15:46:06 · 167 阅读 · 0 评论 -
LightOJ 1038
lightOJ挂了好多天。。。搞得题解现在才写,不过那4道题一起过了还是挺开心的233.http://lightoj.com/volume_showproblem.php?problem=1030一个数字每次可以除以他的所有约数,问期望几次到1。看见有T=20000,n=1e5,那么肯定就是预处理出来离线了。f[i]表示到1的期望次数,那么f[i]就等于他的所有约数j的f[j]+1...原创 2019-03-05 20:30:50 · 191 阅读 · 0 评论 -
LightOJ 1079 Just another Robbery
http://lightoj.com/volume_showproblem.php?problem=1079这道题搞了挺久的。。。菜哭,本来想直接贪心用性价比最高的,结果过不了样例。。。重新看了下,发现mi<100,那么最大获得钱数就是1e4,好像可以用个背包,下标是钱数,f[i][j]表示前i个银行获得j个钱所能得到的最小被抓可能性,还要搞个bool数组表示这个钱数是否可获得。最后...原创 2019-03-05 20:43:24 · 169 阅读 · 0 评论 -
LightOJ 1104 Birthday Paradox
http://lightoj.com/volume_showproblem.php?problem=1104求一年为n天时,多少个人可以使得出现生日同一天的一对的概率>=0.5.看T这么大,感觉也要预处理,然而头发都快挠没了都想不出。结果题解告诉我由于题目告诉了我们人数很少,直接从2开始枚举即可。卧佛了。。#include<bits/stdc++.h>#d...原创 2019-03-05 20:46:21 · 138 阅读 · 0 评论 -
CodeForces 398B
http://acm.hdu.edu.cn/showproblem.php?pid=6415ZOJ 3822这3题的模型好像都一样,但做法都不一样。。。二维n*n,随机填格子,期望多少次每行每列都至少有一个格子被填。一开始有些格子已经被填又纠结了半天,最后尝试了期望DP万能方法倒着DP想了想终于做出来了。倒着dp又是解方程。。。设f[i][j]为占领i行j列,到占领n行n列...原创 2019-03-05 21:20:57 · 193 阅读 · 0 评论 -
CodeForces 498B 期望听出多少歌
是真的没想到f[i][j]为第i首歌在时刻j 恰好听出。这样就可以用一个前缀和维护转移了2500分,果然状态设计很神奇,这场div1 B比C过得还少。不过还是自己菜。。#include<bits/stdc++.h>#define maxl 5010using namespace std;int n,T;double ans=0;int t[maxl];dou...原创 2019-03-05 22:55:03 · 145 阅读 · 0 评论 -
2018牛客多校第5场 take
感觉我和队友都是轮流考场上写出来然后对拍拍不出错然后过不了题。。。我队都喜欢在代码下毒。。。而且牛客的评判很畸形,第1个点错就不判了,告诉你通过0%的case,然而我们实在是没想到会错在什么地方。我们考虑每一个点的贡献,那么就是他之前所有比他大的或者等于他的都不出现且比他小的要出现的概率乘以他出现的概率,概率再乘以交换的次数贡献也就是1.然后当前点被计算了以后,如果后面还要计算,计算比当前点小...原创 2018-08-03 11:20:50 · 267 阅读 · 0 评论