牛客寒假算法基础集训营3 D. 处女座的训练

链接:https://ac.nowcoder.com/acm/contest/329/D

思路:贪心即可。按照ai/bi顺序由小到大排序,再按照题意按顺序求和输出即可。

 

 1 #include<bits/stdc++.h>
 2 const int M = 100005;
 3 using namespace std;
 4 typedef long long ll;
 5 struct course {
 6     ll min, t;
 7 }a[M];
 8 bool cmp(course a, course b)
 9 {
10     return a.min * b.t < b.min*a.t;
11 }
12 int main()
13 {
14     ll cnt=0;
15     ll n; cin >> n;
16     for (ll i = 0; i < n; i++)
17     {
18         cin >> a[i].min >> a[i].t;
19         cnt += a[i].t;
20     }
21     sort(a, a + n, cmp);
22     ll sum=0;
23     for (ll i = 0; i < n; i++)
24     {
25         cnt -= a[i].t;
26         sum += cnt * a[i].min;
27     }
28     cout << sum << endl;
29     return 0;
30 }

备注:注意本题数据量较大,用long long。

吐槽:看着像背包,就果断弃了,结果是贪心,亏了亏了。

转载于:https://www.cnblogs.com/harutomimori/p/10324799.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值