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 签到(找规律,快速幂)

2021 年百度之星·程序设计大赛 - 初赛二 1003 魔怔(并查集,联通性,欧拉回路)

2019 年百度之星·程序设计大赛 - 初赛二

2019 年百度之星·程序设计大赛 - 初赛三

2020百度之星程序设计大赛初赛二