自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 VP Codeforces Round 905 (Div. 2)

当k为2 , 3 , 5时k为质数,所以不能被分解。因此只变一个数是最优的。一种是只动一个数,另一种是分解成2 * 2,然后我们给数列生成两个偶数。求这两种情况的最小值。我们发现,从1到n答案是单调不下降的。所以我们可以递推去算每个数的贡献。每个数的贡献其实就是在他前面出现的第一次出现的数的数量。当然在确定这个数是最后一次出现后才能累加进答案里。算每个字符出现的次数,重点看奇数的。如果奇数字符数 - k <= 1 就可以生成串。

2025-01-14 13:29:01 332

原创 HHKB Programming Contest 2025(AtCoder Beginner Contest 388) A-E

用前缀和的思想,把一个数能给后面的贡献用线段表示。然后在线段开头那个位置加一,结尾后面那个位置减一,就可以算出来一个数拿了多少前面给的,能给多少后面的。前半部分,后半部分分成两堆。然后按顺序找能匹配的。题目已经给按顺序了的,直接二分刚好满足的那个,后面的就都是。小于100,直接每次暴力算再排序。取第一个字符然后接上UPC。

2025-01-12 20:35:02 289

原创 VP Codeforces Round 904

我们用前缀和的思想。我们发现,最小的总是出现在第一和最后一个位置。那接下来我们分两种情况讨论,一种只要开头在1不加,另一种结尾在m不加。在这两种情况下找最大值。然后我们在map里,一个点是开头就贡献加一,然后把结尾后一个格子贡献减一。然后扫描一遍找最大。从后往前递推求解“把后面所有的1全部挪到从这个位置开始”需要多少个操作。再遍历一遍去重,最后看后面有几个0,以及剩下几个没输出。有几个0前面输入几个0,差几个输出几个-1.k小于10,直接从x开始暴力枚举,然后求每个位置的数位和。

2025-01-10 21:16:39 134

原创 VP Educational Codeforces Round 156

找最前面且si>s i+1的点删。可以用单调栈来判断删点的顺序,把每次删的位置用队列存,最后模拟删除的操作(我是用‘*’覆盖,这样子可以直接用队列里的顺序)最后找到pos在第几次删除后的字符串再选出。思路:先确定两个数,a = 1 ,b = 2。可以知道这样子最有利于分出三个数。然后用n减,得第三个数c。第三个数如果被3整除,就b++ , c--。若这样b又被整除了继续。如果b>=c就输出no。考虑二分,二分一个距离w,然后根据这个w判断家和主人公是否在灯的范围内。如果同时在范围内,且w最小就是答案。

2025-01-09 22:17:03 236

原创 AtCoder Beginner Contest 381 A-E题解

考虑到1和2的个数可以前缀和,这样我们可以o1求出每个斜杠在查询区间内前后有几个1或2。现在问题是,区间内若有多个斜杠,怎么找到最优的。这里发现每个斜杠贡献是单峰函数,所以我们预先存一下每个斜杠的位置。加入一个数,看看前面有没有一样的数加进去过,有的话就加。思路:首先判长度是都为奇数,再判断前一半是不是都是1,中间是不是/,后面一半是不是都是2。找相邻的两位,看看是不是一样。同时用map记录有没有出现过,保证一个字符出现不超过两次。思路:直接暴力枚举每个斜杠,找到一个就向两端延伸。

2024-11-26 01:12:07 379

原创 AtCoder Beginner Contest 379

思路:不要被题目骗,直接用队列模拟。关于长度,我们开一个变量记录当前时间,每次插入这个植物种植的时间进入队列。然后从第一个有棋子的地方开始,铺到下一个有棋子的地方。然后不够就输出-1,有多余的话,就给下一个有棋子的点位(因为你早晚都要给后面的地方铺上,不如先给到下个地方)思路:找到连续的O串,记录有几个。然后用类似竖式的方式加起来,这里用到高精加的思路,就是要记得进位。思路:先看棋子数量一共有多少是不是刚好是n个,不是就输出-1.注意,题目给的数据不是有序的,请务必先排序!思路:字符串读入,然后交换位置。

2024-11-19 16:40:53 328

原创 AtCoder Beginner Contest 380 题解A-E

思路:字符串读入,用三个变量统计123的出现次数然后判断合不合法。思路:给你一个字符串,输出每个‘|’之间‘-’的数量。比较简单,直接找到一个|后就接着找有几个连续的-就可以,方法有很多种。思路:很多人被长题目误导了,其实题目非常简单。找第k个连续的1段,然后整体移动到k-1段后面。可以存下当前段的歧视位置和长度,和上一段的位置和长度,然后找到第k段后,就把当前段复制,删除,再从前一段末尾插入就可以了。

