![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Codeforces
文章平均质量分 81
紫名咯
今天补题了么
这个作者很懒,什么都没留下…
展开
-
Codeforces Round 954 (Div. 3) (A~F)(不会数学)
暴力枚举一下所有可能可以观察到:若一个数比周围四个数都大,那么最终会变成四个数当中最大的哪一个。对字符串c以及ind数组进行排序,通过贪心可以知道,我们需要按照索引从小到大的修改字符串,同时一个位置只会有一个字母与之对应,因此只需要同时按照字符串c从小到大修改即可。归纳题,观察后可以发现:一定有一个两位数,因此我们可以枚举这个两位数,然后取最小值。接下来考虑如何取最小值:若存在数字0,那么可以通过都用乘法来将最终结果变成0,此外,若存在数字1,可以通过乘法将1消掉。原创 2024-06-24 01:03:47 · 1305 阅读 · 0 评论 -
Codeforces Round 953 (Div. 2) (A~F)(冒充Div2)
思路:很经典的将区间操作转化成端点操作,首先考虑全部修改,然后可以发现对比于区间修改而言,只有区间最靠左的两个数跟区间最靠右的两个数可能会不一样,因此只需要关注区间的左右四个点即可,若区间长度小于4的我们直接特判。思路:分类讨论,首先若后面的选举人存在比当前选举人票数多的情况,那么必然是将前面所有的人全部排除,然后再看票数是否大于后面最大的票,若还是小,则将后面票数最多的人也排除掉。的图,所有的斜率为-1的线上所有的顶点全部连通(1除外,需要特判)。总上,我们需要统计的是,删去前。个人的票小于他的最小。原创 2024-06-16 23:23:46 · 1163 阅读 · 2 评论 -
Codeforces Round 951 (Div. 2) C、D(构造、线段树)
构造题:观察到k范围很小,首先考虑最终硬币总数可以是多少,我们可以先假设最终的硬币总数为所有k取值的最小公倍数,这样只需要满足每个结果添加1枚硬币即可赚到硬币。原创 2024-06-07 00:34:32 · 475 阅读 · 0 评论 -
Codeforces Round 950 (Div. 3)G(字典树)
因此我们需要进行奇偶分类,可以发现,到顶点为奇数的各个顶点,两两之间的距离都是偶数,同样,到顶点距离为偶数的各个顶点,两两之间的距离也是偶数。因此我们对深度奇偶进行一个分类,构建两棵字典树,然后每次询问分别求最值。还需要注意的是不能自己和自己异或。由于第一类查询的存在,对于第二种询问而言,其路径需要异或。思路:先有前置知识:对于一颗有根树而言,两个顶点的路径异或为。若没有第一种询问,很显然的是一个简单的异或最大值,其答案就是。,因此若两点距离为奇数,那么其路径异或为。是所有第一类询问的异或。原创 2024-06-04 02:05:35 · 431 阅读 · 0 评论 -
Codeforces Round 950 (Div. 3)(A~F2)
G题只会暴力..不会数据结构暴力模拟即可。原创 2024-06-04 00:57:15 · 1619 阅读 · 1 评论 -
Codeforces Round 949 (Div. 2) (A~C)
大失误原创 2024-05-31 22:03:17 · 695 阅读 · 0 评论 -
Educational Codeforces Round 166 (Rated for Div. 2) (C、D)
题意:思路:考虑求出如果多一个程序员,那么整个序列该怎么选,多一个测试员,整个序列该怎么选。那么若第个人原先是程序员,那么他不来面试以后后面的所有人选择情况就是多一个程序员的情况。同理,若第个人原先是测试员,那么他不来面试以后后面所有人选择情况就是多一个测试员的选择情况。然后考虑用前缀和来快速求解。原创 2024-05-31 00:46:10 · 977 阅读 · 2 评论 -
Educational Codeforces Round 165 (Rated for Div. 2) (C、D)
寄寄寄寄摆摆摆摆原创 2024-04-30 00:51:08 · 1023 阅读 · 0 评论 -
Codeforces Round 941 (Div. 2) (A~D)
然后考虑若此时存在两个堆,那么对于Alice而言,其操作可以使得小的那个堆只剩下1,下一步Bob必须选1,然后Alice就胜利了。相反,若小的那个堆一开始就是1,那么Alice就输了。接下来推广到若干堆的情况:对于任意一方而言,若最小堆不是1,那么便可以控制胜利,于是我们只需要枚举到最小堆不是1的情况即可,然后看是谁在操作就是谁赢。思路:若要使得所有方格同色,关键在于四个角上的颜色,若对角上的颜色一样就能直接将所有格子变为同色。思路:首先处理 < k 的部分,我们可以通过二进制的思想来构造整数,例如。原创 2024-04-28 00:34:31 · 927 阅读 · 0 评论 -
Codeforces Round 940 (Div. 2) and CodeCraft-23 (A~E 最喜欢打表的一集)
题意:给若干根长度不一的棍子,求能够组成的正多边形的最大个数。要求每个边只能用一个棍子。思路:贪心,3个长度一样的棍子凑成一个正多边形,然后统计个数。原创 2024-04-22 01:03:42 · 2315 阅读 · 24 评论 -
Hackforces Round 938 (Div. 3)(A~H)
最没想到的一集原创 2024-04-09 14:13:08 · 803 阅读 · 3 评论 -
Codeforces Round 937 (Div. 4)(D~G)
题意:思路:观察到n的范围很小,先求出所有可能的二进制十位数,然后dp把所有可能的值求出来。注意不能用求因子的方法来求解,因为这些二进制十位数不一定是素数,先除某个数可能会影响整体的分解。(此题数据不大可以忽略)原创 2024-03-29 09:27:43 · 820 阅读 · 0 评论 -
Codeforces Round #936 (Div. 2)B~D
4、若x的某一位是0,那么如果我们也要将其最终结果为0,同样需要满足每个区间内的个数为偶数,隔板的可能位置被限制。3、若x的某一位是1,那么如果我们将最终结果这一位变成0,那么此后的所有位都不需要讨论了,这一轮的可选位置即是最大方案数。1、比x的最高位还要高的位数,每个区间内的个数必须为偶数,如若不能满足直接输出-1,也就是说隔板的可选位置会被限制。可以想到,每次都将最大连续子序列放到该子序列的最后,也就是每一轮都能将最大连续子序列倍增一次填到数组中,最终求结果。思路:首先异或问题想到拆位去处理。原创 2024-03-23 03:12:24 · 638 阅读 · 0 评论 -
Codeforces Round 935 (Div. 3) (A~G)
题意:三种人安排住宿,a只能跟自己住,b只能三个人住,c能1~3个人,问最终最少房间数思路:a单独安排,b放一起,不足三个人的用c补,然后c按照3人一房间尽可能分配题意:装置A每a分钟放一次烟花,装置B每b分钟放一次烟花,烟花能存在m分钟,求空中同时存在最多多少烟花.思路:两只烟花必然能同时放,然后再看接下来m分钟能放多少只烟花,这样必然最优题意:给定01串,要求从中间某个位置分开,其中左侧0的数量大于等于1的数量,右侧1的数量大于等于0的数量,求满足条件的最靠近中心的位置。思路:直接模拟。原创 2024-03-20 09:45:40 · 1217 阅读 · 3 评论 -
Codeforces Round 929 (Div. 3)(F)
分析:注意到终点那一列是必定没有障碍物的,因此考虑走到终点那一列即可。可以发现:由于障碍物会循环上移,因此对于自身而言,循环向上走等于没走(障碍物相对位置不变)。因此循环向上走只会在最后一列出现。接下来仅考虑向下走和向右走,就是一个普通的bfs了(注意判断一下障碍物)。最后再将最后一列到终点的时间加上去即可取最小值即可。题意:题目很长,大致意思是一个有障碍物的迷宫,要求从起点走到终点,且单位时间障碍物会循环上移一格。你能够向右或者循环向下或者循环向上走。原创 2024-02-28 08:17:13 · 525 阅读 · 2 评论 -
Educational Codeforces Round 161 (Rated for Div. 2)(A~E)
被教育咯题意:思路:读题读了半天..可以发现,若对于第位而言,,那么c就一定与模板匹配。否则模板只需要取大写的即可。因此若所有的,都有,那么就不能构造,否则一定可以构造出模板。原创 2024-01-19 01:25:40 · 611 阅读 · 0 评论 -
Hello 2024(A~D,F1F2)
思路:可以发现:同一个父亲的两个叶子结点的权值只差了1,且两个叶子结点中小的那个就是父节点的权值.也就是说,dfs序中若相邻两个数差了1,那么这两个数就是同一个父亲结点的。题意:先有一颗未知的完整二叉树,非叶子结点的两条与子节点相连的边权一个为0,另一个为1.如今给出了根据dfs序的叶子结点的权值序列,求能否还原出一颗完整二叉树.定义结点的权值为该节点到根节点的边权之和.思路:可以想到,由于无法改变相对顺序,我们需要从前往后的插入元素.而每一部分的最后一个元素值应当越大越好。思路:奇偶讨论即可。原创 2024-01-07 01:42:41 · 810 阅读 · 0 评论 -
Codeforces Round 918 (Div. 4)(AK)
A、模拟B、模拟C、模拟D、模拟E、思维,前缀和F、思维、逆序对G、最短路原创 2023-12-29 01:01:56 · 2730 阅读 · 2 评论 -
Codeforces Round 917 (Div. 2)(A~D)(又是数学题)
可以发现:对于同一个开头字母而言,前面位置删除后所能形成的字符串必然涵盖了后面位置开头所形成的字符串,因此不需要遍历所有字符,只需要遍历所有字母即可。思路:由于只能删除前两个数,因此可以考虑固定字符串开头,然后每次删除第二个数就会多形成一个空字符串。而什么情况下会使得总得分更高,即连续使用操作1之后,初始数组得分变的更高了。由此可以发现,对于全是0的数组而言,只需要前一天选择操作1,让。之间的数而言,也是同样的考虑方式,如此不断除以二直到下限为止。之间的逆序对而言,只需要对q数组求一次逆序对即可。原创 2023-12-25 01:05:07 · 1677 阅读 · 4 评论 -
Pinely Round 3 (Div. 1 + Div. 2)(A~E)(有意思的题)
数论题总是那么有趣原创 2023-12-24 02:15:25 · 950 阅读 · 2 评论 -
Educational Codeforces Round 160 (Rated for Div. 2)(D 动态规划)
动态规划求解原创 2023-12-19 13:34:06 · 574 阅读 · 0 评论 -
Codeforces Round 914 (Div. 2)(A~E)
思路:定1求1,将所有能打到国王的棋子位置求出,看是否能打到王后。原创 2023-12-12 12:50:24 · 520 阅读 · 2 评论 -
Codeforces Round 913 (Div. 3)(A~G)
1、编程模拟2、栈模拟3、找规律?(从终止状态思考)4、二分5、找规律,数学题6、贪心(思维题)7、基环树题意:直接模拟题意:给定键入顺序,但是其中‘B’和‘b’不再代表字母,‘B’代表删除前面第一个大写字母,‘b’代表删除前面第一个小写字母,求最终键入的字符串结果。思路:‘第一个’自然想到了栈的后进后出原则,‘B’‘b’操作即是出栈操作。先不考虑最终结果,而是将其字母的键入时间放入栈当中。最后将栈中键入时间全部取出,再根据键入时间输出结果。原创 2023-12-06 02:09:11 · 1089 阅读 · 0 评论 -
Educational Codeforces Round 159 (Rated for Div. 2)(A~F)(LCA + 线性基)
那么在翻转之后,pos(l - 1 + 1) = {x + (pos(r - 1).x - pos(r).x , y + (pos(r - 1).y - pos(r).y)} ,将r - 1 中的 1改成任意数也是一样的情况。思路:(一定要想清楚题目在干什么...比赛时想假了)可以发现:对于反转[L,R]的操作而言,机器人从[0,L - 1]上的位置时不会改变的,从[R,n]的位置也是不会改变的,因此考虑记录机器人所有时刻能够到达的点的情况,同时记录一下机器人到达某个点的时间情况。的每个前缀子串的数量。原创 2023-12-04 10:27:43 · 1046 阅读 · 0 评论 -
Codeforces Round 911 (Div. 2)(C~E)(DFS、数论(容斥)、SCC缩点 + DAG图上DP)
题意:凯克西奇一直被安吉冷落。通过一个共同的朋友,他发现安吉非常喜欢二叉树,于是决定解决她的问题,以引起她的注意。Anji 给了 Keksic 一棵有 n个顶点的二叉树。顶点 1 是根,没有父顶点。所有其他顶点都有一个父顶点。每个顶点最多可以有 2个子顶点、一个左子顶点和一个右子顶点。对于每个顶点,安吉都会告诉凯西奇它的左子和右子的索引,或者告诉他它们不存在。此外,每个顶点上都有一个字母,即 "U"、"L "或 "R"。原创 2023-11-27 01:45:07 · 1234 阅读 · 3 评论 -
CodeTON Round 7(D、E)
由于只存在1或者2,现考虑拿出偶数的情况:有如下策略,首先两边如果有2,那么就拿2。之间的任意偶数都是能取到的。接下来考虑拿出奇数的情况,奇数就必须要拿到一个1,再拿完1以后按照偶数的操作继续进行下去。因此最小的奇数应该是看左右两边到第一个1的和的最小值。如果数组 b 是数组 a 的子数组,那么 b 可以从 a 中通过删除开头的几个(可能是零个或全部)元素和结尾的几个(可能是零个或全部)元素得到。请处理以下两种类型的询问。如何去找两边最近的1,可以直接用set来维护每个1的位置,然后访问起点和终点即可。原创 2023-11-26 08:19:41 · 203 阅读 · 1 评论 -
Educational Codeforces Round 158 (Rated for Div. 2)(A~E)(贪心,树形DP)
题意:有一条路,可以用一条数线来表示。你位于数线上的点 0 ,你想从点 0 到点 x ,再回到点 0。你乘汽车旅行,每行驶 1个单位的距离要花费 1 升汽油。当您从点 0出发时,汽车已加满油(油箱中的油量已达到最大值)。在 a1,a2,…,an点有 n 个加油站。到达加油站后,为汽车加满油。。你必须计算出你的汽车油箱的最小容积(以升为单位),这样你才能从点 0行驶到点 x 并返回到点 0。思路:求一下相邻加油站的距离最大值即可,注意最后一个加油站要先到点x再回来。原创 2023-11-25 01:45:29 · 2548 阅读 · 1 评论 -
Codeforces Round 910 (Div. 2)(D~F)
对于起点到任意一点的最短路我们可以直接一遍BFS求得,但是如何求起点到两个出口的最短路,我们可以通过逆向思维,从每个终点出发开始BFS,然后任意一个空格子可以被走过最多两次,这样能保证有两个终点走到该点上。最终求答案的过程我们可以遍历每一个空格子,然后假设起点到这个格子是两个最短路的重合段,用起点到该格子的距离加上两个终点到该格子的距离就是两个最短路的非重复的格子数。观察上述三种情况,发现当且仅当第二种情况,即原本两段区间不重合的条件下,其b数组的价值才会增加,增加的值为他们两段区间相隔的距离乘2。原创 2023-11-20 05:14:39 · 1516 阅读 · 0 评论 -
Codeforces Round 909 (Div. 3)(A~G)(启发式合并 , DSU ON TREE)
题意:给定一个数, 两个人玩游戏,每人能够执行操作,若操作完是3的倍数则获胜,问先手的人能否获胜(若无限循环则先手的人输)。思路:假如一个数模3余1或者2,那么第一轮操作先手就能获胜,若余0则后手获胜。原创 2023-11-18 02:05:06 · 1602 阅读 · 4 评论 -
补题Codeforces Round 905 (Div. 2) (A~F C是真不会啊)(set真好用)
这场套路题比较多,思维量少,主要都是离散化处理 + 二分。原创 2023-11-10 19:51:22 · 241 阅读 · 0 评论 -
Codeforces Round 908 (Div. 2)(A~E)(全是思维题)
题意:A、B在玩博弈游戏。其中一局分为X个小局,赢下Y个大局之后获得最终胜利,结束游戏(X,Y未知)。给定一个只包含字母A和B的序列,分别代表了A获胜和B获胜。问最终胜利者是谁。思路:顺着题意来发现由于X,Y都未知,非常难判断谁在一局中赢了。但是逆着想会发现:当有人赢了Y个大局之后游戏直接结束了。因此赢得最后一小局的人也就赢得了游戏。原创 2023-11-08 02:00:51 · 701 阅读 · 0 评论 -
Educational Codeforces Round 157 (Rated for Div. 2)(D)拆位
当中某一位上的数为0,然后遍历求出整个b数组中该位上1的数量,看是否与之前算出来1的数量相符,如果相符则代表该位可以为0,如果不相符则代表该位上的数字为1。思路:异或问题想到拆位处理,由于b中包含了0~n-1当中的所有数,换句话说也就是b数组当中每一位上1的数量是已知的。中每一位上的数确定下来,整个b数组就能确定下来了。遍历所有位,可以先假设。1、b中包含了从0 ~ n - 1 中的所有数,也就是说b是一个排列。求出来以后,b数组当中其余的数都是固定下来的。原创 2023-11-04 00:21:08 · 402 阅读 · 0 评论 -
Codeforces Round 907 (Div. 2) (E)找规律
对于连续的1的序列而言,例如(x , 1 , 1 , 1 , 1 , 1 , y)。需要注意到 :例如序列(1 , 1 , 1 , 1 , 1 , x)我们无法额外将价值减少1。同样的,对于序列(1 , 1 , 1, 1 ,1)而言,第一次操作无法使得价值减少1,然后每一次操作价值减少1,因此需要特殊处理。思路:对于一个不包含1的连续gcd = 1 的序列来说,例如:(3x , 3 , 5 , 7 , 9 , 11 , 11y)此时总价值为4,我们如果按照顺序变为0,那么每一次操作能够使得价值减少1。原创 2023-11-03 11:19:16 · 96 阅读 · 0 评论 -
Codeforces Round 906 (Div. 2)(D)(贪心思维)
思路 : 观察式子右边,发现 i * j 越小容易建边,因此考虑能否和第1个点进行建边。当无法和第一个点建边时,则表示。因此当无法和点1建边时,必然无法和其他点建边。由此可得:我们只需要每次都和第一个点所在连通块建边即可。,现需要通过建边将所有点全部连通。(S为 i 所在连通块的点和 j 所在连通块的点的集合)。于是右边的式子我们就可以进行预处理了,然后对右边的值贪心一波即可。(其中s为第一个点所在连通块的集合)。,现有n个孤立点,第 i 个孤立点的权值为。, 那么考虑跟其他点建立边时必然有。原创 2023-10-29 23:28:54 · 99 阅读 · 0 评论 -
Codeforces Round 898 (Div. 4) (E~H)
题意:给定一个数组a和一个整数x,进行无限次操作,每次操作可以对数组a中任意一个数进行加法,加数的总和不超过x。求整个数组最小值的最大值。思路:直接二分找答案。原创 2023-09-22 01:03:01 · 978 阅读 · 0 评论 -
Codeforces Round 897 (Div. 2)(D :环的轮换)
1867D - Cyclic Operations 题意:给定一个长度为 n 的数组b一个数字k,同时有一个a数组,起初a数组全部为0。你可以进行无限次以下操作:构造出一个长度为k的l数组,其中令 。 要求问最终能否使得a与b数组相等。 思路:给定表达式很容易想到环当中的内容:环的置换、其定义如下:其中,本题目的l数组既是图中的()。只不过将 放到了最后。 接下来考虑如何才能满足环上的轮换:当需要对环内的数进行操作时,必须要满足轮换的阶数恰好等原创 2023-09-12 17:18:25 · 216 阅读 · 0 评论 -
Educational Codeforces Round 154 (Rated for Div. 2)(A~D)
连续上分咯题意:给定一个字符串,包含了1~9数字各一个,你可以删除最多7个数字,要求删完以后的字符串组成的数字为素数。思路:13与31都是素数,因此只需要看1在3的前面还是后面再决定输出13还是31即可。原创 2023-09-01 01:20:10 · 360 阅读 · 0 评论 -
Pinely Round 2 (Div. 1 + Div. 2) (A~D)
E题读不懂啊...题意:你发布了一条消息,其中你有n个订阅者,其中m个订阅者已经处于在线状态,现有k个消息,其中如果消息为‘+’,则代表订阅者中有一个人上线了,若消息为‘-’,则代表订阅者中有一个人下线了。假设上线的人都能看到你的消息,求在给定的k条消息中能否得出结论:所有订阅者都看到过你的消息。输出yes 、 maybe 、no。思路:如果要是yes,考虑极端情况:每次上线的人都尽可能的是之前已经上线然后又下线的。那么必须满足所有订阅者都同时在线。原创 2023-08-31 01:42:04 · 329 阅读 · 0 评论 -
Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)(A~D)
题意:给定x,y,n,其中要求构造一个数组a,其中满足a有n个元素,且起始元素为x,末尾元素为y,且a是一个严格单增的数组。同时满足数组b , 其中, 要求b是严格单调递减的。思路:直接从b开始构造,假设b的最后一个元素是1,往前依次递增1,求该情况下是多少,若< x , 则代表无法满足。反之则能够满足。直接将改为x。其余不变即可。原创 2023-08-27 02:04:41 · 786 阅读 · 0 评论 -
Codeforces Round 894 (Div. 3)(A~G)
输在不会set上面了...题意:给定n行长度为m的字符串,要求从左到右不同列当中按顺序找出vika四个字母。思路:直接模拟。原创 2023-08-25 03:14:50 · 142 阅读 · 1 评论