社区讨论
关于时限
学术版参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mko1cu02
- 此快照首次捕获于
- 2026/01/21 21:05 4 周前
- 此快照最后确认于
- 2026/01/21 21:30 4 周前
以下为CF1074的div.4的D题和std,我们改了一下题面与数据范围,我们将时限设为了三倍std,但是在检验的时候ds的代码过了,豆包的TLE了。std跑拉满的数据是850ms左右,是否要增加时限?
请注意该题数据量极大,时间已设置为3倍std时限
推荐使用下列代码进行时间优化,并选择C++20(O2)提交
CPPios::sync_with_stdio(false);
cin.tie(nullptr);
题目背景
光头熊是一位银行管理员,用户们每天都会在银行进行操作,而光头熊要保证银行的操作合法。
题目描述
有一个包含 个整数的操作数组 。执行 次操作。第 次操作会将第 个用户的账户财富为设。
由于银行内部有规定,每当任意一个用户的任何财富大于 时,银行就会启动跑路计划,使每个用户的财富都会被重置为其原始值,然后带着钱跑路去开新的银行,如果光头熊不能正常处理,它将会被开除。
在所有操作执行完毕后,输出每个用户的账户财富。
输入描述
输入的第一行包含一个整数 ()——测试用例的数量。
每个测试用例的第一行包含三个整数 (,)——操作数组 的长度、执行的操作次数,以及银行内部规定的上限值。
第二行包含 个整数 ()——操作数组 。
接下来的 行每行包含两个整数 (,)对操作数组执行的操作。
保证所有测试用例的 的总和以及 的总和均不超过 。
输出描述
对于每个测试用例,在所有操作执行完毕后,输出数组 。
输入输出样例 #1
输入 #1
CPP3
4 5 3
1 2 1
1 4
2 4
3 6
5 1 1 1 1
1 1
1 1
2 1
4 1
1 0 0 0
1 1
4 4 3
3 3 4
4 4 4
输出 #1
CPP3 4 4
1 1 1 1
1 0 0 0
说明/提示
对于第一个测试用例,操作数组 变化如下:
- 在所有操作之前,。
- 第一次操作后 。
- 第二次操作后,,但由于 ,计算机崩溃,。
- 第三次操作后,。
- 第四次操作后,。
对于第三个测试用例,每次操作都会导致超出上限,因此 。
测试数据与约定
对于Subtask #1时限为
对于Subtask #2时限为
对于Subtask #3时限为
每组样例分值不相同
以下为std
CPP#include<bits/stdc++.h>
using namespace std;
const int N = 2 * 1e5 + 100;
long long t,n,m,h,a[N],b[N],c[N],d[N],vis[N];
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>t;
for(int i = 1;i<=t;i++){
long long cnt = 0;
cin>>n>>m>>h;
for(int j = 1;j<=n;j++){
cin>>a[j];
d[j] = a[j];
}
for(int j = 1;j<=m;j++){
cin>>b[j]>>c[j];
vis[b[j]] = 0;
}
for(int j = 1;j<=m;j++){
long long now = b[j];
if(vis[now] < cnt)a[now] = d[now],vis[now] = cnt;
a[now] += c[j];
if(a[now] > h){
a[now] = d[now];
cnt++;
vis[now]++;
}
}
for(int j = 1;j<=n;j++){
if(vis[j] < cnt)cout<<d[j]<<" ";
else cout<<a[j]<<" ";
}
cout<<endl;
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...