洛谷B4187简单题解
这题推荐给想写暴力的人······
这个题数据不很大,前一个人只能传给下一个人,所以暴力加一点剪枝即可AC
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n;
int q;
int t[N],p[N];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>t[i];
}
for(int i=1;i<=n;i++)
{
cin>>p[i];
}
for(int k=1;k<=2;k++)
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
if(j==1)//特殊情况:第n个人传给第1个人
{
t[j]=min(t[j],t[n]+p[n]);
continue;
}
if(t[j]<=t[j-1]+p[j-1])//满足这个条件,后面一定是更优的答案
{
i++;
j=i;
continue;
}
t[j]=min(t[j],t[j-1]+p[j-1]);
}
}
cin>>q;
for(int i=1;i<=q;i++)
{
int a;
cin>>a;
cout<<t[a]<<endl;
}
}

浙公网安备 33010602011771号