换新马蜂了
2026-03-21 13:06:58
发布于:浙江
rt.
我感觉不说会被判作弊,很阴。
目前是这样的:
#include <iostream>
#include <array>
#include <cmath>
#define int long long
int block,n,len;
std::array<long long,3000000> left,right,a,add,pos;
void init(){
block=std::sqrt(n);
len=n/block;
if(n%block)len++;
for(int i=1;i<=len;i++){
left[i]=(i-1)*block+1;
right[i]=i*block;
}right[len]=n;
for(int i=1;i<=n;i++){
pos[i]=(i-1)/block+1;
}
}
void update(int l,int r,int c){
int le=pos[l],ri=pos[r];
if(le==ri)for(int i=l;i<=r;i++)a[i]+=c;
else{
for(int i=le+1;i<ri;i++)add[i]+=c;
for(int i=l;i<=right[le];i++)a[i]+=c;
for(int i=left[ri];i<=r;i++)a[i]+=c;
}
}
int query(int idx){
return a[idx]+add[pos[idx]];
}
signed main(){
std::cin >> n;
for(int i=1;i<=n;i++)std::cin >> a[i];
int t=n;
init();
while(t--){
int op,l,r,c;
std::cin >> op;
if(op==0){
std::cin >> l >> r >> c;
update(l,r,c);
}else{
std::cin >> l >> r >> c;
std::cout << query(r) << std::endl;
}
}
return 0;
}
就是加上了 std,后期会改火车头。signed 随缘写,如果题目简单我会写 <iostream> 或 <cstdio>/<stdio.h>。本人行为怪异,竞赛中可能会火车头万能头混用,望不要判我作弊。现在大部分是火车头,如果很复杂的题目会用万能头,因为头文件背不下来:)
对于数组,一般来说静态数组用 array/vector 嫌麻烦可能会永普通数组,动态数组用 vector,不排除混用的可能性
保证竞赛开始后不会修改帖子
全部评论 11
将工单状态设置为
2026-03-14 来自 湖北
2孩子比赛时录个屏把
2026-03-18 来自 广东
1录三天吗
2026-03-19 来自 浙江
2这么能录
2026-03-21 来自 重庆
0何意味
2026-03-21 来自 浙江
0
wow,灰色名字的蒟蒻
2026-03-07 来自 浙江
1其实不会太看这个,还是看代码核心部分与AI的相似度
2026-03-03 来自 广东
1主要是有点怕()
2026-03-03 来自 浙江
0
d
2026-03-19 来自 浙江
0d
2026-03-19 来自 浙江
0d
2026-03-19 来自 浙江
0hhh,雀氏
2026-03-03 来自 浙江
0std::这个太容易被判AI了
2026-03-03 来自 上海
0提前说好就行
2026-03-03 来自 浙江
0反正是我自己写的怕啥
2026-03-03 来自 浙江
0有道理
2026-03-03 来自 上海
0
此评论证明发布时间,因为后期会修改
2026-03-03 来自 浙江
0骗你的还是没用,我大可以提前开一个帖子写一个评论,赛后对着 AI 的码风修改这个帖子
2026-03-15 来自 浙江
2我去有道理
2026-03-15 来自 浙江
0我该如何证明我的代码是自己写的
2026-03-15 来自 浙江
0
d
2026-03-03 来自 浙江
0









































有帮助,赞一个