poj3262 Protecting the Flowers

思路:

简单贪心,每次选择性价比最高的。

实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5
 6 struct node
 7 {
 8     int t, d;
 9 };
10 int n;
11 node a[100005];
12 int sum[100005];
13
14 bool cmp(const node & a, const node & b)
15 {
16     double x = a.d * 1.0 / a.t;
17     double y = b.d * 1.0 / b.t;
18     return x > y;
19 }
20
21 int main()
22 {
23     cin >> n;
24     for (int i = 0; i < n; i++)
25     {
26         scanf("%d %d", &a[i].t, &a[i].d);
27     }
28     sort(a, a + n, cmp);
29     sum[n - 1] = a[n - 1].d;
30     for (int i = n - 2; i >= 0; i--)
31     {
32         sum[i] = sum[i + 1] + a[i].d;
33     }
34     long long total = 0;
35     for (int i = 0; i < n - 1; i++)
36     {
37         total += sum[i + 1] * 2 * a[i].t;
38     }
39     cout << total << endl;
40     return 0;
41 }
时间: 2024-11-04 04:04:59

poj3262 Protecting the Flowers的相关文章

POJ3262 Protecting the Flowers 【贪心】

Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4418   Accepted: 1785 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his ho

Protecting the Flowers(POJ3262)(贪心)

Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4540   Accepted: 1819 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his ho

USACO 保护花朵 Protecting the Flowers, 2007 Jan

Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园, 正在啃食他精心培育的花朵!约翰要立即采取行动,挨个把它们全部关回牛棚. 约翰牵走第 i 头奶牛需要 T i 分钟,因为要算来回时间,所以他实际需要 2 · T i 分钟.第 i 头奶牛 如果还在花园里逍遥,每分钟会啃食 Di 朵鲜花.但只要约翰抓住了它,开始牵走它的那刻开始,就 没法吃花了.请帮

1634: [Usaco2007 Jan]Protecting the Flowers 护花

1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 493  Solved: 310[Submit][Status] Description Farmer John went to cut some wood and left N (2 <= N <= 100,000) cows eating the grass, as usual. When he retur

[BZOJ1634][Usaco2007 Jan]Protecting the Flowers 护花

1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 829  Solved: 537 [Submit][Status][Discuss] Description Farmer John went to cut some wood and left N (2 <= N <= 100,000) cows eating the grass, as usual. Wh

POJ 3262 Protecting the Flowers(贪心)

Language: Default Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4942   Accepted: 1973 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned,

POJ 3262 Protecting the Flowers【贪心】

一开始老是错,不知道咋回事,后来发现一开始sum就赋值为零了,再减去肯定是负的,一开始sum都没加数咋算,想漏了,顿时无语了,写了几十天了,今天才解决,哎~~注意输出有可能是超过整型的 http://blog.csdn.net/u014004096/article/details/36876287 Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4604   Accepted:

[BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花

1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 827  Solved: 536[Submit][Status][Discuss] Description Farmer John went to cut some wood and left N (2 <= N <= 100,000) cows eating the grass, as usual. When

[bzoj1634][Usaco2007 Jan]Protecting the Flowers 护花_贪心

Protecting the Flowers 护花 bzoj-1634 Usaco-2007 Jan 题目大意:n头牛,每头牛有两个参数t和atk.表示弄走这头牛需要2*t秒,这头牛每秒会啃食atk朵花.求一个弄走牛的顺序,使得这些牛破坏最少的花. 注释:$1\le n \le 10^5$. 想法:贪心. 两头牛i和j. 只考虑这两头牛的位置. 如果i在j前面,拉走i的时候j会造成$2t_i*atk_j$朵花.反之同理. 比较两者谁大就放在前面. 在cmp中这样写就行了. 最后,附上丑陋的代码.