ABC 377 Review

ABC 377 Review

A

模拟题,但是好像wa了一发,有点幽默

Code

#include<bits/stdc++.h>
using namespace std;
char s[5];
int main()
{
for(register int i=1;i<=3;++i)s[i]=getchar();
sort(s+1,s+4);
if(s[1]=='A'&&s[2]=='B'&&s[3]=='C')cout<<"Yes";
else cout<<"No";
return 0;
}

B C

都是模拟题,甚至但是C题还是需要注意一下细节,去掉算重的答案就可以了。

CodeB

CodeC

D

太经典了,一卡题就坐牢,这次坐了一个小时的牢。

分析

其实还是想到了算法的。考虑如果一个左端点固定的话,那么它的右端点可以怎么取?

那么很显然地可以想到如下算法流程:

1m 枚举左端点,每次经过了一个左端点,就把这个左端点和它对应的右端点一起删除掉。

那么假设当前枚举到了 x ,我们最多能取的右端点,肯定是当前还存在的最小右端点 1

这样我们在这个位置上的 ans 就是 (Minr1)x+1=Minrx

细节

如果当前的区间已经被全部删没了,那么实际上还是可以产生答案,所以我们还要插入一个 m+1 的右端点。

左右端点都是可重的,因此对于每一个左端点,我们都要开一个vector来记录有哪些右端点与其对应,才可以方便删除。

Code

总结

又强化了set的使用技巧,学到了可重点对的记录方式。

最重要的是想到了就去写,代码能力就是不断锻炼出来的。

没有思路就换个角度,或者是开另外一道题。

posted @   Hanggoash  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
动态线条
动态线条end
点击右上角即可分享
微信分享提示