题解 P5094 【[USACO2004OPEN]MooFest 狂欢节】

· · 题解

史上最短代码题解

到底是怎么评到紫题的???

看到数据范围和经过真实实验后,我们发现:

可以直接枚举i,j,然后按题意暴力加上ans就可以了。

因为题目中提到"如果奶牛ij想相互交谈,她们的音量必须不小于\max(v_i,v_j)\times dis(i,j)。其中dis(i,j)表示她们间的距离。"

代码如下:

#include<bits/stdc++.h>

#define N 20010

using namespace std;

int n,v[N],x[N];
long long ans;

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d%d",&v[i],&x[i]);
    for(int i=1;i<=n;i++)
        for(int j=1;j<i;j++)
            ans+=abs(x[i]-x[j])*max(v[i],v[j]);
    printf("%lld\n",ans);
    return 0;
}