巨弱的蒟蒻求助
查看原帖
巨弱的蒟蒻求助
1379071
LOVE_WHY楼主2024/10/20 20:45
#include <iostream>
using namespace std;
int n,q,cai[200001],start[200001];
long long w;
int main() {
	scanf("%d%d%d",&n,&q,&w);
	for (int i=1; i<=n; ++i) {
		scanf("%d",&cai[i]);
		start[i]=cai[i];
	}
	for (int lun=1; lun<=q; lun++) {
		int l,r,d,total=0;
		scanf("%d%d%d",&l,&r,&d);
		for (int i=1; i<=n; ++i) {
			cai[i]=start[i];
			if (i>=l && i<=r) {
				cai[i]+=d;
				start[i]+=d;
			}
			total+=cai[i];
		}
		int tmp = 0;
		long long hp = w;
		while (hp > 0) {
			int si=0;
			for (int i = 1; i <= n; ++i) {
				if (hp <= cai[i]){
					si=1;
					break;
				}
				hp -= cai[i];
				cai[i] *= 2;
				total += cai[i];
				tmp++;
			}
			if (si) break;
		}
		cout << tmp << endl;
	}
	return 0;
}

期望得分45pts,但WA on #1~7、11~12。
看着大佬们线段树加二分的神仙题解,我陷入了沉思
希望能在代码基础上解决WA的问题,解决必关

2024/10/20 20:45
加载中...