2021 年百度之星·程序设计大赛 - 初赛二 1004 净化(模拟)
Posted 小哈里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021 年百度之星·程序设计大赛 - 初赛二 1004 净化(模拟)相关的知识,希望对你有一定的参考价值。
problem
solution
//1004
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL mod = 998244353;
const int maxn = 1e5+10;
LL a[maxn];
int main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T; cin>>T;
while(T--){
LL n, m; cin>>n>>m;
LL sum = 0;
for(int i = 1; i <= n; i++){
cin>>a[i]; sum += a[i];
}
//前两轮
LL x = 0, mx = -1e18;
int ok = 0;
for(int c=1; c<=2; c++){
for(int i=1; i <= n; i++){
x += a[i];
if(x<0)x = 0;
mx = max(mx, x);
if(x>=m){cout<<c<<"\\n";ok=1;break;}
}
if(x>=m){ok=1;break;}
}
if(x>=m){ok=1;continue;}
//答案
if(sum<=0)cout<<"-1\\n";
else cout<<2+(m-mx+sum-1)/sum<<"\\n";
}
return 0;
}
/*
2
4 100
3 -5 10 -5
3 9
3 -10 6
31
2
*/
以上是关于2021 年百度之星·程序设计大赛 - 初赛二 1004 净化(模拟)的主要内容,如果未能解决你的问题,请参考以下文章
2021 年百度之星·程序设计大赛 - 初赛二 1005 水题(贪心结论)
2021 年百度之星·程序设计大赛 - 初赛二 1001 签到(找规律,快速幂)