AcWing 474. 龙虎斗
原题链接
简单
作者:
ZTEG
,
2019-11-08 22:03:22
,
所有人可见
,
阅读 1834
暴力枚举
#include<bits/stdc++.h>
using namespace std;
long long a[9999],m,p1,s1,s2,n,l,h,cj=9999,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
cin>>m>>p1>>s1>>s2;
for(int i=1;i<=n;i++)
{
if(i<m)
l+=a[i]*(m-i);
if(i>m)
h+=a[i]*(i-m);
}
if(p1<m)
l+=s1*(m-p1);
if(p1>m)
h+=s1*(p1-m);
for(int i=1;i<=n;i++)
{
int ll=l,hh=h;
if(i<m)
ll+=s2*(m-i);
if(i>m)
hh+=s2*(i-m);
if(cj>abs(hh-ll))
{
ans=i;
cj=abs(hh-ll);
}
}
cout<<ans<<endl;
return 0;
}
if(p1<m) l+=s1*(m-p1); if(p1>m) h+=s1*(p1-m);
这里可以优化
在统计气势前面加上
你的暴力枚举只能得80%的分,最好是分开写并两方向并行