Loading...
Luogu 分析 将方程左边通分 代码 #include <bits/stdc++.h> #define re register typedef int mainint; #define int long long using namespace std; const int MOD=1e9+7; inline int read() { int X=0,w=1; c...
Luogu 分析 设 $f_{i, j}$ 表示还剩 $i$ 个人时第 $j$ 个人的获胜概率。 考虑转移。首先枚举庄家抽到的卡牌 $k$,从而得到这一轮被淘汰的人的位置 $c$。 如果 $c \neq j$,则无法转移。否则第 $c$ 个人被淘汰之后,剩下的 $i-1$ 个人要组成一个新的环,庄家为第 $c$ 个人的下一个。容易算出,当 $c > j$ 时,第 $j$ 个人是新的环里...
Luogu 分析 首先我们是没有必要每次给所有蚯蚓加 $q$ 的,只需要维护一个变量 add 表示所有蚯蚓长了多少即可。 那么一个显然的想法是用一个大根堆维护所有蚯蚓,然后直接模拟一下就好了。这样子就有 $85$ 分了。 注意到每次分出去的蚯蚓一定会成为最短的两条蚯蚓(想一想,为什么?),那么只需要开三个队列维护就好了。 注意一下输入进来的长度没有排好序,自己要排一下。 代码 #inclu...