上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页
摘要: 题面 两道题比较像,放在一起写了,后者可以看成前者的加强版 (sto ztb orz) 先看AT那道题 考虑计算每个点的贡献,用容斥计算:每个点没有贡献当且仅当选的所有点都在以他为根时的一个子节点的子树里。所以对于每个点i,其贡献为$C_n^k-\sum_{v∈son_i}C_{size[v]}^k 阅读全文
posted @ 2019-02-25 21:59 Speranza_Leaf 阅读(216) 评论(0) 推荐(0)
摘要: 题面 这种换来换去的东西很容易想到置换群那一套,然后题目甚至还暗示了二进制=。= 直接换的话显然是$2^{a+b}$次,但是一个循环节里可以少换一次,然后问题就变成了数循环节 在一个循环节里的位置有什么特征?用二进制表示位置,那么他们的位置可以通过循环左移a位/循环右移b位互相表示,然后问题就变成了 阅读全文
posted @ 2019-02-25 21:28 Speranza_Leaf 阅读(288) 评论(0) 推荐(0)
摘要: 题面 板板的生成函数做法太神仙了,我跑了 朴素的做法是建立AC自动机变成图上的随机游走问题 来仔细考虑一下转移,把状态分成非结尾状态和结尾状态。在一个非结尾状态后补一个串是一定能到达目标串的,但是如果中间出现了前缀等于后缀的情况也可能直接转移到另一个结尾状态。那么我们就用KMP把串之间两两的前缀=后 阅读全文
posted @ 2019-02-25 20:33 Speranza_Leaf 阅读(202) 评论(0) 推荐(0)
摘要: 题面 概率生成函数 对于菜鸡博主来说好难啊 其一般形式为$F(x)=\sum\limits_{i=0}^∞[x==i]x_i$,第i项的系数表示离散变量x取值为i的概率 一般的两个性质:$F(1)=1,E(x)=F'(1)$ 这里用$F(x)$表示结束时的串长的概率生成函数,$G(x)$表示到长度到 阅读全文
posted @ 2019-02-25 19:51 Speranza_Leaf 阅读(311) 评论(0) 推荐(0)
摘要: 题面 用来学习二项式反演的题目 大于等于/小于等于 反演出 恰好等于 设前者为f(n),后者为g(n),则有$f(n)=\sum\limits_{i=0}^nC_n^ig(n)<->g(n)=\sum\limits_{i=0}^n(-1)^iC_n^if(i)$ 这里我们$n^2$地dp求出$f(i 阅读全文
posted @ 2019-02-25 18:42 Speranza_Leaf 阅读(119) 评论(0) 推荐(0)
摘要: 题面 为什么NOI2014有模拟题=。=??? 按题意把序列生成出来之后,对每一行维护一个能取到的最左侧和能取到的最右侧。从小到大$O(n^2)$枚举数字看看能否填入,能填入则暴力$O(n)$更新信息,因为能填入的总共只有$n+m$级别个数的数,所以复杂度没问题 1 #include<cstdio> 阅读全文
posted @ 2019-02-25 17:29 Speranza_Leaf 阅读(158) 评论(0) 推荐(0)
摘要: 题面 好题不问Div(这是Div3最后一题,不得不说Mike真是强=。=) 首先同一个颜色的点的LCA要和它们在一个划分出的块里,那么我们先按颜色把所有点到它们的LCA的路径涂色,如果这个过程中出现了重合的颜色则说明无解。 之后问题转化为一个树形DP问题,设$dp[i][0/1]$表示以$i$为根的 阅读全文
posted @ 2019-02-25 11:51 Speranza_Leaf 阅读(321) 评论(0) 推荐(0)
摘要: 题面 巧妙构造题 这种题一定要限制一个条件,使得在这个条件下能推出要叉的代码的式子 令序列$a$的第一个元素为负,其余元素为正,且保证序列中至少有两个元素,那么Alice的代码将会从第二个元素开始计算,得到$(n-1)*(sum-a[1])$的答案。而这里答案实际可能有两种,Alice那样的$(n- 阅读全文
posted @ 2019-02-25 10:52 Speranza_Leaf 阅读(154) 评论(0) 推荐(0)
摘要: 因为这次难得不在十点半(或是更晚),大家都在打,然后我又双叒叕垫底了=。= 多打CF A.Sea Battle 讨论.jpg 也有式子的解法,我没想 B.Draw 讨论失败.jpg (写题顺序:ADFC,没有B) 讨论个**,转化成线段求交,答案就是$\sum max(0,min(x,y)-max( 阅读全文
posted @ 2019-02-25 09:24 Speranza_Leaf 阅读(117) 评论(0) 推荐(0)
摘要: 题面 WC时候写的题,补一下 做法比较巧妙:记录每个位置和它当前对应区间的左右端点,做前缀和之后重载一下小于号,用优先队列+ST表维护当前最大值。这样贡献就是区间最大值和端点左边差分一下,可以O(1)得到。每次从最大值所在位置分裂成两个小的对应区间扔回优先队列里即可。 1 // luogu-judg 阅读全文
posted @ 2019-02-21 20:06 Speranza_Leaf 阅读(101) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页