2018 Wannafly summer camp Day3--Shopping

Shopping

描述

题目描述:

你要买n件物品,其中有一些是凳子。

商场正在举行促销活动,如果购物车中有至少一个凳子,那么你可以半价购买这个购物车中最贵的一个物品。

你有m辆购物车,请最小化你的花费。

输入:

第一行一个整数t表示数据组数 (1t100)

每组数据第一行两个整数n,m(1n,m1000),接下来n行每行两个整数ai,bi,分别表示第i件物品的价格以及它是否是凳子(1ai105,0bi1)

输出:

每组数据输出一行一个实数表示最小花费,保留一位小数。

样例输入
2
5 1
1 0
2 1
3 1
4 0
5 0
5 10
1 0
2 1
3 1
4 0
5 0
样例输出
12.5
10.5
将最贵的min(m,cnt)个物品打折,cnt为凳子个数
复制代码
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cstdlib>
 5 using namespace std;
 6 int t, n, m,a[1005], b, cnt;
 7 double ans;
 8 bool cmp(int a, int b){return a > b;}
 9 int main(void) {
10     cin >> t;
11     while (t-- > 0) {
12         cin >> n >> m;
13         cnt = 0, ans = 0;
14         for (int i = 0; i < n; i++) {
15             cin >> a[i] >> b;
16             if (b == 1)
17                 cnt++;
18         }
19         sort(a, a + n, cmp);
20         cnt = min(cnt, m);
21         for (int i = 0; i < n; i++) {
22             if (i < cnt)
23                 ans += a[i] * 0.5;
24             else
25                 ans += a[i];
26         }
27         printf("%.1lf\n", ans);
28     }
29     return 0;
30 }
View Code
复制代码

 


posted @   Chasssser  阅读(322)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示