我是靠谱客的博主 秀丽棉花糖,最近开发中收集的这篇文章主要介绍Codeforces 355C Vasya and Robot 暴力枚举,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击打开链接

题意:给出n个物品重量wi,n<=1e5,常数l,r,Q1,Q2.每次两个操作:用左手取最左边物品消耗w[i]*l,用右手取最右边w[j]*r.
如果用的手和上一次相同 则加上对应的Q1或者Q2,求取走n物品的最小消耗 


由于每次只能从端点拿 若左手拿x次则会拿走前x个,右手会拿走后n-x个,交替使用后,在加上abs(x-(n-x))*(Q1 or Q2) 保存前缀和,暴力枚举即可

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+9;
const int N=2e5+20;
ll n,l,r,Q1,Q2;
ll w[N],p[N],s[N];
int main()
{
while(cin>>n>>l>>r>>Q1>>Q2)
{
p[0]=s[n+1]=0;
for(int i=1;i<=n;i++)
cin>>w[i];
ll ans=1e15;
for(int i=1;i<=n;i++)
p[i]=p[i-1]+w[i];
for(int i=0;i<=n;i++)
{
int x=n-i;
ll res=p[i]*l+(p[n]-p[i])*r;
if(x>i)
res+=(x-i-1)*Q2;
else if(i>x)
res+=(i-x-1)*Q1;
ans=min(ans,res);
}
cout<<ans<<endl;
}
return 0;
}


最后

以上就是秀丽棉花糖为你收集整理的Codeforces 355C Vasya and Robot 暴力枚举的全部内容,希望文章能够帮你解决Codeforces 355C Vasya and Robot 暴力枚举所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部