上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 66 下一页
摘要: 传送门 解题思路 刚开始是找的桥,后来发现这样不对,因为一条链就可以被卡。后来想到应该缩点后找到度数为1 的点然后两两配对。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<set> u 阅读全文
posted @ 2018-10-12 08:55 Monster_Qi 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 让所有夫妇之间连男到女的边,所有情人之间连女到男的边,然后用$tarjan$,如果对于一对夫妻在强连通分量里,那么就是不稳定的,因为他们可以绕一圈。 #include<iostream> #include<cstdio> #include<cstring> #include<str 阅读全文
posted @ 2018-10-11 17:21 Monster_Qi 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 因为要求最小值,并且满足单调性,那么可以想到二分答案。刚开始逗比了,二分答案里又套了个二分,调到死也没调出来。其实只要维护一个前缀和就行了。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> 阅读全文
posted @ 2018-10-11 15:32 Monster_Qi 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 首先考虑对于一个点来说,如果这个点是1的话,那么对于答案来说 $(ans+1)^3=ans^3+3*ans^2+3*ans+1$,这对于上一个答案来说其实贡献了 $3*ans^2+3*ans+1$,那么只需要维护一个 $ans^2$与 $ans$的期望,然后转移到$ans$就行了。 阅读全文
posted @ 2018-10-11 11:39 Monster_Qi 阅读(119) 评论(1) 推荐(0) 编辑
摘要: 传送门 解题思路 第一问比较简单,设$f[i]​$表示扔了$i​$次正面向上的硬币的期望,那么有转移方程 : $f[i]=f[i]*(1-p)+f[i-1]*p+1​$,意思就是$i​$次正面向上可以由$i-1​$次扔一个正面或者$i​$次扔一个背面得到,化简后可得 : $f[i]=f[i-1]+1 阅读全文
posted @ 2018-10-11 10:36 Monster_Qi 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 传送门 # 解题思路​ ~~这怕是本蒟蒻第一个独立做出来的期望$dp$的题,发篇题解庆祝一下~~。首先,应该是能比较自然的想出状态设计$f[i][j][0/1]$ 表示当前还剩 $i$个白老鼠,$j$个黑老鼠,当前是$A/B$抓的概率。有个问题似乎因为当其中一个人抓到白老鼠时游戏就结束了,而在转移过 阅读全文
posted @ 2018-10-11 09:05 Monster_Qi 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 拉了很长的战线,换了好几种写法终于过了。。首先每个蓄水场一定是对沙漠造成连续一段的贡献,所以可以$bfs$出每种状态,然后做一次最小区间覆盖,但这样的复杂度有点高。就每次只搜那些比左右高的点。 #include<iostream> #include<cstdio> #include 阅读全文
posted @ 2018-10-10 21:09 Monster_Qi 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 可以通过手玩或打表发现,其实要选的点一定是他们三个两两配对后其中一对的$lca$上,那么就直接算出来所有的$lca$,比较大小就行了。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> # 阅读全文
posted @ 2018-10-10 18:29 Monster_Qi 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 解题思路 比较简单的题,用二项式定理即可。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; const int MAXN = 10 阅读全文
posted @ 2018-10-09 21:54 Monster_Qi 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 解题思路 明明一道比较简单的贪心结果挂了好几次23333,就是按照时间排序,然后拿一个小根堆维护放进去的,如果时间允许就入队并且记录答案。如果不允许就从堆里拿一个最小的比较。 #include<bits/stdc++.h> using namespace std; const int MAXN = 阅读全文
posted @ 2018-10-09 19:47 Monster_Qi 阅读(126) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 66 下一页