Codeforces Round 653 (Div. 3)
A*800: 给定 x,y,n。 找出k%x==y && k<=n。
让 t=(n-y)/x, 答案就是t*x+y
B*900: 如果说n有除了2,3以外的质数,答案就是-1
让c2=2出了多少次, c3情况相同
如果c2>c3,答案也是-1因为不可能移除掉那些2
其他情况:答案就是c3+(c3-c2),= c3-c2次乘上2,c3除6
C*1000: 答案就是有多少法个 )能不能匹配一个 (
D*1400:额,这题的话呢我们就需要看每个mod k的出现次数, 图个mod k=0那就无视
需要等多久?答案就是 max(s[x]*(k-1)+x+1) ,s[x]为x的出现次数。
E1*1600: 如果两个人都不喜欢,那么根本没有必要用那本书
让AB表示两个人都喜欢, A是alice喜欢, B是bob喜欢。
那么我们可以枚举选多少个AB类型。让它为x。 那么我们必须选k-x种A和B。可以发现到就是拿最小的那几个。
前缀和即可。需要特判有没有x种AB, k-x种A和B。
E2*2500: 这个题目是毒瘤题目。想了一下hmmmm有点头绪(dp?)。
但是写不出来。。。看tag。三分?
注意:数组不要用pair<int,int>(TLE) 用个struct (109ms) WTFF!!!
三分枚举拿多少种AB,和上一题类似但是之后就是用贪心取最小的满足m个数值。
需要特判有没有x种AB, k-x种A和B。特判 k+k-x>m不行因为:
x种AB, k-x种A和B。 x+2(k-x)>m == 2*k-x>m
发现到三分可以用二分的方式做: f(x)<=f(x+1) 这个类型
F*2400: 啊这题考虑没有共同的数值时, 让ex[i]表示数值a[i]因该去哪个位置?
那么我们怎么知道可以不可以到达呢? 这时候就可以看到inversion当他是odd时就不行了。
但是如果有相同的值我们就可以调换他们的ex[i]。
让现在的min移到最前面然后做下一个min。。。
让p=最小值的位置, p一直减二,因此可能p=ex[i]+1那么我们现在就是要做两次swap(ex[i]) 那么可以移到最前了。
最后三个要分别做一下。然后就过了。
简单概括一下:
A:简单
B:特别
C:稍微可以好点
D:蛮喜欢
E1:简单的做法
E2:三分! 啊pair<int,int> 好毒,以后用custom struct了
F:怎么比E2简单???不过题目蛮好的。就是不知道有没有更优的解法!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!