题号 NC25043
解法 直接贪心。
代码
#include<bits/stdc++.h> using namespace std; int n;long long ans,sum; struct node{int t,d;}a[100005]; bool cmp(node x,node y){ return x.t*y.d<y.t*x.d; } int main(){ scanf("%d",&n); for(int i=1;i<=n;++i)scanf("%d%d",&a[i].t,&a[i].d); sort(a+1,a+n+1,cmp); for(int i=1;i<=n;++i){ans+=sum*a[i].d;sum+=a[i].t*2;} printf("%lld\n",ans); return 0; }