求帮忙 在学校机房写的 有很多不足 没时间了
查看原帖
求帮忙 在学校机房写的 有很多不足 没时间了
1078846
cute_楼主2024/5/7 16:32
#include<bits/stdc++.h>
using namespace std;
int a[10001];
int n;
int k;
int t;
int s;
int lock[10001];
int ans[10001];
int dp(int p){
	if(a[p]==0||p>k){
		return 0;
	}
	for(int i=a[p]+1;i<=p+a[p];i++){
		lock[i]=1;
	}
	dp(p+1);
	for(int i=a[p]+1;i<=p+a[p];i++){
		lock[i]=0;
	}
	for(int i=1;i<=k;i++){
		if(lock[i]){
			s+=a[i];
		}
	}
	return 0;
}
int main(){
	cin>>n;
	while(++t<=n){
		cin>>k;
		for(int i=1;i<=k;i++){
			cin>>a[i];
		}
		if(a[1]==0){
			ans[t]=0;
			continue;
		}
		for(int i=1;i<=k;i++){
			lock[i]=0;
		}
		dp(1);
		ans[t]=s;
	}
	for(int i=1;i<=n;i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}
2024/5/7 16:32
加载中...