题目链接:点我啊点我啊
首先固定一号点标0,那么与一号点相邻的标 2 i 2^i 2i,对于一个标号 x x x,如果已经确定了 x − 2 a , x − 2 b x-2^a,x-2^b x−2a,x−2b,那么这个点可以被唯一确定。接下来就相当与这些位可以随便调换,每个位关于这 2 n 2^n 2n个数字是个 01 01 01序列,然后排个序即可。
黑科技wiki Montgomery modular multiplication/
现在在32位机上跑不过暴力,所以用long double试除就能过
状压dp+简单计算。注意有模仿怪所以不要无脑吃宝石即可。
对偶费用流,努力卡了很久之比LP快了一点点,只好卡内存了。
任意不满足的状态对答案的贡献为 1 1 1,所以只需要求出每个不够的状态的概率最后加上 1 1 1。我们认为我们总共需要 4 ∗ s u m 4*sum 4∗sum c c c件衣服,每次抽如果没到达 c c c,那么贡献为 4 4 4,否则贡献为 1 1 1。
d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k]表示前 i i i件衣服,抽了 j j j件,总贡献为 k k k的概率和。
m a x max max C ( n , a ) C(n,a) C(n,a) C ( m , b ) C(m,b) C(m,b) p a p^a pa ( 1 − p ) n − a (1-p)^{n-a} (1−p)n−a ( 2 p ) b (2p)^b (2p)b ( 1 − 2 p ) m − b (1-2p)^{m-b} (1−2p)m−b 取对数求导之后解个二次方程或者二分即可。
枚举哪一档,然后算一下钱够不够,不够接着氪钱
一个前缀/后缀代价为本身长度 − - − b o r d e r border border长度, h a s h + k m p hash+kmp hash+kmp即可
K M KM KM,然后求出每个点删掉之后的最大权匹配,这个只要把顶标和边权改成 0 0 0,然后跑一边 K M KM KM中的增光即可,然后类似一个半平面交的东西,由于范围很小可以枚举每个人跑不等式
模拟,用一个 m a p map map记录一下两两之间聊了几句和最近时间,用一个 s e se set当堆,然后每次修改的时候就 p p p_ o l d [ x ] old[x] old[x], x x x, p p p__ n e w [ x ] new[x] new[x]三个点的状态会变
c c c个人中,相对排名 k k k,这个人期望是 k ( n + 1 ) / ( c + 1 ) k(n+1)/(c+1) k(n+1)/(c+1)
倒着 d p dp dp,看选这个人的期望与选后面人的期望,需要一个树状数组统计排名
找规律发现一定是 1 , 2 , 3 , . . . , x , n / ( x − 1 ) , n / ( x − 2 ) , . . . n 1, 2, 3, ..., x, n/(x-1), n/(x-2), ...n 1,2,3,...,x,n/(x−1),n/(x−2),...n
x x x是 n \sqrt{n} n附近, 找到即可