摘要: 题面 // 首先看范围不太可直接暴力解 // 考虑 f[i] 为经过第 i 个黑点的方案数, // 直接计算比较难算,可以从总方案减去不合法方案。 // f[i] = C(xi-1, xi+yi-2) - sum(f[j] * C(xi-xj, xi+yi-xj+yj)); # include <i 阅读全文
posted @ 2020-09-05 20:21 ChPu437 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题面 和通常套路不太一样,这题 \(N \le 262144\),不可以通过枚举区间的方程转移出来。 实际上,我们通过合并最大可以得出 $58$,这个 $58$ 实际就是 $18 + 40$,$40$ 是显然的,但是 $18$ 呢? 我们考虑合并的过程,实际与倍增过程类似,最多我们会合并 \(\lo 阅读全文
posted @ 2020-08-30 09:11 ChPu437 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题面 一道比较巧妙的树上贪心题,做法同Luogu P3942 将军令 [HNOI2003]消防局的设立类似。 首先分析题面不难想到二分答案,然后我们维护两个量: 1. 当前子树下最远的需要覆盖(有炸弹)的点,记作 \(disCo_x\) 2. 当前子树外最近的被选择引燃的点,记作 \(disSel_ 阅读全文
posted @ 2020-08-24 21:13 ChPu437 阅读(127) 评论(1) 推荐(0) 编辑
摘要: 题面 这道题可以打树上 \(DP\),但显然贪心方便 我们贪心地考虑这个问题,一个叶子结点的消防站必然是建在它的爷爷上,才能尽可能多的增加覆盖的点,所以先跑一遍 \(DFS\) 处理深度,再按深度降序扫描节点即可。 时间复杂度:\(O(n^2)\),可以通过本题。 代码: // no greater 阅读全文
posted @ 2020-08-24 19:26 ChPu437 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题面 // 二分一个路径长,并要求所有长度大于该 // 长度的路径经过同一条边,且该边的长度 // 比每条路径的长度与二分路径长度差值大, // 即为所求答案。 // 差分数组用于确定是否每条路径都经过该边 # include <iostream> # include <cstdio> # incl 阅读全文
posted @ 2020-08-19 19:29 ChPu437 阅读(87) 评论(1) 推荐(0) 编辑
摘要: 题目链接 考虑每个节点建一个以骑士攻击力为关键字的小根堆,从叶子节点向上扫描,每次弹堆至堆顶骑士攻击力大于当前城池防御力,可以采用左偏树维护, 对于城池的攻击力改变值,可以借用线段树区间修改的懒标记思想,打上乘法及加法标记,每次涉及到改变堆结构的操作前下放标记即可。 稍微卡常之后可过 代码 # in 阅读全文
posted @ 2020-08-09 19:23 ChPu437 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 差分约束系统 定义 来自某度百科 如果一个系统由 \(n\) 个变量和 \(m\) 个约束条件组成,形成 \(m\) 个形如 \(a_i-a_j≤k\) 的不等式 (\(i,j\in[1,n]\), $k$为常数),则称其为差分约束系统(system of difference constraint 阅读全文
posted @ 2020-07-30 16:12 ChPu437 阅读(80) 评论(3) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-07-30 11:48 ChPu437 阅读(4) 评论(1) 推荐(0) 编辑
摘要: 填个远古的巨坑。。。。 主要是这题和当年考的题题面有点出入不然早改好直接交了 码风比较远古 /* 并查集维护连通块 跑一遍图 记录每个点度数需 要加的边数为 (偶数度数连通块数) + (奇数度数点数) / 2 -> 多个连通块时 或 (奇数点数个数) / 2 -> 单个连通块时 注意可能有重边和自环 阅读全文
posted @ 2020-07-27 22:00 ChPu437 阅读(201) 评论(4) 推荐(0) 编辑
摘要: https://oi-wiki.org/string/hash/ https://www.luogu.com.cn/problem/P3370 unsigned long long a[MAXN]; // a 数组记录哈希值 const int prime = 233317; const unsig 阅读全文
posted @ 2020-07-27 21:02 ChPu437 阅读(121) 评论(1) 推荐(0) 编辑