拼潦 发表于 2025-10-5 14:14:20

AT_abc413

又是战犯的一周啊。
再见宣言真好听。
A.Content Too Large

translation:

判断是否有 \(\sum_{i=1}^n A_i\le M\)。
无脑题,不给代码了。赛时除了手速有点慢以外没啥别的问题。
B.cat 2

translation:

给定 \(n\) 个字符串 \(S_1,S_2,\dots,S_n\),任选两个不同的字符串前后连接可以得到 \(n(n-1)\) 个字符串。求这 \(n(n-1)\) 个字符串中有多少个不同的字符串。
\(n\le 100\),所以对照题面逐句实现即可,拿个 set 去下重就没有然后了。不给代码。
C.Large Queue

translation:

有一个队列,初始为空。有 \(q\) 次操作,如下:
1 c x:在队列末尾插入 \(c\) 个 \(x\)。
2 k:弹出队首的 \(k\) 个数,并输出他们的和。
逐句实现显然不现实。注意到对于某个数 \(x\),如果我们知道了它在需要弹出的数中出现的次数,那么可以 \(O(1)\) 求贡献。于是记录每个数插入后的结尾位置,每次相当于查询一段区间的和。可以通过 lower_bound 出边界处的两个元素来计算。中间的数暴力扫一遍,由于查询的区间是连续且不重合的,所以每个数最多会被暴力扫一遍,时间复杂度正确,为 \(O(n\log n)\)。
code

#includeusing namespace std;#define int long longint n,ed,x,fr=1,tot;signed main(){        cin>>n;        while(n--){                int op;cin>>op;                if(op==1){                        int c;tot++;                        cin>>c>>x;                        ed=ed+c;                }                else{                        int k;cin>>k;                        int l=lower_bound(ed+1,ed+tot+1,fr)-ed;                        int r=lower_bound(ed+1,ed+tot+1,fr+k-1)-ed;                        int ans=(ed-fr+1)*x;                        for(int i=l+1;i

嶝扁 发表于 2025-10-29 01:12:59

分享、互助 让互联网精神温暖你我

刃减胸 发表于 2025-12-14 11:21:33

谢谢分享,试用一下

姜删懔 发表于 2025-12-15 03:27:19

前排留名,哈哈哈

姬宜欣 发表于 2025-12-31 10:15:01

懂技术并乐意极积无私分享的人越来越少。珍惜

裆趾针 发表于 2026-1-4 07:00:38

过来提前占个楼

匡菲 发表于 2026-1-8 04:54:06

懂技术并乐意极积无私分享的人越来越少。珍惜

狙兕 发表于 2026-1-17 08:53:24

不错,里面软件多更新就更好了

嶝扁 发表于 2026-1-18 14:46:01

前排留名,哈哈哈

孓访懔 发表于 2026-1-19 00:01:22

过来提前占个楼

甘子萱 发表于 2026-1-19 04:19:41

分享、互助 让互联网精神温暖你我

阜逐忍 发表于 2026-1-19 07:17:52

分享、互助 让互联网精神温暖你我

阜逐忍 发表于 2026-1-20 16:54:29

收藏一下   不知道什么时候能用到

砂歹汤 发表于 2026-1-23 07:12:06

谢谢楼主提供!

百里宵月 发表于 2026-1-23 08:18:14

yyds。多谢分享

章娅萝 发表于 2026-1-24 08:10:32

分享、互助 让互联网精神温暖你我

迫蔺 发表于 2026-2-3 19:06:57

收藏一下   不知道什么时候能用到

各卧唯 发表于 2026-2-6 05:02:12

这个好,看起来很实用

缑娅瑛 发表于 2026-2-7 21:06:59

感谢发布原创作品,程序园因你更精彩

劳欣笑 发表于 2026-2-8 10:59:45

收藏一下   不知道什么时候能用到
页: [1] 2
查看完整版本: AT_abc413