CodeForces 1217&CodeForces 1213 A~D

CodeForces 1217 A.Creating a Character
给你三个数a,b,c,问把c分给a和b,并且保证分配后a>b有几种分法
水题,但是一定要注意防止负数出现
CodeForces 1217 B.Zmei Gorynich
一个怪兽,共x个头,你可以用n种方式去攻击他,但是若某种方法没有杀死他,他会长出对应数量的头,问最少需要攻击几次才能把他杀死或不能杀死输出-1.水题,考虑伤害最大的方法,若不能杀死,则考虑差值最大的伤害方式即可。
CodeForces 1217 C.The Number Of Good Substrings
给你一串二进制字符串,问有多少子串满足其代表的十进制数等于其长度。看了看题解,别人的思路是若子串十进制大于子串长度的,就通过前导零来弥补,字符串最长是2e5,这么来说,转化成的十进制最大也是2e5,2^20>2e5。这样的话,我们可以计算前导零的长度,然后枚举20位,判断符合条件的字符串有多少。
CodeForces 1217 D. Coloring Edges
给你一个有向图的信息包括n个顶点及m条边,你需要把这个图的每条边进行染色,使得没有一个环只有一个颜色(至少两种颜色),问你最少需要几种颜色及具体染色方案。
CodeForces 1213 A.Chips Moving
给你一些坐标,要求把坐标统一起来,每次移动两个位置免费,移动一个位置花费1个单位的money,最少需要多少钱。水题,直接求奇数和偶数哪个少即可。
CodeForces 1213 B.Bad Prices
给你n个数,对于这其中的某个数,若他后面出现了比他小的数,则该数为bad price,问共有几个bad price这个题我想着暴力肯定要超时,所以就没做,后来看了题解,只要从后面找到一个最小的数,若此数大于这个最小的数,则这个数是坏数字,倒着搜索,不断更新最小值,进行比较即可。
CodeForces 1213 C.Book Reading
给你两个数n,m,在1~n中若有一个数是m的倍数,则把这个数的个位数加起来,输出这些数的个位数的和。
第一遍暴力超时了,第二遍是分开计算,分别计算出以1 ~9为个位数的数的个数,再对应算出其能整除m的数,最后算出他俩的乘积,累加即可。
CodeForces 1213 D.Equalizing by Division
给你n个数,每次可以对其中一个数字整除二,问至少操作几次才能使这n个数中恰巧有k个相等。简单版本直接暴力就能ac,每个都右移操作一次,最后统计即可。

CodeForces - 616D是一个关于找到一个序列中最长的第k好子段的起始位置和结束位置的问题。给定一个长度为n的序列和一个整数k,需要找到一个子段,该子段中不超过k个不同的数字。题目要求输出这个序列最长的第k好子段的起始位置和终止位置。 解决这个问题的方法有两种。第一种方法是使用尺取算法,通过维护一个滑动窗口来记录\[l,r\]中不同数的个数。每次如果这个数小于k,就将r向右移动一位;如果已经大于k,则将l向右移动一位,直到个数不大于k。每次更新完r之后,判断r-l+1是否比已有答案更优来更新答案。这种方法的时间复杂度为O(n)。 第二种方法是使用枚举r和双指针的方法。通过维护一个最小的l,满足\[l,r\]最多只有k种数。使用一个map来判断数的种类。遍历序列,如果当前数字在map中不存在,则将种类数sum加一;如果sum大于k,则将l向右移动一位,直到sum不大于k。每次更新完r之后,判断i-l+1是否大于等于y-x+1来更新答案。这种方法的时间复杂度为O(n)。 以上是两种解决CodeForces - 616D问题的方法。具体的代码实现可以参考引用\[1\]和引用\[2\]中的代码。 #### 引用[.reference_title] - *1* [CodeForces 616 D. Longest k-Good Segment(尺取)](https://blog.csdn.net/V5ZSQ/article/details/50750827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Codeforces616 D. Longest k-Good Segment(双指针+map)](https://blog.csdn.net/weixin_44178736/article/details/114328999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>