随笔 - 18  文章 - 0  评论 - 2  阅读 - 403

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简单???不过题目蛮好的。就是不知道有没有更优的解法!

posted on   yl_neo  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示