![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
文章平均质量分 82
immortal_luo
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 121 1626C Monsters And Spells
题目描述(传送门)题目翻译:Monocarp正在玩电脑游戏,他现在是一个巫师学徒,只会一个技能。幸运地是,这个技能可以打败怪兽。当前有n个怪兽,第i个怪兽在第ki 秒出现,且该怪兽的生命值为hi。其中hi ≤ ki,且ki互不相同。Monocarp可以在整秒时刻(从1开始,1,2,3,…)发出技能,技能的伤害为:如果前一秒他没有发出技能,则此时技能的伤害值为1;如果前一秒技能的伤害值为x,则他可以选择此时技能的伤害值为x+1或1。使用一个伤害值为x的技能,将消耗x个mana,并且mana不可再生。原创 2022-01-21 13:50:23 · 342 阅读 · 3 评论 -
Educational Codeforces Round 121 1626B Minor Reduction
题目描述(传送门)题目翻译:给你一个十进制数x,高位没有多余的0。你需要对其执行一次操作:将x中两个相邻的数替换成它们的和(它们的和的高位也不能有多余的0,比如如果和是9,就用9来替换,而不是09;如果和是0,则用0来替换,而不是00)比如,如果x = 10057,则可能的结果是:选择第一位数1和第二位数0,用1+0=1来替换,则结果是1057;选择第二位数0和第三位数0,用0+0=0来替换,则结果也是1057;选择第三位数0和第四位数5,用0+5=5来替换,则结果仍然是1057;选择第四原创 2022-01-19 14:57:37 · 365 阅读 · 0 评论 -
Codeforces Round #766 (Div. 2) 1627B Not Sitting
题目描述(传送门)题目翻译:在一个教室里排列着n × m的座位,第r行第c列的座位用 (r,c) 表示。座位 (a,b) 与 (c,d) 之间的距离= | a - c | + | b - d | 。现在有两个人,分别是Rahul和Tina。Tina有k桶粉色油漆,然后依次发生以下事件:Tina选择k个座位刷上粉色油漆,一桶油漆正好刷一个座位。然后Rahul选择自己的位置,但他不会选择被刷上粉色油漆的座位。最后Tina再选择自己的位置,她可以选择任意一个位置,不管有没有涂上粉色油漆,但是不能选原创 2022-01-18 13:43:07 · 385 阅读 · 0 评论 -
Codeforces Round #765 (Div. 2) 1625B Elementary Particles
题目描述(传送门)题目翻译:对于序列(a1,a2,…,an),可以用(al,al+1,…,ar)来表示其子序列,其中l表示左边界,r表示有边界(1 ≤ l ≤ r ≤ n)。比如对于序列(1 4 2 8 5 7)及边界l = 2, r = 4,则子序列为(4 2 8)。当两个序列的l和r中有一个不相同时,两个序列就被认为是不相同的序列。注意,即使两个子序列的元素相同且排列顺序一样,但只要l和r有一个不相同,两个子序列就是不相同的。比如有序列(1 1 1 1 1)以及两个子序列:l=1,r=3和l=2原创 2022-01-13 11:18:37 · 293 阅读 · 2 评论 -
Codeforces Round #764 (Div. 3) 1624C Division by Two and Permutation
题目描述(传送门)题目翻译:给你一个由n个正整数组成的数列a。你可以对其进行以下操作。在一次操作中,你可以将任意元素ai替换成⌊ai /2⌋,即将ai除以2(向下取整),也可以说是“整除2”。判断是否可以通过任意次(可能0次)上述操作将原数列变成一个全排列(all permutation,即用整数1~n以任意顺序排列而成的数列,且每个整数只出现一次)。比如,如果a=[1,8,25,2],n=4,则答案是yes,你可以进行以下操作:将8替换成⌊8/2⌋=4,则a=[1,4,25,2]。将25原创 2022-01-12 11:13:21 · 304 阅读 · 0 评论 -
Codeforces Round #764 (Div. 3) 1624D Palindromes Coloring
题目描述(传送门)题目翻译:你有一个由小写英文字母组成的字符串s。你可以为一些字符上色(用数字1~k来表示不同的颜色)。但没有要求所有的字符都必须上色。但是对于每种颜色,必须至少有一个字符是该颜色的。你可以交换两个相同颜色字符的位置任意多次。然后,会产生k个字符串,第i个字符串中所有的字符都是第i种颜色,并且字符的顺序与其在s中的顺序一致。你的任务是为字符串s上色,使得到的k个字符串都是回文字符串,并且使这k个字符串中最小的字符串的长度尽可能地长。回文字符串表示不论从左到右还是从右到左读该字原创 2022-01-11 13:56:49 · 227 阅读 · 0 评论 -
codeforces Round #681 (Div. 2) 1443B Saving the City
题目链接题目翻译:Bertown是一个由n个建筑组成的城市,且这n个城市成一条直线。城市的保安部门发现一些建筑下面有炸弹。有一张地图可以显示哪些建筑下面有炸弹,该地图是一个长度为n的字符串,如果第 i 个字符是 “1” ,这表示第 i 个建筑下面有炸弹,如果是 “0” ,表示第 i 个建筑下面没有炸弹。Bertown最厉害的士兵知道怎么在不毁坏建筑的前提下引爆炸弹。当第x个建筑下面的炸弹被引爆时,将会引爆相邻的两个建筑(x - 1和x + 1)下面的炸弹(如果相邻的建筑下面没有炸弹,就不会发生什原创 2020-11-04 13:32:08 · 221 阅读 · 0 评论 -
codeforces Round #681 (Div. 2) 1443A Kids Seating
题目链接题目翻译:今天幼儿园来了n个新小朋友,需要被安排到饭桌。饭桌的椅子从1到4n编号。两个小朋友不能坐同一张椅子。如果两个小朋友坐到编号为a和b的椅子上(a≠b),并且a和b满足以下条件的话,两个小朋友将会是淘气的:gcd(a,b) = 1 或者,a 整除 b 或者 b 整除 a 。gcd(a,b)表示a和b的最大公约数。比如,如果n = 3,并且小朋友们坐到2,3,4号椅子上,那么他们将会是淘气的,因为4能被2整除,并且gcd(2,3) = 1。如果小朋友们坐到4,6,10号椅子上,原创 2020-11-03 21:04:13 · 144 阅读 · 0 评论 -
codeforces Round #680 (Div. 2) 1445B Elimination
题目链接题目翻译:这是一个著名的奥林匹克竞赛,参赛者的数量超过100人。该竞赛由两个阶段组成:淘汰赛和决赛。至少有100个人会晋级决赛。相应的,淘汰赛由两场比赛组成。淘汰赛的结果是两场比赛的分数之和。但是不幸的是,裁判搞丢了淘汰赛的最终排名,只有第一场比赛和第二场比赛的排名。每场比赛,参赛者将以分数按非递增的顺序排名。在第一场比赛中,第100名的分数是a分,并且第1名到第100名(包括第1名和第100名)这100个人在第二场比赛都至少得到了b分。同样地,在第二场比赛中,第100名的分数是c分,原创 2020-11-02 15:25:34 · 364 阅读 · 0 评论 -
codeforces Round #680 (Div. 2) 1445A Array Rearrangment
题目链接题目翻译:给你两个数组a和b,每个数组由n个整数组成,以及一个整数x。请判断是否可以通过重排b中的元素,使得ai + bi ≤ x对任何 i 都成立(1 ≤ i ≤ n)。数组a和数组b中的元素都将以非递减的顺序读入。每个测试用例之间将以空行分隔。解题思路:为了让所有两个数的和尽可能小,最好的组合是 “最小值”+“最大值”所以只需要依次判断数组a剩余的数中的最小值+b剩余的数中的最大值是否小于等于x。代码:#include<iostream>#include<c原创 2020-11-02 14:51:52 · 174 阅读 · 0 评论 -
Educational Codeforces Round 97 1437C Chef Monocarp
题目链接题目翻译:厨师Monocarp刚刚把n道菜放进了烤箱。他知道第i道菜最佳的烹饪时间是ti 分钟。在任何正整数时间点T,Monocarp最多只能从烤箱中拿出一道菜。如果第i道菜在第T分钟拿出来,那么其不高兴值为 |T-ti| 。一旦菜从烤箱拿出来,就不能再放回去。Monocarp需要将所有菜从烤箱拿出来,求他能得到的最小不开心值。解题思路:动态规划,用数组f[i][j] 表示在第i分钟拿出前j道菜得到的最小不开心值。对于每个i和j,有两种情况,在第i分钟,要么取第j道菜,要么不取第j道原创 2020-10-28 16:30:17 · 1679 阅读 · 3 评论 -
Educational Codeforces Round 97 1437B Reverse Binary Strings
题目链接题目翻译:给你一个长度为n的字符串s,其中n是偶数,并且s是二进制串,即只由’0’和’1’组成。s有n/2个’0’和n/2个’1’(n是偶数)。在一次操作中,你可以翻转s的任意子串,一个字符串的子串指的是该字符串的一段连续的字符串。你需要执行多少次这样的操作,使得字符串中的’0’和’1’是交替出现的,即对于所有的i,si≠si+1都成立。比如:01010101…和10101010…解题思路:通过看题目给出的例子可以发现,下划线上的第一个数字1是连续两个1中的第二个1,下划线上的最后原创 2020-10-28 13:53:15 · 261 阅读 · 0 评论 -
Educational Codeforces Round 97 1437A Marketing Scheme
题目链接题目翻译:你得到了一个宠物店售货员的工作。你当前的任务是提升猫粮的销售量。其中一个战略是将多罐猫粮打包成一个商品出售,以折扣来吸引用户。假设你决定将a罐猫粮打包成一个商品,并且当一些顾客想要买x罐猫粮时,那么他会根据以下的贪心战略来购买:他会先买[x/a]个打包的商品,因为有折扣。然后再买剩下的几罐(x mod a),一罐一罐地买。[x/a]表示x整除a(向下取整),x mod a表示x对a取余。但是顾客也很贪心,因此如果顾客想要一罐一罐买 x mod a 罐猫粮并且(x mod原创 2020-10-28 13:18:30 · 261 阅读 · 0 评论 -
codeforces Round #678 (Div. 2) 1436C Binary Search
题目链接题目翻译:Andrey认为自己是一个成功的开发者,但事实上他直到最近才知道二分搜索算法。在阅读一些文献之后,Andrey知道了这个算法是为了在一个数列中快速地找到某个确定的值x。对于下标从0开始的数组a和整数x,下面是算法的伪代码:注意数组中数字的下标从0开始,整数相除结果向下取整。Andrey发现只有当数组是有序的,算法才起作用。然而,他发现这个说法是不正确的,因为有些乱序的数组,也能通过二分搜索算法找到数字x!Andrey想要给书的作者写一封信,但是在此之前他必须先找到一个长度为n原创 2020-10-26 15:55:56 · 298 阅读 · 3 评论 -
codeforces Round #678 (Div. 2) 1436B Prime Square
题目链接题目翻译:Sasha喜欢研究不同的数学对象,比如魔术方形。但是Sasha知道已经有很多人研究过魔术方形,因此他不想继续学习它们。相反,他发明了新的方形——一个素数方形。如果一个n×n的方形同时满足下面三个条件,那么就称其为素数方形:方形中所有数字都是正整数且不大于105;方形中不存在素数每一行、每一列的数字和都是素数。Sasha有一个整数n,要求你找出任意一个n×n的素数方形。Sasha确定存在这样的方形,所以请帮助他。我的解题思路:首先,我们要先找出这样一行数,所有数都是非原创 2020-10-26 14:52:52 · 162 阅读 · 0 评论 -
codeforces Round #678 (Div. 2) 1436A Reorder
题目链接题目翻译:给你一个由n个整数组成的数组a和一个整数m,问将数组a重新排列,能否使其满足等于m。不允许删除和添加元素。注意所有的运算都不取整,比如5/2=2.5。解题思路:分析题目给出的公式可以发现,题目其实就是在问数组a中所有元素的和是否等于m。代码:#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<vector&g原创 2020-10-26 14:04:34 · 162 阅读 · 0 评论 -
codeforces Round #677 (Div. 3) 1433D Districts Connection
题目链接题目翻译:小镇上有n个地区,第i个地区属于帮派ai。最开始所有地区之间都没有道路连接。你是这个城市的市长,并想建立n-1条道路连接所有地区(两个地区可以被直接连接,也可以通过其它地区间接连接)。如果两个属于同一帮派的地区被直接连接,则会起冲突。你不想让这种事情发生,所以你的任务是建立n-1条道路,使得所有的地区都是可以相互抵达的(可能通过其他地区抵达)并且任意两个直接连接的地区属于不同的帮派。或者回答无法建立满足条件的n-1条道路。你需要回答t个独立的测试用例。我的解题思路:可以先原创 2020-10-22 15:26:43 · 125 阅读 · 0 评论 -
codeforces Round #677 (Div. 3) 1433C Dominant Piranha
题目链接题目翻译:在鱼缸里有n条食人鱼,它们的大小分别是a1,a2,…,an,并从左到右编号。伯兰州立大学的科学家想要知道在鱼缸里是否存在占统治地位的鱼。如果一条鱼能吃掉鱼缸里所有的鱼(当然不包括它自己),那么就称这条鱼是占统治地位的鱼。当其它鱼被占统治地位的鱼吃掉时,他们没有反抗的余地。由于鱼缸特别狭窄而且长,在一次移动中,食人鱼只能吃相邻的两只鱼中的任意一只并且可以移动任意多次。更精确地说:食人鱼i可以吃食人鱼i-1,如果食人鱼i-1存在并且ai-1<ai.食人鱼i可以吃食人鱼i+原创 2020-10-22 14:35:53 · 234 阅读 · 0 评论 -
codeforces Round #677 (Div. 3) 1433B Yet Another Bookshelf
题目链接题目翻译:有一个能装n本书的书架。如果书架的第i个位置上有一本书,则ai=1,否则ai=0。题目保证书架上至少有一本书。在一次移动中,你可以选择一段连续的区间[l;r],每个位置上都要有书(即对于任意i,l<=i<=r,ai=1都成立),然后:将区间向右移动一个位置:对于所有的下标i(l<=i<=r),把下标为i的书移动到下标为i+1的位置。只有当r+1<=n并且下标为r+1的位置上没有书的时候才可以移动。将区间向左移动一个位置:对于所有的下标i(l<原创 2020-10-22 14:07:16 · 185 阅读 · 0 评论 -
codeforces Round #677 (Div. 3) 1433A Boring Apartments
题目链接题目翻译:有一个由10000个公寓组成的建筑,公寓的编号从1到10000(包含1和10000)。如果一个公寓的编号由相同的数字组成,则称这个公寓是无聊的。比如11,2,777,9999。我们的角色是一个捣蛋鬼,以下面的顺序不停地拨打所有无聊公寓的对讲机,直到有人回应:首先拨打所有由数字1组成的公寓,以递增的顺序(1,11,111,1111)。然后拨打所有由数字2组成的公寓,以递增的顺序(2,22,222,2222)。以此类推无聊公寓x的住户回应之后,我们才会停止拨打。我们想要知原创 2020-10-21 22:08:33 · 364 阅读 · 0 评论 -
codeforces Round #675 (Div. 2) 1422C Bargain
题目链接题目翻译:有时候想在讲价上达成一致不是一件容易的事。现在Sasha和Vova就没法达成一致:Sasha出了一个尽可能高的价格,然后Vova想要从中去除尽可能多的数字。说得更详细一些,Sasha出了一个价格整数n,Vova去除价格中的一段(连续的)非空子串,剩余的数字再组合在一起,结果就是最终的价格。比如,Sasha出价1213121,Vova可以去除子串1312,结果就是121。结果允许有前导零。如果Vova去除所有的数字,最终的结果就是0。Sasha想要提出一些限制,让Vova不能移除原创 2020-10-06 20:46:37 · 296 阅读 · 0 评论 -
codeforces Round #675 (Div. 2) 1422B Nice Matrix
题目链接题目翻译:当一个nm的矩阵的所有行和所有列都是回文时,称其为好矩阵。一个整数数列(a1,a2,…,ak),如果对于任意整数i(1≤i≤k),ai=ak-i+1均成立,则其为回文。Sasha有一个nm的矩阵,每一次操作他可以将任意位置的数字加一或者减一。Sasha想要将矩阵变成好矩阵。问最少需要多少次操作。解题思路:通过观察可以发现,对于任意位置上的数字,我们只需要将其关于中心对称的其他几个点上的数字保持相等,就可以让整个矩阵的所有行和列都是回文。另外还需要考虑特殊点,比如行数是奇数的原创 2020-10-05 16:16:21 · 367 阅读 · 0 评论 -
codeforces Round #675 (Div. 2) 1422A Fence
题目链接题目翻译:Yura的任务是建立一个简单四边形形状的封闭围栏(即一个围栏由四个栅栏围成)。他已经得到三个栅栏,长度分别是a,b,c。现在他需要计算出第四个栅栏的长度,使得这四个栅栏能围成一个围栏。请帮助Yura计算出第四个栅栏任何可能的长度。一个合法的简单四边形,其任意三个角不会在同一直线上,并且边不会相互交错。解题思路:直接将a,b,c中的最大值作为d的值。代码:#include<iostream>#include<cmath> using namespa原创 2020-10-05 15:49:51 · 308 阅读 · 0 评论 -
codeforces Round #670 (Div. 2) 1406B Maximum Product
题目链接题目翻译:给你一个数列a1,a2,…,an。找出五个下标i, j, k, l, t (i<j<k<l<t)使得aiajakalat 最大。解题思路:首先我们要根据最后结果是正还是负进行讨论。如果所有数都是负数,那么最后的结果肯定是负数,因此我们要输出最大五个数的积;如果所有的数不是负数就是0,我们直接输出0就可以了;最后一种情况就是至少有一个正数,只要正数与负数的个数大于代码:总结:...原创 2020-09-16 14:15:09 · 192 阅读 · 0 评论 -
codeforces Round #670 (Div. 2) 1406A Subset Mex
题目链接题目翻译:给你一个整数集(可能包含相同的数字)。你需要将它分成两个子集A和B(两个子集要包含相同数量的数字或者都是空集)。你需要找到最大的mex(A)+mex(B)。一个整数集的mex代表未在该整数集中出现的最小非负整数,比如:mex({1,4,0,2,2,1}) = 3mex({3,3,2,1,3,0,0}) = 4mex(∅) = 0(空集的mex就是0)解题思路:代码:总结:...原创 2020-09-15 15:34:08 · 154 阅读 · 0 评论 -
codeforces Round #669 (Div. 2) 1407B Big Vova
题目链接题目翻译:给你n个正整数a1,a2,…,an。你需要使用这些数组成一个数列b1,b2,…,bn,每个数只能用一次,且必须所有的数都被用到。另外ci表示GCD(b1,…,bi),即前i个数的最大公约数。组成的数列b要使得数列c1,c2,…,cn字典序最大。当且仅当数列a和b满足下列任一条件时,数列a的字典序小于数列b:a是b的前缀,但是a≠b。依次比较两个数列,两个数列第一次不相同是在下标为i的地方,且ai小于bi。解题思路:代码:总结:...原创 2020-09-11 17:13:23 · 188 阅读 · 0 评论 -
codeforces Round #669 (Div. 2) 1407A Ahahahahahahahaha
题目链接题目翻译:给你一个偶数长度,由0和1组成的数组a。数组元素的编号从1到n枚举。你最多能够去除n/2个数字使得数组的交替和等于0(a1-a2+a3-a4+…=0)。也就是说编号为奇数的数字和等于编号为偶数的数字和。你可以去除任意位置的数字。比如,如果你有一个数组a = [1,0,1,0,0,0],你可以去除编号为2和4的数字,这样a会变成[1,1,0,0],其交替和为1-1+0-0=0。解题思路:因为数组只由0和1两种数字组成,这表示0和1中至少有一种数字的数量大于等于n/2。而题目要求最原创 2020-09-10 10:18:00 · 161 阅读 · 0 评论 -
codeforces Round #668 (Div. 2) 1405C Balanced Bitstring
题目链接题目翻译:一个bitstring是一个只包含字符’0’和’1’的字符串。如果一个bitstring的每个长度为k的子字符串拥有相同数量的’0’和’1’(数量各为k/2),则称其为k-balanced。给你一个整数k和一个只由字符’0’,‘1’和’?‘组成的字符串s。你需要判断是否可以通过将’?‘替换成’0’或’1’,使其变成k-balanced。通过删除字符串b的前几个字符和后几个字符,使得字符串b变为字符串a,则称a是b的子字符串。解题思路:代码:总结:...原创 2020-09-09 21:11:03 · 129 阅读 · 0 评论 -
codeforces Round #668 (Div. 2) 1405B Array Cancellation
题目链接题目翻译:给你一个数组a,包含n个整数,并且a1 + a2 + … + an = 0 。在一次操作中,你可以选择两个不同的下标i和j(1<=i,j<=n),将ai减一,aj加一。如果i<j,这个操作就是免费的,否则此操作花费一枚硬币。问为了让所有的元素都变成0最少需要花费多少枚硬币?解题思路:我们可以统计未被免费操作掉的正数的和,保存到变量ans中。显然ans就是最后需要花费的硬币枚数。遍历每个数,当出现正数时,直接加入ans中;当出现负数时,说明之前累加的正数现在可原创 2020-09-08 10:26:54 · 154 阅读 · 0 评论 -
codeforces Round #668 (Div. 2) 1405A Permutation Forgery
题目连接题目翻译:一个长度为n的permutation是一个由整数1~n以随意顺序组合的数组。比如[2,3,1,5,4]就是一个permutation,但是[1,2,2]就不是permutation(2出现了两次),[1,3,4]也不是permutation(n=3但是4在数组中)。p是一个长度为n的permutation,我们定义fingerprint F(p) 为数组p任意两个相邻的元素的和组成的有序数组, 即F(p)=sort([p1+p2, p2+p3, … , pn-1+pn])。比如,原创 2020-09-08 10:19:15 · 120 阅读 · 0 评论