Codeforces Round #155 (Div. 2)

博客详细分析了Codeforces Round #155 (Div. 2)的题目A、B、C。A题通过排序找出数列中相同数字的下标。B题探讨了求解问题的不同思路。C题是一道字母变换问题,采用贪心策略解决,但初次提交因超时失败,最终发现是字符串长度计算导致的时间复杂度问题。
摘要由CSDN通过智能技术生成

A:找出数列中两个相同的数字,并输出原数组的下标;思路就是用个结构体储存数值和原数组下标,接着排序后输出就行了。


B:这问题可以简化为求哪个点的的值最大,比赛时没想到。。比赛后看别人的代码才恍然大悟。。不过我觉得自己的方法也没什么错啊,但就是不对TAT。。


C:这题不错啊,赛后A的,就是给出两个串s,t,求s最少经过多少次字母变换,使得s中每个字母的数目和t的一样;做这题的时候,因为实力有限,YY了一天(还好YY出来的思路是对的)。。思路是贪心的,就是线扫每个字符串,若当前字符在s中的数量比t中的少,就看能否替换字典序比当前字符小的字母,若要替换的字典序比当前字母大的就尽量往字符串后面填。。如s:ABA  t:ABC,当扫描到第一个A的时候,发现s中A有两个,t中A只有1个,则需替换成C,因为C的字典序比A大,所以尽量在后面替换,所以应将第二个A替换成C,答案是ABC;

 

这题写的时候,调试的时候对着数据调试,不过这习惯非常不好,因为比赛时是不可以看错在哪组数据的;觉得差不多了。。

就提交。。居然是TLE,以为哪里循环多了。。然后就修改了下,少了些循环,再提交又TLE,连续TLE了几次。。。然后我怀疑不是算法问题了。。而是哪里有点不对,然后翻了翻别人的代码,结果将自己读取字符串长度改了下就A了。。晕死了+_+;


超时的循环,个人认为是每

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值