CF708E Student's Camp】的更多相关文章

麻麻我会做*3100的计数了,我出息了 考虑朴素DP我们怎么做呢. 设\(f_{i,l,r}\)为第\(i\)层选择\(l,r\)的依旧不倒的概率. \(q(l,r)\)表示经历了\(k\)天后,存活下来的区间为\([l,r]\)的概率. 发现其可以转为前缀后缀形式. 即前缀删掉了\(l - 1\)个,后缀删了\(m - r\)个. 而删掉的过程是独立的. 那么删掉\(i\)个的概率为\(d(i)\) 显然有\(d(i) = \binom{i}{k}p^{i} \times ({1 - p})^…
[CF708E]Student's Camp 题意:有一个n*m的网格,每一秒钟,所有左面没有格子的格子会有p的概率消失,右面没有格子的格子也会有p的概率消失,问你t秒钟后,整个网格的上边界和下边界仍然连通的概率是多少. $n,m\le 1500,t\le 10^6$. 题解:首先我们可以预处理出c数组,c[i]表示t秒钟后左边恰有i个格子消失的概率,这个用组合数算一算即可.又因为每一行的本质是相同的,所以令某一行最终剩下的格子是[l,r]的概率就是c[l-1]*c[m-r]. 然后考虑一个na…
Problem 一个n*m块砖的建筑,一共k天,每天风从两边吹,吹掉砖的概率为p,反之为1-p,求最终建筑没有倒塌的可能性(上层与下层有交集且每一层都有砖) Solution 首先,我们可以预处理出pl[]和pr[]数组,表示k天后左右两边风吹到的位置的可能性 然后我们可以枚举层数,当前这一层的左右端点和上一层的左右端点,如果有公共部分则转移 这样的时间复杂度是O(n^5),显然我们可以用前缀和来优化: 引入f[i][r]+=dp[i][l][r](l <= r),再用一个sumr数组维护f数组…
题目大意: 一个n*m的墙,被吹k天风,每块靠边的砖都有p的概率被吹掉. 如果上下两行没有直接相连的地方,我们则认为这一堵墙已经倒塌. 问最后墙不倒塌的概率(模意义). 思路: 动态规划. 用f[i][j][k]表示到了第i层,只剩下j~k的砖头并且不倒塌的概率. 则f[i][j][k]=sum{f[i-1][l][r]|[l,r]与[j,k]有交集}*这一层只剩[l,r]的概率. 概率可以O(n)预处理,接下来要枚举i,j,k,l,r,所以是O(m^4n)的. 接下来考虑预处理sum{f[i-…
大意: $n$行$m$列砖, 白天左侧边界每块砖有$p$概率被摧毁, 晚上右侧边界有$p$概率被摧毁, 求最后上下边界连通的概率. 记${dp}_{i,l,r}$为遍历到第$t$行时, 第$t$行砖块范围$[l,r]$的概率. 有${dp}_{i,l,r}=p_{l,r}\sum {dp}_{i-1,l',r'}$ (要满足$[l',r']$与$[l,r]$相交) $p_{l,r}$表示$k$天后剩余砖是$[l,r]$的概率. 考虑二维前缀优化, 记$f_{i,l,r}=\sum\limits_…
Codeforces 题目传送门 & 洛谷题目传送门 神仙 *3100,%%% 首先容易注意到 \(\forall i\in[1,m]\),第 \(i\) 行剩余的砖块一定构成一个区间,设其为 \([l_i,r_i]\). 其次,由于第 \(0\) 行和第 \(m+1\) 行的砖块不可能被风吹走,因此该建筑物只可能被上下劈开,i.e.,该建筑物被劈开当且仅当 \(\exist i\in[1,m),[l_i,r_i]\cap[l_{i+1},r_{i+1}]=\varnothing\). 这时候就…
链接: https://codeforces.com/contest/1230/problem/D 题意: Marcin is a coach in his university. There are n students who want to attend a training camp. Marcin is a smart coach, so he wants to send only the students that can work calmly with each other. L…
java.io.NotSerializableException: test.io.file.Student    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)    at test.io.file.Demo4.test2(Demo4.java:36)…
定义Student类 package org; public class Student { private String _name = null; ; ; public Student() { } public Student(String name, int age, int score) { _name = name; _age = age; _score = score; } public void setName(String name) { _name = name; } publ…
微软MVP Openday 1月30日在北京召开,到时全国上百位 MVP 专家将齐聚北京.当然还有亚太的其他国家地区的MVP 也会来北京,1月31日微软 MVP 项目组主办的年度微软技术社区分享大会--2015 微软社区大课堂 Community Camp !. 超过 30 位微软最有价值专家 MVP 将为您呈现超过 20 场微软技术课程,一天的时间,不同技术主题,同一时段不同的内容同时进行,选你所爱的课程学习! 好久没有到首都去了,借这次机会去参加MVP OpenDay 和2015 MVP C…