2024-11-19 11:13:14 421

原创 AtCoder Beginner Contest 378 A-E题解

思路:统计每个气球各有多少个,有超过两个就可以操作一次。

2024-11-05 01:42:59 1449

原创 AtCoder Beginner Contest 377 A-E题解

关键在于怎么判断重复的点。先把每个区间右端点能允许的最小l标记,再从小到大枚举r,如果前面的l比当前l还大,就只能顺着前面的l才能保证合法(依题意)因为从小到大,l也不会超过r。设最小的符合条件的l的下表为a,那我们只要找到每个r对应的a,再求和就是答案。我们只要算每个环长度,算算会走到哪里,就可以算出答案。,那么就没有新的约束条件,就让他等于上一个推出来的a。首先如果只有一个区间,右端点可以选的l就是在l+1 - r这个范围内。模拟,开两个bool数组,记录每行每列有没有被标记,依题意就可以解决。

2024-10-30 16:15:36 700

原创 AtCoder Beginner Contest 376 A-E

先把盒子和玩具排序,然后贪心。如果放不了就用掉买的那个箱子的机会。因为只能额外多买一个箱子,要注意最多只能放弃一个玩具,不满足就输出-1。bfs模板, 从1号点为起点一直一层层搜下去。如果满足某个点能回到原点,那这个路径的长度就是答案。模拟考细节,要注意特判好多情况。我是直接把不可能情况赋无穷大,最后找到条件允许的方向。思路:每次记录两次点击之间的时间差值 , 满足条件就++答案,随后输出。注意dfs会超时,只能用bfs,或者用奇奇怪怪的方法剪枝也行。枚举每个ai , 至于bi ,每次选最大的k个就可以。

2024-10-29 17:36:38 290

原创 KEYENCE Programming Contest 2024(AtCoder Beginner Contest 374)A-D题解

读入字符串,检查最后几个字符是不是san。

2024-10-06 19:42:49 457

原创 Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round) A-C1

如果这个数出现过,并且还有多余的。就可以拿来填补下一个没有出现过的数字。所以,只要这个数模x与要填补的数模x一样就可以互相填补。如果有可能完成演示,则默认每个人都去了最优的点。如果这个人已经讲过了,则再次遇到直接跳过。重点关注一次也没讲过的人,他们的相对位置改变不了。一个人演示完了后,可以去任何一个位置。我们不需要考虑它究竟去了哪里,只要知道他去了最有利于满足题目要求的位置。这样就大大化简了题目。因为只能加不能减,所以我们判断这个数用完没有,用完了再加入。思路:贪心,先升序排序,每次组合当前最小的两个数。

2024-10-06 17:16:01 946 1

原创 ABC-373 A-E题解

每搜索到一个点,就给这个点根据这个边的权值,赋予满足起点终点关系的权值。再去判断,排名除了他自己的前M人中,排名比自己低的人,用上剩余的票能不能让排名超过自己。(因为排名比自己高的人不需要再拿剩余的票,所以贪心地给那些排名靠后的人就好了)那么二分的check,实际上就是检查票数在除去当前候选人本身的前M个候选人,能不能全部达到。找到要按的字母和上一个字母的距离,累加一下输出。读入每一个字符串,判断字符串长度和当前字符串的出现的次序是否一致即可。遍历两个数组,找到两个数组中的最大值,相加直接输出即可。

2024-10-01 22:43:25 1628 1

原创 CF Round 794(div3)A-D题解

最后的叶子数,就是最后k年的叶子的数量。那问题就变成了,求区间内长奇数片叶子的年份,是奇数还是偶数。而奇数片叶子的年份如果是奇数,则总答案为奇数(奇+奇+奇=奇)。之后,我们再遍历一遍原数组,枚举起始日,找到工作贡献最多和工作贡献最少的那一天,就是答案。如果现在的钱的总和tot已经超过这个值,则不用加x就会满足情况,所以输出0。有了平均钱数,乘以人数n,得到“临界状态的总数”,叫它ans。有超过一半的人的钱乘上两倍还比平均的钱少,罗宾汉就会出现。否则,临界值与现在总和的差值,就是要加上的x的大小。

2024-09-23 00:36:55 1769

原创 abc372题解(A-E)

翻译:给你一个由小写英文字母和组成的字符串 S。请找出从 S 中删除所有后得到的字符串。思路:直接读入字符串s,枚举每个字符,如果是.就跳过,不是则输出。

2024-09-22 15:43:13 712

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除