NC25043-Protecting the Flowers
题目链接:https://ac.nowcoder.com/acm/problem/25043
题意:很多牛跑到花坛上啃花,给出牛数目n和每头牛牵走所需要的时间ti和单位时间牛啃花的数目di,寻找最优牵牛序列,使得被啃掉的花数目最少,输出最少值。
思路:经典贪心
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef pair<long long,int> pii;
vector<pii> v;
bool cmp(pii s,pii r){
return s.first*r.second<s.second*r.first;
}
int main (){
int n;
scanf("%d",&n);
long long l;
int r;
for(int i=0;i<n;i++){
scanf("%lld%d",&l,&r);
v.push_back({l,r});
}
sort(v.begin(),v.end(),cmp);
l=0;r=0;
for(int i=0;i<n;i++){
l+=v[i].second*r;
r+=v[i].first;
}
printf("%lld",2*l);
return 0;
}

浙公网安备 33010602011771号