比赛卡住题
文章平均质量分 69
笑对这个世界的志贵
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #735 (Div. 2) E. You
Codeforces Round #735 (Div. 2) E. You题意有 T 组测试样例,每组测试样例:给你一棵 n 个节点的树,你要进行 n 次删除,每次删除选择树上一个没有删过的节点,将它删除,删除后会得到分数,分数等于与它连接并且没有被删除的节点个数。例如如图所示的这样一棵树:删除节点的顺序为 [2, 3, 1],那么分数分别是 [1, 1, 0],所以 [1, 2, 3] 点分别的分数就是 [0, 1, 1],我们称 [0, 1, 1] 是一种分数排列。你可以改变删除节点的顺序原创 2021-08-08 00:02:10 · 274 阅读 · 2 评论 -
【线段树 && 区间加 1 和区间求 a[i]/b[i] 的和】HDU - 6315 Naive Operations
Step1 Problem: 给你 n 个数,数组 a[] 初始化为 0,给你数组 b[](n 的全排列),进行 q 次操作,每次操作分为: add L R: 数组 a[] 区间 L 到 R 的值都加 1 query L R:求区间 L 到 R,a[i]/b[i] 的和 数据范围: 1 <= n <= 1e5, 1 <= q <= 1e5, ...翻译 2018-07-26 08:20:19 · 251 阅读 · 0 评论 -
【并查集 && 合并x~y】CodeForces 566D Restructuring Company
Step1 Problem: n 个人,初始每个人都属于自己的部门,q 次操作 三种操作: 1 :x 所在部门和 y 所在部门合并 2 :合并 x, x+1, ….. y-1, y(也就是合并 x 到 y 全部)的部门 3 :询问 x, y 是否属于同一个部门 数据范围: 1<=n<=200000, 1<=q<=500000....翻译 2018-07-15 13:05:59 · 312 阅读 · 0 评论 -
【容斥定理】sdut-4219 Four-tuples
Step1 Problem: 给你 l1, r1, l2, r2, l3, r3, l4, r4, 让你找满足 li <= xi <= ri 同时 x1 != x2, x2 != x3, x3 != x4, x4 != x1的 元组 (x1, x2, x3, x4) 的个数 结果 MOD 1e9+7. 数据范围: 1 <= li <= ri <= ...翻译 2018-07-15 16:12:32 · 150 阅读 · 0 评论 -
【最短路 && 思维】Gym - 101291C Buggy Robot
Step1 Problem: 给你 n*m 的矩阵,其中: ‘R’:机器人 ‘E’:终点 ‘#’:墙 ‘.’:空地 给你一个指令 (由 U D L R 组成),机器人会按照这个指令移动,如果下一步有墙或者出了边界,则跳过该操作。 你可以在指令中添加字母,或者删除指令中的字母,问你最少操作,使得机器人能到达 EStep2 Ideas: 难点想...翻译 2018-07-27 15:54:50 · 348 阅读 · 0 评论 -
【扩展欧几里得 && 数学】Codeforces Round #499 (Div. 2) E. Border
Step1 Problem 有 n 种面值的钱,每种面值的钱有无数张。 你可以选择任意张钱,求和 % k,输出所有不一样的结果。 数据范围: 1 <= n <= 1e5, 2 <= k <= 1e5. 1 <= 面值大小 <= 1e9. 例: input: 2 8 12 20 output: 2 ...翻译 2018-07-27 16:29:36 · 176 阅读 · 0 评论 -
【扩展欧几里得 && 容斥 && 容斥对象转移成因数】HDU - 5514 Frogs
Step1 Problem: m 个石柱围成一个圈,有 n 只青蛙从 0 开始跳,第 i 只青蛙当前位置是 pos 下一次能跳到 pos+a[i] 的石柱上,问所有柱子被踩到一次的序列和。 数据范围: 1<=n<=1e4, 1<=m<=1e9, 1<=a[i]<=1e9.Step2 Ideas: 前置技能: (a*t)%k...翻译 2018-08-11 09:43:33 · 243 阅读 · 0 评论 -
【期望 && E(X+Y) = E(X)+E(Y)】CodeForces - 280C Game on Tree
Step1 Problem: 给你 n 个节点的一棵树,等概率的选择一个节点删除它和它的子树,求删除完整棵树的期望次数。Step2 Ideas: E(x):代表删除完整棵树的期望次数。 E(x) = sum( E(i) ), i = 1, 2, …, n. E(i):代表该点对于删除完整棵树贡献的期望次数 对于 i 点: 贡献 0, 或者 1. ...翻译 2018-08-11 11:23:01 · 4633 阅读 · 0 评论 -
【欧拉定理 && ( 容斥 || 反演 )】2018 Multi-University Training Contest 7 1005 GuGuFishtion
Step1 Problem: phi():欧拉函数 G(a, b) = phi(a*b) / (phi(a) * phi(b)) 让你求 sum{ G(a, b) }, a = 1, 2, 3, …, m, b = 1, 2, 3, …, n. 数据范围: 1<=m, n<=1e6, max(n, m) < p <= 1e9+7. 其中 p ...翻译 2018-08-14 21:20:02 · 175 阅读 · 0 评论 -
【DP && 全排列 && 每一行选一个 1 保证其列不相等的方案数】UVALive 8521 LOL
Step1 Problem 给你 5 个由 01 组成的长度为 100 的字符串。 让你求选 5 个 1 且 1 不能再同一列的方案数Step2 Ideas: 学习博客 dp[i][j]:到了第 j 列,选了 i 个 1 且第 i 个 1 对应的列 大于 第 i-1 个 1 对应的列的方案数 结果等于 = 5 个字符串全排列后的 sum{ dp[5][100...翻译 2018-08-14 21:30:14 · 295 阅读 · 0 评论 -
【DP && 两个字符串求 k 个顺序子串相同最大长度】CodeForces - 682D Alyona and Strings
Step1 Problem 给你两个长度分别为n, m的字符串,在第一个字符串找 k 个连续的子串,在第二个字符串中均出现其顺序一样,求最大这些子串长度和Step2 Ideas: dp[i][j][k][1]:第一个串第 i 位, 第二个串第 j 位,当中 k 个连续的子串,s1[i] == s2[j] 且是最后一个子串末尾 dp[i][j][k][0]:第一个串第 i...翻译 2018-07-15 10:06:24 · 377 阅读 · 0 评论 -
【阶乘质因数分解 && 数学】51Nod - 1189 阶乘分数
Step1 Problem: 1/N! = 1/X + 1/Y (0 &amp;lt; x &amp;lt;= y), 给你 N, 求满足条件的整数解的数量 Mod 1e9+7。 例: N = 2, 1/2 = 1/3 + 1/6, 1/2 = 1/4 + 1/4Step2 Ideas: 学习博客 1/N! = 1/X + 1/Y -&amp;gt; (N!)^2 = (N! - X) ...翻译 2018-07-14 13:31:31 · 502 阅读 · 0 评论 -
【DP && 分成一些连续的序列,使的所有序列最大值-最小值的和最大】CodeForces - 484D Kindergarten
Step1 Problem: 给你 n 个数,分成一些连续的序列,使的所有序列最大值-最小值的和最大。Step2 Ideas: 9 0 1 2 3 4 2 我们看中间的 0~4,因为 0~4 都是递增的 1~3 都是递增肯定是最优的。 核心点就是判断 0 是递增还是递减最优,4 是递增还是递减最优。 dp[n][1]:第 n 个数是递增的,最优结果(分配后和...翻译 2018-07-14 10:15:18 · 586 阅读 · 0 评论 -
【状态压缩&&bfs】HDU - 5094
Step1 Problem: 有一个你n*m的地图,里面有p种类型的门。 p == 0的时候,该门是打不开的。 p != 0的时候,该门需要p这把钥匙打开。 告诉你哪些点移动到哪些点,有门。 告诉你哪些点有钥匙。 问你从(1, 1) 走到 (n, n) 最少需要走多少步(一个点 可以 走上下左右四个方向)。 例: 输入: 4 4 9 9...翻译 2018-05-02 11:32:42 · 273 阅读 · 1 评论 -
【扫描线&&线段树&&矩阵范围内点个数】HDU - 5091
Step1 Problem: 平面上有n个点(x, y), 你有一个宽W, 高H的框,问你一次最多可以框到几个点(包括框的边界)。Step2 Ideas: 对于每个点(x, y),我们维护一个右上方的矩阵【(x, y) -> (x+w, y+h)】 对于每个点(x, y),你另外添加一个点(x+w, y)。从左到右扫描:遇到(x, y),区间[y, y+h]加1,...翻译 2018-05-02 11:53:32 · 607 阅读 · 0 评论 -
【树 && 倍增求到祖先距离】Codeforces Round #480 (Div. 2) E. The Number Games
Step1 Problem: 给出一颗n个节点树,让你删除k个节点,使其还是一棵树,并且要求Σ(2^i)最大,i是剩下的节点的编号。题意参考 数据范围: 1 &lt;= k &lt; n &lt;= 1e6.Step2 Ideas: 显而易见,剩下的节点编号越大越好。 从编号大到小选择, 到第 i 节点 如果选择后 构成树的节点数量 没超n-k,则选择...翻译 2018-06-01 21:00:49 · 150 阅读 · 0 评论 -
【Nim && 01背包 取不多于m个数异或组成数res的方案数】SDUT-4220 Games
Step1 Problem: 有n堆石子,每堆石子数量对应为a[i]。A和B两个人玩Nim游戏,A先手,B可以选择删除不多于m堆石子,使得B获胜的方案数 取模 1e9+7。 数据范围: 正整数 n<=1e3, d <= 10, a[i] <= 1e3. 例子: Input: 2 5 2 1 1 2 3 4 6 3 1 ...翻译 2018-06-01 22:25:58 · 269 阅读 · 0 评论 -
【思维 && 构造到 0 位置的元素值满足曼哈顿距离的矩阵】Codeforces Round #495 (Div. 2) D. Sonya and Matrix
Step1 Problem: 给你 t 个数(a1, a2….at)至少有一个 0,要你构造 n*m 的矩阵,该矩阵的元素的值满足到 0 这个元素的位置的曼哈顿距离。曼哈顿距离:两个点的坐标差的绝对值和。 如果构造出满足条件的矩阵,输出 0 的坐标。 数据范围: 1<=t<=1e6, 0<=a[i]<=t, n*m = t.Step2 Ide...翻译 2018-07-16 12:08:02 · 252 阅读 · 0 评论 -
【折半搜索 && 左上到右下异或等于 k 的方案数】Codeforces Round #498 (Div. 3) F. Xor-Paths
Step1 Problem: 给你 n*m 的矩阵,从 (1, 1) 到 (n, m) 只能往下和往右走,路径上的数异或起来等于 k 的路径数。 数据范围: 1&lt;=n, m &lt;= 20. 0 &lt;= k &lt;= 1e18. 0 &lt;= a[i][j] &lt;= 1e18.Step2 Ideas: n, m 很小,我特别打了个表,从 (1,...翻译 2018-07-17 10:34:35 · 368 阅读 · 0 评论 -
【SG函数 && 推导】HDU - 5795 A Simple Nim
Step1 Problem: 给你 n 堆石子,每堆石子的个数分别为 a[i]。 Nim 博弈的基础上多一个条件:可以将一堆石头分成三堆,每堆至少得大于 0,问你先手赢,还是后手 数据范围: 1<=n<=1e6, 1<=a[i]<=1e9.Step2 Ideas: 正常情况的 Nim 博弈每堆石子的 sg函数值 = 石子的个数。 ...翻译 2018-07-17 12:10:46 · 192 阅读 · 0 评论 -
【贪心 && 前缀和相等之间序列和为 0】CodeForces - 675C Money Transfers
Step1 Problem: n 个银行围成一圈存款有正有负,总和为 0,你移动存款只能移动到相邻的银行,问你最少的移动次数使得所有银行存款都是 0.Step2 Ideas: num 个银行存款和为 0,最多移动 num-1 次就可以使得所有银行存款为 0。 我们只需要将 n 个银行分成尽可能多的和为 0 的连续序列。 假设最多可以分成 k 个序列,那么结果为 n...翻译 2018-07-14 08:55:55 · 326 阅读 · 0 评论 -
【nlogn 构造二叉搜索树】CodeForces - 675D Tree Construction
Step1 Problem: 给你 n 个数,按照输入顺序构造二叉搜索树,然后输出每个数的父亲。Step2 Ideas: 二叉搜索树:将要插入的数 num, 树上比 num 大的数 Max, 比 num 小的树 Min. 那么 Max 或者 Min 一定是 num 的父亲。 所以我们只用记录每个点的深度,然后求出 Max 和 Min 判断谁比较深,就可以了。 se...翻译 2018-07-14 09:59:20 · 283 阅读 · 0 评论 -
【数学期望 && 几何分布 && 大数】FZU - 2278 YYS
Step1 Problem: 求n种类型SSR,至少每样抽到一个的期望天数(抽一次的天数 (n-1)的阶层)。 数据范围: 1&amp;lt;=n&amp;lt;=3000Step2 Involving algorithms: 数学期望 &amp;amp;&amp;amp; 大数Step3 Ideas: X表示,至少每样抽到一个的天数的随机变量,求E(X). 对于第一张 抽到...翻译 2018-04-13 22:33:54 · 348 阅读 · 0 评论 -
【树形DP && O(n^2) 到 O(n^(3/2))巧妙优化】HDU - 5735 Born Slippy
Step1 Problem: 给你一棵 n 个节点的树以及点权 w[i], 给你 opt, 定义 f(s) 为 s 的祖先序列(包括 s) opt 和最大值 + w[s]. 输出 S = sum(s * f(s)), s = 1, 2, 3, …, n. 数据范围: 2 <= n <= 2^16, 0 <= w[i] < 2^16, opt = 与...翻译 2018-08-13 09:44:20 · 299 阅读 · 0 评论 -
【计数 && 思维 && 数学】Codeforces Round #506 (Div. 3) D. Concatenated Multiples
Step1 Problem: 给你 n 个数 和 k,分别 a[1] … a[n]. connection(x, y) = xy. connection(45, 112) = 45112. 让你求 connection(a[i], a[j])%k == 0 的个数 (i != j) 数据范围: 1 <= n <= 2e5, 2 <= k &l...翻译 2018-08-26 21:50:43 · 293 阅读 · 0 评论 -
【前缀和 && 子矩阵的中位数】Gym - 101778F Median and Queries
Step1 Problem: 有一个 n * m 的矩阵,每个位置都有一个值 a[i][j]. 有 q 个询问。 对于每个询问给你一个子矩阵: 子矩阵的 左上角(x1, y1),右下角(x2, y2),求该子矩阵的中位数。 中位数:所有数排序后,中间的那一个。如果有两个中位数,选靠左边的那一个。 数据范围: 1<=n, m<=100, 1<=...翻译 2018-09-06 11:09:23 · 405 阅读 · 3 评论 -
【组合数学&&欧拉降幂】ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies
Step1 Problem:有 n 个人编号为 1, 2, 3, …, n,有 n 个糖果,按编号从小到大顺序分发给它们,所到编号至少得获得一个糖果,求有多少种分配方案。数据范围:1<=T<=100, 1<=n<=10^100000.Step2 Ideas:n个糖果恰好分给 1 个小朋友的方案数:C(n-1, 0)n个糖果恰好分给 2 个小朋友的方案数:C...翻译 2018-10-02 15:20:53 · 253 阅读 · 0 评论 -
【组合数学dp】ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare
Step1 Problem:给你 n 个数排成一圈,每个数的范围[0, 2^k-1],相邻两个数字它们异或值不能为 2^(k-1),求满足条件的排列数。数据范围:T<=20, 0 < n, k<=1e6.Step2 Ideas:我们假设 a 不能与他相邻的数为 a1,也就是 a 异或 a1 = 2^(k-1).第一反应:如果不是圈,那么排列数 = 4*3^(n-...翻译 2018-10-02 16:24:15 · 240 阅读 · 0 评论 -
【组合数学dp】Educational Codeforces Round 51 (Rated for Div. 2) D. Bicolorings
Step1 Problem:给你 2*n 的矩阵,你可以对于每个格子填涂黒色或者白色,如果相邻颜色一样看成同一块,问你涂完后恰好有 k 块的方案数。数据范围:1 <= n <= 1000, 1 <= k <= 2n.Step2 Ideas:总有一股组合数学的味道。直接说题解:dp[i][0][k]: 恰好为 k 块上下都黑的方案数dp[i][1][k]...翻译 2018-10-02 16:33:44 · 214 阅读 · 0 评论 -
【矩阵的十大经典题目中的第九】
Step1 Problem:给你 n*m 的矩阵,你可以填 1 * 1 的黑块,或者 1 * 2 的黑块,或者 2 * 1 的黑块。求有多少填的方案可以将矩阵填满。数据范围:1 &lt;= n &lt;= 8, 1 &lt;= m &lt;= 1e18.Step2 Ideas:感谢 dq 给我讲解了一波,发现了一篇很棒的博客。前置技能:你需要将经典题目 8 先学会了。这是你就知...翻译 2018-10-02 17:06:06 · 392 阅读 · 0 评论 -
【容斥O(n)莫比乌斯筛 && 花式开根】Educational Codeforces Round 50 (Rated for Div. 2) F. Relatively Prime Powers
Step1 Problem:找 2 到 n 中满足条件 x 的个数。条件:x 唯一分解后质因数的幂的 gcd = 1。例:10:4, 8, 9 不满足条件,输出 6.数据范围:1&lt;=T&lt;=1e5, 2 &lt;= n &lt;= 1e18.Step2 Ideas:x^4 * y^2 = (x^2 * y)^2,也就是对幂进行提公因式。幂提公因式 = 1 的个数就是...翻译 2018-10-02 17:44:47 · 350 阅读 · 3 评论 -
【离散对数 && EXBSGS】Gym - 101853G Hard Equation
Step1 Problem:a^x ≡ b(mod m).给你 a, b, m, 求 x.数据范围:1<=T<=500, 0 <= a, b < m <= 1e9.Step2 Ideas:学习算法博客说说自己的理解:a^x ≡ b(mod m).a 和 m 互质:根据欧拉定理:如果 gcd(a, m) == 1, a^phi(m) ≡ 1(...翻译 2018-10-11 12:19:48 · 464 阅读 · 0 评论 -
【组合数学 && dp[i][j] = a*dp[i, j-1] + b*dp[i-1,j]+c 求 dp[n][n]】Gym - 101480F Frightful Formula
Step1 Problem:已知 a,b,ca, b, ca,b,c 和 dp[k][1],dp[1][k]dp[k][1], dp[1][k]dp[k][1],dp[1][k] 其中 k=1,2,3,...,n.k = 1, 2, 3, ..., n.k=1,2,3,...,n.dp[i][j]=a∗dp[i][j−1]+b∗dp[i−1][j]+c;dp[i][j] = a*dp[i][...翻译 2018-10-26 21:02:06 · 1304 阅读 · 0 评论 -
【SG函数 && 存在不可达状态】Gym - 101908B Marbles
Step1 Problem:一个 100*100 的棋盘,棋盘上有 n 个棋子,Alice 和 Bob 轮流进行操作。操作:选择棋盘上的一枚棋子 (l,c)(l, c)(l,c),移动至 (l−u,c),(l,c−u),(l−u,c−u),u&amp;amp;gt;=1(l-u, c),(l, c-u),(l-u, c-u), u &amp;amp;gt;= 1(l−u,c),(l,c−u),(l−u,c−...翻译 2018-10-26 21:10:30 · 833 阅读 · 0 评论 -
【单调栈 && 子矩阵】ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall
Step1 Problem: 给你 n*m 的矩阵,里面有 k 个黑块,给你 k 个黑块的下标。 输出所有不包含黑块的子矩阵的个数和 数据范围: 1 <= n <= 1e5, 1 <= m <= 100, 0 <= k <= 1e5.Step2 Ideas: 前置技能:以 (x, y) 为右下角的子矩阵个数 = sum{ ...翻译 2018-09-03 20:34:50 · 250 阅读 · 0 评论 -
【线性筛】ACM-ICPC 2018 南京赛区网络预赛 J. Sum
Step1 Problem: n = a*b, 同时 a 的因数不存在平方数,b 的因数不存在平方数。(a != b,a 和 b 互换位置算不同的方案) f(n):满足上述条件的方案数 例如 n = 4: 只有 (2, 2) 一种方案,因为 (1, 4), (4, 1) 中的 4 的因数存在平方数。 T组询问,每次给你一个 n, 让你输出 sum{ f(i) }, i =...翻译 2018-09-03 18:12:02 · 179 阅读 · 0 评论 -
【01背包 && bitset优化 && 取 10 个数构成 78 的方案数】HDU - 5890 Eighty seven
Step1 Problem 给你 n 个数,Q 次询问,每次询问删除三个下标对应的数,在剩下的数的基础上选择不超过 10 个数能否组成 87. 数据范围: N <= 50, Q <= 1e5.Step2 Ideas: ans[i][j][k]:代表删除下标 i, j, k 后,在剩下的数的基础上选择不超过 10 个能否组成 87. 我们预处理 a...翻译 2018-08-22 20:27:10 · 307 阅读 · 0 评论 -
【贪心 && 树】Codeforces Round #506 (Div. 3) E. Tree with Small Distances
Step1 Problem: 给你 n 个节点的一颗树,问你至少加几条边,使得节点 1 到其他点的距离不超过 2. 数据范围: 2 <= n <= 2e5.Step2 Ideas: 只要是距离节点 1 超过 2 的点,我们必须加一条边,使其距离不超过 2. 贪心思路:我们看最深的节点,如果它距离节点 1 的距离超过 2,那么加边连接节点 1 到该...翻译 2018-08-27 08:50:04 · 133 阅读 · 0 评论 -
【区间DP && bitset && 内存】Codeforces Round #505 D. Recovering BST
Step1 Problem: 给你 n 个点,升序给出 n 个点的权值,让你判断是否能构成一棵排序树:两个节点权值的 gcd 不等于 1 才能够连边。 数据范围: 2 &lt;= n &lt;= 700, 2 &lt;= a[i] &lt;= 1e9.Step2 Ideas: 扩充知识:通常情况下,1字节 = 8位. C++ 里面 int 占 4字节,char 占...翻译 2018-08-20 10:08:50 · 188 阅读 · 0 评论 -
【线段树维护状态转移矩阵】CodeForces - 719E Sasha and Array NOWCODER D 整数序列
Step1 Problem: 给你 n 个数代表斐波那契数列下标, m 次操作。 操作分为两种类型; 1:区间 L 到 R 加 v。 2:求区间 L 到 R 的下标对应的斐波那契数列的和。 数据范围: 1 &amp;lt;= n &amp;lt;= 100000, 1 &amp;lt;= m &amp;lt;= 100000, 1 &amp;lt;= a[i] &amp;lt翻译 2018-08-21 19:54:11 · 236 阅读 · 0 评论