WA 90 求助!
查看原帖
WA 90 求助!
804607
rainygame楼主2023/3/4 10:28

按照第一篇题解的方法,我写下了如下代码:

#include <stdio.h>
#include <cmath>
#include <string.h>
#define MAXN 100001

inline int uread(){
	int x(0);
	char ch;
	while ((ch = getchar()) < 48);
	do{
		x = (x<<1)+(x<<3)+(ch^48);
	}while ((ch = getchar()) > 47);
	return x;
}

int n, k, s;
long long sum;
long long e[MAXN], f[MAXN+1];

int main(){
	n = uread();
	k = uread();
	for (int i=1; i<=n; i++){
		e[i] = uread();
		sum += e[i];
	}
	memset(f, 0x3f, sizeof(f));
	f[0] = 0;
	
	for (register int i=1; i<=n+1; ++i){
		s = (i-k-1 > 0 ? i-k-1 : 0);
		for (register int j=s; j<i; ++j) f[i] = (f[i] < f[j] ? f[i] : f[j]);
		f[i] += e[i];
	}
	
	printf("%lld", sum-f[n+1]);
	
	return 0;
}

但是,上面的代码只能拿到 9090 分(#2WA),请问如何调整?

(最后一个点在 999ms 和 1.0s 徘徊……)

2023/3/4 10:28
加载中...