06 2021 档案

摘要:Modulo Sum 思路 抽屉原理+01背包。 1.$n>m$时,n个前缀和中一定会出现两个前缀和相同(在模m的剩余系中),所以一定会有解。 2.$n<=m$时,由于$m\leq 1000$,可以暴力做01背包。 3.若$m$很大,可以用多重背包二进制优化+map来做。 ##Code: #incl 阅读全文
posted @ 2021-06-16 21:15 Qquun 阅读(113) 评论(0) 推荐(0)
摘要:LGP2634 [国家集训队]聪聪可可 思路 1.点分治,每次归并的时候,两点的距离和对$3$取余,用桶来记录出现$0、1、2$的次数,对于路径中一个点是重心一个点在子树中的路径以及两个点在同一颗子树中的路径,方案数为$mp[0]-(mp[1]mp[2]+(mp[0](mp[0]-1) )/2)\( 阅读全文
posted @ 2021-06-16 12:39 Qquun 阅读(52) 评论(0) 推荐(0)
摘要:点分治 PS:零基础可以学习模板题的第一篇题解,此随笔仅做总结 本质: 利用基础的分治思想,类似线段树或者归并,只不过是转换到树上。每次需要在当前子树中找到一个点,这个点可以是重心,或者是满足"每个子树大小的最大值$\leq tot/2$"的某个点),选取这个点递归这个点的子树,可以保证递归$log 阅读全文
posted @ 2021-06-15 21:21 Qquun 阅读(76) 评论(0) 推荐(0)
摘要:A Solution:小到大排序,一前一后作为一对取出来。 Code: #include<bits/stdc++.h> using namespace std; #define MAXN 2000005 typedef long long ll; typedef unsigned long long 阅读全文
posted @ 2021-06-03 10:12 Qquun 阅读(58) 评论(0) 推荐(0)