10 2017 档案
摘要:A. Base i−1 Notation 两个性质: 2=1100 122=0 利用这两条性质实现高精度加法即可。 时间复杂度O(n)。 B. Squaring a Bit 直接暴力枚举平方数即可通过,需要手写popcount。 C. Chickens 状压DP求方案数。 D.
阅读全文
摘要:A. Automatic Door 对于规律的点可以推公式计算,对于噪点则暴力计算,时间复杂度O(mlogm)。 B. Berland Army 首先若存在环则无解,否则通过DP可以求出每个数的最小值。 然后按照逆拓扑序,每次选择下界最小的点,填充最大的可以填充的值。 时间复杂度$O(m\l
阅读全文
摘要:A. Connectivity 设f[i][j]为第i张图中j点所在连通块的编号,加边时可以通过启发式合并在O(dnlogn)的时间内维护出来。 对于每个点,设h[i]为f[j][i]的hash值,若两个点hash值相等,则它们在d张图中均连通。 #include<c
阅读全文
摘要:A. A Place For My Head 留坑。 B. New Divide 从高位到低位贪心,当这一位是0时,要尽量取1,维护高维后缀最小值进行判断即可。 时间复杂度O((n+a)loga)。 C. Lying From You 留坑。 D. Don’t Stay 留坑。 E.
阅读全文
摘要:问题即:选择价值和最多的链,使得每个点最多被一条链覆盖。 那么考虑其对偶问题:选择最少的点(每个点可以重复选),使得每条链上选了至少wi个点。 那么将链按照LCA的深度从大到小排序,每次若发现点数不够,则在LCA处补充点,树链剖分+线段树维护。 时间复杂度O(mlog2n)。
阅读全文
摘要:A. Tree Orientation 树形DP,f[i][j][k]表示i的子树中有j个汇点,i往父亲的树边方向为k的方案数。 转移则需要另一个DP:g[i][j][k]表示考虑前i个儿子,子树中有j个汇点,i的出边个数是否是0的方案数。 时间复杂度$O(n
阅读全文
摘要:将01串按1分段,那么分析可得长度为a的段拼上长度为b的段的SG值为a−[a≤b]。 设f[i][j][k][l]表示从后往前用了i个1,j个0,当前段长度为k,后面部分SG值为l的概率。 同时预处理出g[i][j][k]表示i个1,j个0的串,S
阅读全文
摘要:A. Alice in the Wonderland 按题意模拟。 B. Batrachomyomachia 贪心,每次选承受能力最小的可行的。 C. Cherries 将所有数字排序,那么一定是选取连续B−A+1个数进行配对,枚举所有方案即可。 D. Divisibility Game 预处理
阅读全文
摘要:A. Arithmetic Derivative 形如pp(p是质数)的数的比值为1,用k个这种数相乘得到的数的比值为k,爆搜即可。 B. White Triangle 留坑。 C. New Street 用set维护相同连续段,每次新增贡献时利用多项式求幂,删除贡献则采用多项式求
阅读全文
摘要:首先可以将攻击位置整理成折线,答案不变。 对于一个长度为k的询问,若折线不超过两段,那么显然可以暴力贪心求解。 否则考虑折线中最短的一段x→y,若其长度≤k: 1.若x是第一个点,那么删除x后答案不变。 2.若y是最后一个点,那么删除$y
阅读全文
摘要:整体二分,按时间顺序依次考虑对于权值落在[l,r]内的所有操作。 对于每个修改操作,若权值范围完全包含了[l,r],那么在更深层的分治中它都完全包含它,对每个询问的贡献是定值,因此在当前层将贡献及时加给后面的每个询问即可。否则将该修改操作分裂成最多2个子操作,并往下递归分治。处理贡献均可
阅读全文