博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018 Wannafly summer camp Day3--Shopping
阅读量:4697 次
发布时间:2019-06-09

本文共 1290 字,大约阅读时间需要 4 分钟。

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
2 #include
3 #include
4 #include
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 else25 ans += a[i];26 }27 printf("%.1lf\n", ans);28 }29 return 0;30 }
View Code

 

 

转载于:https://www.cnblogs.com/FlyerBird/p/9433712.html

你可能感兴趣的文章
蓝牙协议栈中的 OSAL
查看>>
【Netty】EventLoop和线程模型
查看>>
打开一个页面,并监听该页面的关闭事件
查看>>
软件保护技术--- 常见保护技巧
查看>>
java内存模型之二volatile内存语义
查看>>
WPF 界面提示加载出错
查看>>
SQL批量分离工具
查看>>
Erlang与ActionScript3采用JSON格式进行Socket通讯
查看>>
python数据类型--数字、字符串
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
OAuth2.0(基于django2.1.2实现版本)
查看>>
Servlet实现图片读取显示
查看>>
正则表达式去除括号的问题
查看>>
基于深度学习的目标检测研究进展
查看>>
【c++】字符串的冒泡排序【存疑,待查】
查看>>
ES6常用语法
查看>>
RabbitMQ环境搭建教程收集(待实践)
查看>>
Spring使用ComponentScan扫描Maven多模块工程的其它模块
查看>>
Jenkins环境拓扑及部署流程
查看>>
Servlet教程
查看>>