
Algorithm Contest Record
文章平均质量分 78
My algorithm contest record
Yair_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AtCoder Beginner Contest 416 C 题
个整数序列. 按照所有的整数序列将字符串拼接, 然后按照字典序升序排列, 求第。题解: 全排列的时间复杂度为。, 排序的时间复杂度为。原创 2025-08-04 19:27:05 · 557 阅读 · 0 评论 -
Atcoder Beginner Contest 415 D题
考虑交换的策略顺序, 自然是先交换减少的数量越少, 剩余的就越多, 也就是更优的.. 要求对于此次交换策略, 次数越大越优, 这个不等式求不出最大值. 考虑第。排序之后, 依次遍历处理每一个交换策略. 对于任意一个交换策略。个瓶子, 并得到一个贴纸. 问: 最多可以获得多少个贴纸.表示可以损失的瓶子数. 仔细想一下, 上取整就不满足要求.个瓶子, 进行尽可能多的交换, 输出交换次数.次交换之后, 剩余的瓶子要求大于等于。表示每次交换之后损失的瓶子,次之后, 剩余的瓶子小于。, 设可以交换次数为。原创 2025-07-22 17:13:56 · 685 阅读 · 0 评论 -
牛客周赛 Round 60
b,那么相当于将多的放在最前面和最后面,res = 2 * min(a, b) + 1;维护一个集合(sum),表示当前可以组成的数的上界。一个组合数,中间长度为 n - 2,能推 m - 1 次,问有多少种推法?设正数数量为 a,负数数量为 b。当 a = b,res = a + b。4个相等的数异或为0,直接输出0。求同行和同列的最大极差。原创 2024-09-25 16:15:18 · 322 阅读 · 0 评论 -
牛客小白月赛101
n - 1 为偶数,从(1,1)到(n - 1, n - 1)最少步数为 4,(n - 1,n - 1)到(n,n)需要 2 步。题意转换:对于数组中的任意一个元素 a,令 a 的约数个数为 x,数组为 a 的约数个数为 y,求有多少个元素,使得 x = y。当前遍历到 B[i],那么意味着 B[i] 之前的元素已经被确定了,如果在区间 [1, i) 中有 B[i],表示在 i 次操作之前将该元素换到后面了。从(1, 1)到(2, 2)需要 2 步(对于任意整数 n,gcd(n, n) = n)原创 2024-09-24 12:22:29 · 459 阅读 · 0 评论 -
Codeforces Round 971 (Div. 4) (A~G1)
Codeforces Round 971 (Div. 4) (A~G1) 题解原创 2024-09-07 18:50:54 · 666 阅读 · 0 评论 -
Codeforces Round 970 (Div. 3)(A~H)
codeforces round 970 div3 题解原创 2024-09-04 20:42:03 · 674 阅读 · 0 评论 -
牛客小白月赛99(A-F)
对于中间的墙壁,需要时机器人在墙壁之间来回移动,从而增加移动时间,增加爆炸伤害,有多种开启和关闭的方案,但是对于每一个大区间墙壁的操作增加的时间,都可以由小区间墙壁操作得到,只不过需要多操作几次。设 x 为答案,且 x 为合数,那么 ai 不整除 x,令 y 为 x 的质因子,因为 x 为合数,所以一定存在一个小于它的质因子。计算每一个牌倒塌的范围,按照左端点升序排列,然后区间合并,存储一下每一次能推倒的个数。所以可以先将所有的质数筛出来,并去除 ai,剩余的最小的质数即为答案。每一次增加的时间为 v。原创 2024-08-27 10:51:30 · 596 阅读 · 0 评论 -
Educational Codeforces Round 169 (Rated for Div. 2)(A-D)
为了不失一般性,设四种颜色分别为(a,b,c,d);城市 x 的颜色为(a,b),城市 y 的颜色为(c,d)(当两个城市不能直达)。设两个中转城市 A、B,为了保证能够中转,需要 A 和 B 中的颜色应该包括 x 和 y 中的至少一个颜色,并且 A 和 B 需可直达。设路径为 x -- > A -- > B -- > y,那么 A 中至少有一个颜色和 x 相同,B 中至少有一个和 y 相同。对于城市 z 的颜色情况,可以得到该种颜色情况的所有城市下标,并且是升序的(在预处理阶段,是从左往右遍历)。原创 2024-08-18 21:36:26 · 969 阅读 · 0 评论 -
Codeforces Round 966 (Div. 3) (A-F)
每一次加分都是行变满或者列变满导致的,可以动态规划求得任意一个矩阵,加分 [0, n*m] 的最小操作数。所以可以先预处理 n 个矩阵,val[i][j]:第 i 个矩阵分数为 j 所需的最小操作数。每次得到的分数是该区间的和,所以我们每次都尽可能选择靠近中间的区间。和从两端往中间靠依次得到的分数是相同的。可以对于 n*m 的网格中的每一个单元格求出被 k*k 的小方格覆盖的次数,利用。预处理好之后就可以转变为一个01背包的问题了:对于 n 个矩阵,每个矩阵选与不选,分数至少为 k ,最少操作数是多少。原创 2024-08-18 14:52:51 · 352 阅读 · 0 评论