买二送一 内存限制: 256 Mb时间限制: 1000 ms 题目描述 我们需要买 n n 本书,第 i i 本书的价格为 a i a i 。 现有买二送一的促销活动:凡购买两本书,可以免费带走第三本书,但免费书的价格不能超过两本付费书中任意一本的价格即可。 请问,买下全部的书最少需要多少钱? 输入格式 第一行:单个整数表示 n n; 第二行: n n 个整数表示 a 1 , a 2 , … , a n a 1 ,a 2 ,…,a n 。 输出格式 单个整数:表示将所有书买下的最少钱数。 数据范围 对于 40 % 40% 的分数, 1 ≤ n ≤ 100 1≤n≤100; 对于 70 % 70% 的分数, 1 ≤ n ≤ 5000 1≤n≤5000; 对于 100 % 100% 的分数, 1 ≤ n ≤ 100 , 000 1≤n≤100,000, 1 ≤ a i ≤ 30 , 000 1≤a i ≤30,000。 样例数据 输入: 6 1 3 2 4 5 6 输出: 16 说明: 买2与3,送1; 买5与6,送4。 语言


```cpp #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int n; // 读取书的数量 cin >> n; vector<int> prices(n); for (int i = 0; i < n; i++) { // 读取每本书的价格 cin >> prices[i]; } // 对书的价格进行降序排序 sort(prices.begin(), prices.end(), greater<int>()); int totalCost = 0; for (int i = 0; i < n; i++) { // 如果索引不是3的倍数,说明这本书需要付费 if ((i + 1) % 3 != 0) { totalCost += prices[i]; } } // 输出买下全部书的最少花费 cout << totalCost << endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 排序时要注意是降序排序,这样才能保证每次买二送一得到最大的优惠。 2. 计算索引时要注意索引是从0开始的,判断是否为3的倍数时要进行合适的处理。 3. 输入输出的格式要严格按照题目要求,避免因为格式问题导致结果错误。 [2025-08-14 15:09:51 | AI写代码神器 | 315点数解答]
- 买二送一 内存限制: 256 Mb时间限制: 1000 ms 题目描述 我们需要买 n n 本书,第 i i 本书的价格为 a i a i 。 现有买二送一的促销活动:凡购买两本书,可以免费带走第三本书,但免费书的价格不能超过两本付费书中任意一本的价格即可。 请问,买下全部的书最少需要多少钱? 输入格式 第一行:单个整数表示 n n; 第二行: n n 个整数表示 a 1 , a 2 , … , a n a 1 ,a 2 ,…,a n 。 输出格式 单个整数:表示将所有书买下的最少钱数。 数据范围 对于 40 % 40% 的分数, 1 ≤ n ≤ 100 1≤n≤100; 对于 70 % 70% 的分数, 1 ≤ n ≤ 5000 1≤n≤5000; 对于 100 % 100% 的分数, 1 ≤ n ≤ 100 , 000 1≤n≤100,000, 1 ≤ a i ≤ 30 , 000 1≤a i ≤30,000。 样例数据 输入: 6 1 3 2 4 5 6 输出: 16 说明: 买2与3,送1; 买5与6,送4。 语言(315点数解答 | 2025-08-14 15:09:51)87
- 三倍子串 内存限制: 256 Mb时间限制: 1000 ms 题目描述 给定一个十进制正整数 n n,请问可以从 n n 中截取多少种不同的子串,使得子串构成的数字是 3 3 的倍数。 例如:当 n = 1234 n=1234 时,有且仅有 3 3, 12 12, 123 123, 234 234 这四个子串是 3 3 的倍数。 输入格式 单个整数:表示输入的数字 n n 输出格式 单个整数:表示 3 3 的倍数的子串数量。 数据范围 对于 20 % 20% 的数据, 1 ≤ n ≤ 1 0 9 1≤n≤10 9 ; 对于 50 % 50% 的数据, 1 ≤ n ≤ 1 0 100 1≤n≤10 100 ; 对于 70 % 70% 的数据, 1 ≤ n ≤ 1 0 1000 1≤n≤10 1000 ; 对于 100 % 100% 的数据, 1 ≤ n ≤ 1 0 100000 1≤n≤10 100000 样例数据 输入: 95764 输出: 6 说明: 子串6,9,57,576,957,9576是3的倍数 输入: 1111 输出: 2 说(486点数解答 | 2025-08-29 11:52:55)82
- 实验目的: 1.巩固理解java的面向对象程序设计概念 2.理解java封装的含义 3.理解static, final等关键字的含义及应用实验内容: 定义 book类,给每一本书自动赋上索书号 is sn1, issn2... 声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号“issn1” “is sn2”) 书价,册数和静态属性图书的总册数,在构造方法中利用静态变量为对象的编号赋值,在主方法中 定义对象数组,并求出总册数。运行效果如下: 【书名]:java程序书名]:java程序书名]:ava程序 书名j:c语言程序设计书名]:c语言程序设计书名]:null 书名]:nul1 [书名]:nu11 【价格]:35.6 【价格]:35.6 【价格]:35.6 [价格]:42.6 [价格]:42.6 [价格]:8.日 [价格]:8.8 [价格]:8.0 [图书線号]:issn1图书编号]:issn2[图书编号):issn3[图书编号j:issn4图书编号]:issn5图书線号】:issn6[图书線号]:issn7[图书編号]:issn8 [本书的册数]:3 [本书的册数]:(1469点数解答 | 2024-04-02 10:20:41)319
- 7-22 体重 分数 100 作者 陈宇璟 单位 浙江大学 小 a 一觉醒来发现时空发生了穿越,来到了秦始皇一统天下后的时代。 小 a 想进城逛逛,但是守城人要求必须报上自己的身高体重。 但是当时的秤是十六两一斤,小a只知道自己用十两一斤的秤称重时的斤两。 请你帮他算算应该如何上报数据。 输入格式: 输入十两一斤的重量数,输入有两行。 第一行是斤数。 第二行是两数。 输出格式: 输出对应十六两一斤秤的重量数,输出有两行。 第一行是斤数。 第二行是两数。 输入样例: 2 1 输出样例: 1 5 输入样例: 10 9 输出样例: 6 13 输入样例: 100 8 输出样例: 63 0 说明 样例 1 说明 在十两一斤的称重下,有 2 斤 1 两,共 21 两。 因此换算为十六两一斤的称重下,有 1 斤 5 两。 数据范围 对于 100% 的数据,满足读入的斤数,在 [0,1000] 的范围,读入的两数,在 [0,9] 的范围。 代码长度限制 16 kb 时间限制 1000 ms 内存限制 128 mb 栈限制 8192 kb c (gcc) 1(155点数解答 | 2024-10-18 11:39:55)382
- 7-22 体重 分数 100 作者 陈宇璟 单位 浙江大学 小 a 一觉醒来发现时空发生了穿越,来到了秦始皇一统天下后的时代。 小 a 想进城逛逛,但是守城人要求必须报上自己的身高体重。 但是当时的秤是十六两一斤,小a只知道自己用十两一斤的秤称重时的斤两。 请你帮他算算应该如何上报数据。 输入格式: 输入十两一斤的重量数,输入有两行。 第一行是斤数。 第二行是两数。 输出格式: 输出对应十六两一斤秤的重量数,输出有两行。 第一行是斤数。 第二行是两数。 输入样例: 2 1 输出样例: 1 5 输入样例: 10 9 输出样例: 6 13 输入样例: 100 8 输出样例: 63 0 说明 样例 1 说明 在十两一斤的称重下,有 2 斤 1 两,共 21 两。 因此换算为十六两一斤的称重下,有 1 斤 5 两。 数据范围 对于 100% 的数据,满足读入的斤数,在 [0,1000] 的范围,读入的两数,在 [0,9] 的范围。 代码长度限制 16 kb 时间限制 1000 ms 内存限制 128 mb 栈限制 8192 kb c (gcc) 1(322点数解答 | 2024-12-09 20:13:54)262
- 7-22 体重 分数 100 作者 陈宇璟 单位 浙江大学 小 a 一觉醒来发现时空发生了穿越,来到了秦始皇一统天下后的时代。 小 a 想进城逛逛,但是守城人要求必须报上自己的身高体重。 但是当时的秤是十六两一斤,小a只知道自己用十两一斤的秤称重时的斤两。 请你帮他算算应该如何上报数据。 输入格式: 输入十两一斤的重量数,输入有两行。 第一行是斤数。 第二行是两数。 输出格式: 输出对应十六两一斤秤的重量数,输出有两行。 第一行是斤数。 第二行是两数。 输入样例: 2 1 输出样例: 1 5 输入样例: 10 9 输出样例: 6 13 输入样例: 100 8 输出样例: 63 0 说明 样例 1 说明 在十两一斤的称重下,有 2 斤 1 两,共 21 两。 因此换算为十六两一斤的称重下,有 1 斤 5 两。 数据范围 对于 100% 的数据,满足读入的斤数,在 [0,1000] 的范围,读入的两数,在 [0,9] 的范围。 代码长度限制 16 kb 时间限制 1000 ms 内存限制 128 mb 栈限制 8192 kb c (gcc) 1(366点数解答 | 2025-03-11 18:28:13)121
- 7-22 体重 分数 100 作者 陈宇璟 单位 浙江大学 小 a 一觉醒来发现时空发生了穿越,来到了秦始皇一统天下后的时代。 小 a 想进城逛逛,但是守城人要求必须报上自己的身高体重。 但是当时的秤是十六两一斤,小a只知道自己用十两一斤的秤称重时的斤两。 请你帮他算算应该如何上报数据。 输入格式: 输入十两一斤的重量数,输入有两行。 第一行是斤数。 第二行是两数。 输出格式: 输出对应十六两一斤秤的重量数,输出有两行。 第一行是斤数。 第二行是两数。 输入样例: 2 1 输出样例: 1 5 输入样例: 10 9 输出样例: 6 13 输入样例: 100 8 输出样例: 63 0 说明 样例 1 说明 在十两一斤的称重下,有 2 斤 1 两,共 21 两。 因此换算为十六两一斤的称重下,有 1 斤 5 两。 数据范围 对于 100% 的数据,满足读入的斤数,在 [0,1000] 的范围,读入的两数,在 [0,9] 的范围。 代码长度限制 16 kb 时间限制 1000 ms 内存限制 128 mb 栈限制 8192 kb c (gcc) 1(221点数解答 | 2025-03-11 18:44:57)132
- 7-22 体重 分数 100 作者 陈宇璟 单位 浙江大学 小 a 一觉醒来发现时空发生了穿越,来到了秦始皇一统天下后的时代。 小 a 想进城逛逛,但是守城人要求必须报上自己的身高体重。 但是当时的秤是十六两一斤,小a只知道自己用十两一斤的秤称重时的斤两。 请你帮他算算应该如何上报数据。 输入格式: 输入十两一斤的重量数,输入有两行。 第一行是斤数。 第二行是两数。 输出格式: 输出对应十六两一斤秤的重量数,输出有两行。 第一行是斤数。 第二行是两数。 输入样例: 2 1 输出样例: 1 5 输入样例: 10 9 输出样例: 6 13 输入样例: 100 8 输出样例: 63 0 说明 样例 1 说明 在十两一斤的称重下,有 2 斤 1 两,共 21 两。 因此换算为十六两一斤的称重下,有 1 斤 5 两。 数据范围 对于 100% 的数据,满足读入的斤数,在 [0,1000] 的范围,读入的两数,在 [0,9] 的范围。 代码长度限制 16 kb 时间限制 1000 ms 内存限制 128 mb 栈限制 8192 kb c (gcc) 1(205点数解答 | 2025-03-11 18:45:30)123
- 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)291
- 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(346点数解答 | 2025-01-08 03:46:29)285
- 用java设计一个银行类和帐户类,成员变量包括账号、存款余额、交易记录等帐户信息,成员方法包括存款、取款、查询交易记录操作。( bank类中可包含多个账户,可增加其它操作如修改密码等,账户类中可实现添加,删除账户等操作) 运行效果如下: 1、存款业务 2、取款业务 3、显示交易记录 4、退出业务办理 请输入对应的数字选择相应的业务:1 你的余额为:0 请输入你要存款的数目:5000 你已存入:5000元 你的余额为:5000 请输入对应的数字选择相应的业务:2 你的余额为:5000 你可以取款的最多数目为:5000 请输入你要取款的数目:500 你已取走500元 你的余额为:4500 请输入对应的数字选择相应的业务:2 你的余额为:4500 你可以取款的最多数目为: 4500 请输入你要取款的数目:5000 取款失败! 请重新输入你的余额为:4500 请输入对应的数字选择相应的业务:3 交易记录 余额: 5000 星期四 三月08 11:46 : 10 cst 2018存入:5000元 余额: 4500 星期四 三月08 11 : 46 : 19 cst 20(363点数解答 | 2024-04-05 11:43:57)281
- 用java设计一个银行类和帐户类,成员变量包括账号、存款余额、交易记录等帐户信息,成员方法包括存款、取款、查询交易记录等操作。 运行效果如下: 1、存款业务 2、取款业务 3、显示交易记录 4、退出业务办理 请输入对应的数字选择相应的业务:1 你的余额为:0 请输入你要存款的数目:5000 你已存入:5000元 你的余额为:5000 请输入对应的数字选择相应的业务:2 你的余额为:5000 你可以取款的最多数目为:5000 请输入你要取款的数目:500 你已取走500元 你的余额为:4500 请输入对应的数字选择相应的业务:2 你的余额为:4500 你可以取款的最多数目为: 4500 请输入你要取款的数目:5000 取款失败! 请重新输入你的余额为:4500 请输入对应的数字选择相应的业务:3 交易记录 余额: 5000 星期四 三月08 11:46 : 10 cst 2018存入:5000元 余额: 4500 星期四 三月08 11 : 46 : 19 cst 2018取出:500元。 余额: 4000 星期四 三月08 11 : 46 : 34 cst(363点数解答 | 2024-04-05 11:49:01)265