首页 > 其他 > 详细

[USACO1.3]混合牛奶 Mixing Milk

时间:2019-09-25 09:05:59      阅读:102      评论:0      收藏:0      [点我收藏+]

【timegate】

https://www.luogu.org/problem/P1208

【解题思路】

先按照单价排序,单价小的在前面; 单价一样的就把产量多的放前面;(我是用结构体做的,排序方便)

2,当还需要采购时(n不为零),我们从当前还需采购值开始,挨个减一总价钱加上当前最小单价,当这头牛产量为零(不能再从它购买时),换一头牛(数组加一),直到购买完(n=0)为止。

3,输出总价钱,等待评测,然后AC;

【code】

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 int n,ans=-1<<30,sum;
 6 struct Node{
 7     int x;
 8     int y;
 9 }a[100005];
10 bool cmp(const Node &a,const Node &b){
11     if(a.x==b.x)return a.y>b.y;
12     return a.x<b.x;
13 }
14 int main(){
15     //freopen("3028.in","r",stdin);
16     //freopen("3028.out","w",stdout);
17     scanf("%d",&n);
18     int s,t;
19     for(register int i=1;i<=n;i++){
20         scanf("%d%d",&s,&t);
21         a[i].x=s;
22         a[i+n].x=t;
23         a[i].y=1;
24         a[i+n].y=-1;
25     }
26     sort(a+1,a+n*2+1,cmp);
27     for(register int i=1;i<=n*2;i++){
28         sum+=a[i].y;
29         ans=max(ans,sum);
30     }
31     printf("%d\n",ans);
32     return 0;
33 }

 

[USACO1.3]混合牛奶 Mixing Milk

原文:https://www.cnblogs.com/66dzb/p/11582030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!