[USACO07JAN]Protecting the Flowers S
Posted qzwer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO07JAN]Protecting the Flowers S相关的知识,希望对你有一定的参考价值。
一看题面就知道是贪心
随便搞一搞就好了
题目传送门
sol
贪心+排序
对于牛的排序:a.t * b.d<a.d * b.t (手动推一推就好了)
读入的时候,将所有牛每分钟所吃的花数总和统计起来,然后循环中按照顺序,先把当前所要运走的牛吃花的数量减去,然后用剩下的花的总数乘上所要运走的牛的时间t*2(往返两次)
code
#include<bits/stdc++.h>
typedef unsigned long long ll;
using namespace std;
const int maxn=1e5+10;
int n;
struct node{
int t,d;
}e[maxn];
bool cmp(node a,node b){return a.t*b.d<a.d*b.t;}
ll sum,ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>e[i].t>>e[i].d,sum+=e[i].d;
sort(e+1,e+n+1,cmp);
for(int i=1;i<=n;i++){
sum-=e[i].d;
ans+=sum*(e[i].t*2);
}
printf("%lld",ans);
return 0;
}
代码还是挺清爽的呀!
以上是关于[USACO07JAN]Protecting the Flowers S的主要内容,如果未能解决你的问题,请参考以下文章
[USACO07JAN]Protecting the Flowers S
[USACO07JAN]Protecting the Flowers S
洛谷 P2878 [USACO07JAN]保护花朵Protecting the Flowers 题解
P2878 [USACO07JAN]保护花朵Protecting the Flowers - 贪心