洛谷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;
	}
}
posted @ 2026-07-09 15:40  一只好好好好猫  阅读(8)  评论(0)    收藏  举报