邢台市网站建设_网站建设公司_域名注册_seo优化
2026/1/17 9:13:46 网站建设 项目流程

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:P11960 [GESP202503 五级] 平均分配 - 洛谷 (luogu.com.cn)

【题目描述】

小 A 有2 n 2n2n件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第i ii件物品,小 B 会以b i b_ibi的价格购买,而小 C 会以c i c_ici的价格购买。为了平均分配这2 n 2n2n件物品,小 A 决定小 B 和小 C 各自只能买走恰好n nn件物品。你能帮小 A 求出他卖出这2 n 2n2n件物品所能获得的最大收入吗?

【输入】

第一行,一个正整数n nn

第二行,2 n 2n2n个整数b 1 , b 2 , … , b 2 n b_1,b_2,…,b_{2n}b1,b2,,b2n

第三行,2 n 2n2n个整数c 1 , c 2 , … , c 2 n c_1,c_2,…,c_{2n}c1,c2,,c2n

【输出】

一行,一个整数,表示答案。

【输入样例】

3 1 3 5 6 8 10 2 4 6 7 9 11

【输出样例】

36

【算法标签】

《洛谷 P11960 平均分配》 #贪心# #排序# #GESP# #2025#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 定义宏,将int替换为long long类型constintN=100005;// 定义数组的最大大小intn;// 输入的n值intb[2*N],c[2*N];// 存储输入的b数组和c数组// 定义结构体,存储b值、c值和它们的差值structnode{intb,c,diff;// b值,c值,b-c的差值}a[2*N];// 结构体数组// 自定义排序函数,按差值从大到小排序boolcmp(node x,node y){returnx.diff>y.diff;}signedmain(){// 使用signed代替int,因为宏定义了int为long longcin>>n;// 输入n// 输入b数组和c数组for(inti=1;i<=2*n;i++)cin>>b[i];for(inti=1;i<=2*n;i++)cin>>c[i];// 初始化结构体数组,计算每个元素的差值for(inti=1;i<=2*n;i++)a[i]={b[i],c[i],b[i]-c[i]};// 对结构体数组按差值从大到小排序sort(a+1,a+2*n+1,cmp);intans=0;// 初始化结果为0// 前n个元素取b值for(inti=1;i<=n;i++)ans+=a[i].b;// 后n个元素取c值for(inti=n+1;i<=2*n;i++)ans+=a[i].c;// 输出最终结果cout<<ans<<endl;return0;}

【运行结果】

3 1 3 5 6 8 10 2 4 6 7 9 11 36

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询