POJ_3262 Protecting the Flowers 【贪心】

一、题面

POJ3262

二、分析

这题要往贪心上面想应该还是很容易的,但问题是要证明为什么比值关系就能满足。

可以选择几个去分析,入1-6  与 2-15  和 1-6 与2-5 和 1-6 与 2- 12。

三、AC代码

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <fstream>
 5 using namespace std;
 6 
 7 const int MAXN = 1e5+6;
 8 
 9 struct Cow
10 {
11     int time, flower;
12 }Data[MAXN];
13 
14 bool Cmp(const Cow a, const Cow b)
15 {
16     return (double)a.flower/a.time > (double)b.flower/b.time;
17 }
18 
19 int main()
20 {
21     //freopen("input.txt", "r", stdin);
22     int N;
23     scanf("%d", &N);
24     for(int i = 0; i < N; i++)
25     {
26         scanf("%d %d", &Data[i].time, &Data[i].flower);
27     }
28     sort(Data, Data+N, Cmp);
29     long long T = 0, Ans = 0;
30     for(int i = 0; i < N; i++)
31     {
32         Ans += Data[i].flower*T;
33         T += 2*Data[i].time;
34     }
35     printf("%I64d\n", Ans);
36     return 0;
37 }
View Code

 

转载于:https://www.cnblogs.com/dybala21/p/10150761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值