雪国大白菜 @ 2018-08-24 16:58:37
为什么我第一个点输出的是正确答案他给我判WA,两个点都是这样,80emmm
供上代码,求大佬帮忙:
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=200000+10;
typedef pair<int,int> pii;
priority_queue<pii,vector<pii>,less<pii> >q;
int n,l,r;
int dp[N*2],index[N*2];
main(void)
{
scanf("%d%d%d",&n,&l,&r);
if(l>r) swap(l,r);
for(int i(0);i<=n;i++){
scanf("%d",&index[i]);
if(i>=l) dp[i]=index[i];
}
int ans;
for(int i(l);i<=n+r;i++){
q.push(make_pair(dp[i-l],i-l));
int d=q.top().second;
dp[i]=dp[d]+index[i];
}
for(int i(n+1);i<=n+r;i++) ans=max(ans,dp[i]);
printf("%d",ans);
return 0;
}
by Aleph1022 @ 2018-08-24 17:00:11
请送到 Linux 系统测试再来批判
一个比较方便的方案是使用洛谷 IDE