随笔分类 - 动态规划—期望
摘要:首先看这样做的特点,就是分到最后小块里的点合并上去的时候相对顺序不变,所以先加上块内逆序对的期望 合并的时候一定是一边卡住一个大值,另一边跳指针,所以把一个值向右直到有大于它的值位置的一段区间看作一段 当前合并两块合并到第i个和第j个,如果i和j都是块的开头就一定不会构成逆序对,因为双指针的时候会直
阅读全文
摘要:区间不交叉,可以看出区间构成了树形结构,建出树之后,设f[u][i]为u这个区间最大值最多加i的概率,转移是\\( f[u][i]=p[u]\ \prod f[v][mxu mxv 1]+(1 p[u])\ \prod f[v][mxu mxv] \\) 注意要理性选择建树方式,扫描就行了,不要瞎二
阅读全文
摘要:首先恋人操作过一轮之后逆序对不会变多,所以设f[i]为把i个逆序对消掉的期望次数,f[i]=0.5f[i 2]+0.5f[i]+2,化简然后递推即可 cpp include include using namespace std; const int N=3005; int n,m,a[N]; do
阅读全文
摘要:这个输出可是有点恶心啊……WA\ inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5的概率贡献1 include include using namespace std; const
阅读全文
摘要:宋营离此路途远 快马加鞭一夜还
阅读全文
摘要:因为边权为1所以a直接bfs瞎搞就行……我一开始竟然写了个spfa cpp include include include include using namespace std; const int N=1005,inf=1e9; int n,m,st,ed,h[N],cnt,a[N][N],b[
阅读全文
摘要:dfs会T,只好正反两遍拓扑了…… cpp include include include include using namespace std; const int N=100005; int n,m,h[N],cnt,d1[N],d2[N]; double f[N],p[N],s[N],ans
阅读全文
摘要:来自lyd课件 发现s和last(s),next(s)成树结构,然后把式子化简成kx+b的形式,做树形dp即可 cpp include include include using namespace std; int n,t,a[105]; double p,q; struct qwe { doub
阅读全文
摘要:设g[u]为这个点被儿子和自己充上电的概率,f[u]为被儿子、父亲和自己充上电的概率 然后根据贝叶斯公式(好像是叫这个),1.P(A+B)=P(A)+P(B) P(A)\ P(B),2.P(A)=(P(A+B) P(B))/(1 P(B)) g的转移很好想,根据上面的1公式,g[u]=g[u]+g[
阅读全文
摘要:思路有点眼熟啊,就是设l1记录长为x的极长全1串贡献x的答案,l2记录长为x的极长全1串贡献x^2的答案,f记录真正的答案 转移的话根据n (n 1)=1,n^2 (n 1)^2=2n 1,n^3 (n 1)^3=3n^2 3n+1直接转移即可 cpp include include using n
阅读全文
摘要:以后写dp还是向后转移吧……写的把前面加起来的版本怎么也调不过去 首先注意,因为地图碎片只占1体积,所以 n, include using namespace std; const int N=405; int n,l,m,a[N]; double p[N],f[2][N][N],ans; int
阅读全文
摘要:状压dp,设f[i][j][0/1]为前i个时间段换了j间教室的期望体力消耗,转移很好想(但是写起来好长= =) cpp include include using namespace std; const int N=2005; int n,m,v,e,c[N],d[N]; double k[N]
阅读全文
摘要:我太菜了,看的hzwer的blog才懂 大概是设f[i]表示已经拥有了i张邮票后期望还要买的邮票数,这个转移比较简单是f[i]=f[i]\ (i/n)+f[i+1] ((n i)/n)+1 然后设g[i]为还需要的钱,可以把转移看做每张票都比前面的贵1元,就是g[i]=((n i)/n)\ (g[i
阅读全文
摘要:参考:https://blog.csdn.net/shiyukun1998/article/details/44684947 先看对于树的情况 设d[u]为点u向儿子走的期望长度和,du[u]为u点的度数,f[u]为u向儿子走的期望长度,只需要dfs两遍,一次求向儿子的d[u]+=f[e[i].to
阅读全文

浙公网安备 33010602011771号