摘要: P1084 NOIP2012提高组 疫情控制 先二分 将所有军队尽量往上跳 如果能跳到根节点的子节点且能够越过根节点,存入pair(到根节点后的剩余时间,节点编号)(使用倍增优化) ; 否则:驻扎此节点 将pair的点按第一个排序 用第一个最小覆盖第一个没有被覆盖的根节点的子节点(贪心) 剩下的节点 阅读全文
posted @ 2022-09-29 13:49 azzc 阅读(23) 评论(0) 推荐(0) 编辑
摘要: CF451E Devu and Flowers 若没有个数限制, 则可以用插板法解决 有个数限制: 设第 i 个箱子里选了 x_i 朵花 设集合 S_{s} 表示集合 s 中的花的数量 > a_i 的集合 则 |S_{s}|=C_{m+n-1-∑{(a_j+1),j∈s}}^{n-1} 组合数用定义 阅读全文
posted @ 2022-09-29 09:50 azzc 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ####UVA11762 Race to 1 f[x] 表示将 x 变为 1 的期望步数, p[x] 表示 <=x 的质数的个数, g[x] 表示 x 的质因数的个数 点击查看代码 #include <stdio.h> typedef long long LL; const int N = 1e6 阅读全文
posted @ 2022-09-28 15:46 azzc 阅读(48) 评论(0) 推荐(0) 编辑
摘要: P7077 [CSP-S2020] 函数调用 调用是一个拓扑图 乘法: 每个数贡献这个倍数次 通过拓扑图的DP求出每个函数被调用后对a的影响(先乘后加,乘法要更新加的个数) 注意调用顺序; 建立一个虚拟原点0号连接所有调用的点 点击查看代码 #include <vector> #include <s 阅读全文
posted @ 2022-09-28 15:44 azzc 阅读(47) 评论(0) 推荐(0) 编辑
摘要: Q4.4.6.1. 区间最长不上升子串 BZOJ4491. 我也不知道题目名字是什么 差分, 转化为连续区间上最长 >=0 或 <=0 的区间 每个节点维护区间 前缀最大值, 后缀最大值, 区间答案, 区间长度 类似“小白逛公园” 点击查看代码 #include <iostream> #includ 阅读全文
posted @ 2022-09-28 15:26 azzc 阅读(25) 评论(0) 推荐(0) 编辑
摘要: BZOJ2219. 数论之神 Q4.1.4.5. 开k次根号 先将模数 mod 分解为若干个 p^k 由题, p为奇质数 只需求 x^A=B(modp^k)的个数 设 p^k 的原根为 g, 由原根的性质, g 是 p 的原根 B==0(modp^k) ,此时只需 x^A 中的 p 的个数 >= k 阅读全文
posted @ 2022-09-28 15:17 azzc 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Q4.1.2.6. 跳棋 每一个状态(x,y,z)有转移方式: 将中间的棋子向两边移动, 将两边的棋子向中间移动 这两类操作互逆, 如果只考虑第二类操作, 令每次操作得到的状态为父节点, 则变成一棵二叉树 (第二类操作只有至多一个可行) 每次操作就是在二叉树上移动 初始条件和终止条件在二叉树上对应一 阅读全文
posted @ 2022-09-28 14:52 azzc 阅读(21) 评论(0) 推荐(0) 编辑
摘要: BZOJ1097. [POI2007]旅游景点atr Q3.5.2.1. 旅游景点 设 dis[i][j] 表示 i 到 j 的最短路(需要用 k 次 Dijkstra, 因为 i 到 j 可能经过其他点) 设 f[i][s] 表示现在在 i 节点, 已经走过 s 这些节点(s是{2,3,...,k 阅读全文
posted @ 2022-09-28 14:42 azzc 阅读(16) 评论(0) 推荐(0) 编辑
摘要: P2254 [NOI2005] 瑰丽华尔兹 设f[i][x][y]表示在第i个时段,钢琴在这个时段停止在(x,y)时的最大滑动激励 转移: dir=1时 f[i][x][y]=max{f[i-1][x+k][y]+k 其中0<=k<=ed-st+1} dir=2时 f[i][x][y]=max{f[ 阅读全文
posted @ 2022-09-28 14:39 azzc 阅读(26) 评论(0) 推荐(0) 编辑
摘要: P3290 SCOI2016围棋 轮廓线DP + KMP 用轮廓线 DP 算出无法匹配的个数, 用 3**(n*m) 减去即可 ..#### f[x][y][s][i][j] 表示 s 为轮廓线, 模板第一行匹配到 i, 模板第二行匹配到 j ##?.?. s 第某位为 0/1 表示模板第一行是否能 阅读全文
posted @ 2022-09-28 14:31 azzc 阅读(28) 评论(0) 推荐(0) 编辑
摘要: ####BZOJ4491 区间最长不上升子串 点击查看代码 // BZOJ 4491 // 差分, 转化为连续区间上最长 >=0 或 <=0 的区间 // 每个节点维护区间 前缀最大值, 后缀最大值, 区间答案, 区间长度 // 类似“小白逛公园” #include <iostream> #incl 阅读全文
posted @ 2022-09-28 14:21 azzc 阅读(55) 评论(0) 推荐(0) 编辑
摘要: CF891C Envy Q3.2.2.4. MST 边集询问 最小生成树(森林)中相同权值的边数量不变 先求加入第 i 条边后两个点所在连通块 对于每一个权值: 用并查集判断所在连通块是否有环(有则无解) 点击查看代码 #include <iostream> #include <stdio.h> # 阅读全文
posted @ 2022-09-28 14:06 azzc 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Q3.1.1.4. 边的染色 题目描述 给一个允许有重边和自环的无向图,你需要将每条边染色成红色或蓝色,使得所有度数 的点,都既与一条蓝色边相连,又与一条红色边相连。问是否有解,有解的话输出一组解。 题解 随便找一个点, dfs 无向图 dfs 只有树边和返祖边 树边: 每一层不一样, 根节点... 阅读全文
posted @ 2022-09-28 14:04 azzc 阅读(55) 评论(0) 推荐(0) 编辑
摘要: BZOJ3910. 火车 Q3.3.2.4. 火车 LCA 求距离 并查集让点不被重复标记 rt 如右图 \ a 到 b 的距离为 lca dep[a]+dep[b]-2*dep[lca] / \ 每次如果这个点被标记过, 则跳过 fa fb 反之, 暴力将这条链上的点标记 / / 并查集优化: a 阅读全文
posted @ 2022-09-28 13:59 azzc 阅读(14) 评论(0) 推荐(0) 编辑
摘要: P3285 SCOI2014方伯伯的OJ 标签:Splay 如果直接使用平衡树维护编号,空间会开不下($10^8$) 注意到操作只有1e5个,则有些区间的编号在程序结束时仍然没有被改变(即:结束时区间中的编号仍然是 $[l,r]$) 于是一个节点里可以存一个 $[l,r]$ 表示这个节点存了编号为 阅读全文
posted @ 2022-09-28 12:02 azzc 阅读(15) 评论(0) 推荐(0) 编辑