上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 29 下一页
摘要: C Minimization 每次操作必然包含一个1 枚举第一次操作的位置计算两边即可 代码 D Snuke Numbers 我们对于N 只要能求出$f(N + 1)$($f(x)$表示大于等于$x$的数中$\frac{x}{S(x)}$最小的那个) 那么就能不断找到下一个数了 怎么求呢,我们可以认 阅读全文
posted @ 2018-10-20 13:12 sigongzi 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 题解 点了一个新技能叫杨表(事实上集训的时候听过,但是一直不会 这道题就是让我们找到k个不上升子序列,要求长度加和最大 我们用杨表去维护,但是由于杨表的行数可能是n的,复杂度会炸 我们只维护前$\sqrt{n}$行 有个结论是把杨表排序方式改过来那么我们会得到杨表的转置,我们发现我们只需要求一些列的 阅读全文
posted @ 2018-10-18 16:37 sigongzi 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 题解 根据一番认真严肃的猜结论和打表证明之后 我们可以得到 $f[i] = (\sum_{a[i] \& a[j] == a[j]} f[j]) + 1$ 统计所有的$f[i] 1$ 然后对于这道题,我们可以从值域上直接做 就是$g[a]$表示$a$作为结尾的数的序列有多少个 每次从$a$转移到$a 阅读全文
posted @ 2018-10-18 16:29 sigongzi 阅读(240) 评论(0) 推荐(0) 编辑
摘要: A Two Abbreviations 如果有最小答案的话这个答案一定是N和M的lcm 我们考虑一下什么情况下 $k \frac{L}{N} = h \frac{L}{M}$且$k,g$互质 显然是在$k = \frac{N}{gcd(N,M)},h = \frac{M}{gcd(N,M)}$的时候 阅读全文
posted @ 2018-10-17 17:36 sigongzi 阅读(423) 评论(0) 推荐(0) 编辑
摘要: C Linear Approximation 找出$A_i i$的中位数作为$b$即可 题解 cpp include include include include include // define ivorysi define fi first define se second define M 阅读全文
posted @ 2018-10-14 12:51 sigongzi 阅读(374) 评论(1) 推荐(0) 编辑
摘要: C Candles 题解 点燃的一定是连续的一段,枚举左端点即可 代码 D Median of Medians 二分一个值作为中位数的中位数,把大于这个数的设成1,小于等于这个数的设成0 然后我们就需要知道小于等于这个数做中位数的区间有多少个,用树状数组维护,和全部区间个数的一半比较一下即可 题解 阅读全文
posted @ 2018-10-12 22:14 sigongzi 阅读(340) 评论(0) 推荐(0) 编辑
摘要: A Colorful Slimes 2 找相同颜色的一段,然后答案加上段长除2下取整 代码 C String Coloring 题解 直接折半搜索即可 用哈希表维护前半部分拆分方式的两个字符串的哈希值 再枚举后一半的拆分方式查哈希表即可 代码 D Histogram Coloring 题解 我们考虑 阅读全文
posted @ 2018-10-11 21:51 sigongzi 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题解 分数题可以想到分数规划,我们预处理出从i到j卖什么货物赚的最多,然后把每条边的边权改成“利润 效率 × 时间” 用spfa找正环即可 代码 阅读全文
posted @ 2018-10-10 14:25 sigongzi 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 题解 在我写过分治NTT,多项式求逆之后 我又一次写了多项式求ln 我们定义一个数列的指数型生成函数为 $\sum_{i = 0}^{n} \frac{A_{i}}{i!} x^{i}$ 然后这个有个很好的性质,是什么呢,就是我们考虑两个排列$A$和$B$,不改变原来的顺序,把它们合并成一个排列,方 阅读全文
posted @ 2018-10-09 15:20 sigongzi 阅读(547) 评论(0) 推荐(0) 编辑
摘要: C /\/\/\/ 为了防止一些多余的判断,我选择直接记录每个数的个数,然后枚举第一个数,找第一个数之外第二个数改变最少的情况下应该选什么 代码 cpp include define fi first define se second define pii pair define mp make_p 阅读全文
posted @ 2018-10-07 21:27 sigongzi 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题解 显然要记录每个点来的状态,这样会扩充出点度的平方条边,就gg了 删掉所有的点,把每个边拆成两个点,连一条边权为c 这个时候我们考虑对于原先的每个点,将所有与其相连边所需要的节点(不管是进入还是出去)建一棵虚树,然后用线段树优化建图,优化方法是枚举每个lca,然后将lca的每个子树和其他子树连一 阅读全文
posted @ 2018-10-03 19:51 sigongzi 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 题解 把所有的数组一开始就FWT好然后再IFWT回去可以减小常数 从13s跑到0.7s…… 可以参照immortalCO的论文,感受一下毒瘤的动态动态DP 就是用数据结构维护线性递推的矩阵的乘积 由于所有轻儿子$F(z) + z^{0}$的乘积做除法太麻烦,我们用一个线段树维护每个点所有的轻儿子即可 阅读全文
posted @ 2018-10-03 13:19 sigongzi 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 题解 显然权值都是正的,我们最深的那个点一定延伸到了某个叶子 我们抛去这条链之外再选K个点即可 如果直接对一棵树选K个点,满足这样的依赖关系,可以通过一个后序遍历的顺序做出来 转移方法是 $dp[i][j] = dp[i 1][k] + (j k) v$ 或者 $dp[i][j] = dp[i si 阅读全文
posted @ 2018-10-02 16:26 sigongzi 阅读(298) 评论(0) 推荐(0) 编辑
摘要: C Triangular Relationship 题解 枚举一个数%K的值然后统计另两个 代码 F Revenge of BBuBBBlesort! 题解 我们按照逆操作考虑,容易发现是1 N顺序排列 每次交换$a_{i 1} include include include define ente 阅读全文
posted @ 2018-09-24 20:31 sigongzi 阅读(494) 评论(0) 推荐(0) 编辑
摘要: A Candy Distribution Again 大意:有x个糖给n个小朋友,必须分完,小朋友得到糖数为一个确切值的时候小朋友会开心,求最多的开心数 题解 直接排序然后贪心分,如果分到最后一个有剩余那么开心数 1即可 代码 B Garbage Collector 大意:有一个机器人从0点出发,有 阅读全文
posted @ 2018-09-24 19:10 sigongzi 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 题解 遇见平方和就转有序对呗 dp类似从很多点出发每次走一步的转移方式 然后我too naive的,枚举路径长度来决定更新次数,愉快TLE 改成记搜就过了 代码 cpp include define fi first define se second define pii pair define m 阅读全文
posted @ 2018-09-19 15:18 sigongzi 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题解 题中给的函数可以用矩阵快速幂递推 我们记一个数组dp[i](这个数组每个元素是一个矩阵)表示从1到i所有的数字经过拆分矩阵递推的加和 转移方法是 $dp[i] = \sum_{j = 0}^{i 1} dp[j] tr[j + 1][i]$ $tr[j][i]$表示矩阵的$[j,i]$组成的数 阅读全文
posted @ 2018-09-19 15:15 sigongzi 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 题解 简单分析一下就知道$\lfloor \frac{N}{i} \rfloor$相同的$i$的$sg$函数相同 所以我们只要算$\sqrt{n}$个$sg$函数就好 算每一个$sg(m)$的时候我们可以通过把这个数再拆成$\sqrt{m}$段来计算$sg$值 复杂度用积分分析是$n^{frac{3 阅读全文
posted @ 2018-09-17 18:02 sigongzi 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 题解 又是一道取模不给质数的毒瘤矩阵树题 不会写分数类……然后发现了网上过于神仙的题解类似与辗转相除的这样把某一个位置消成0 orz 代码 cpp include define fi first define se second define pii pair define mp make_pair 阅读全文
posted @ 2018-09-14 16:40 sigongzi 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题解 一道我觉得和二叉树没有关系的题…… 因为直接上点分就过了,虽然很慢,而且代码很长 你需要记录一个点分树,对于每个点分树的重心,记录一下上一次进行分割时树的重心以及这个重心和上一次重心所连接的点以及连接的边的距离 然后计算这个重心和所在的树到上一个重心节点路径和的前缀和,还有节点个数和 处理每棵 阅读全文
posted @ 2018-09-13 19:48 sigongzi 阅读(110) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 29 下一页