【算法刷题】排序:CodeForces 984A,CodeForces 1132B,CodeForces 1015C

这篇博客介绍了如何利用C++的sort()函数进行排序,解析了CodeForces的三道题目,涉及排序策略和优化。984A题目中先手与后手的策略转换成了排序问题,1132B要求找到购买所有巧克力棒的最少花费,1015C则探讨了如何压缩歌曲以适应有限存储。博客提供了每道题目的思路、代码实现及常见错误分析。
摘要由CSDN通过智能技术生成

在排序算法实现时我们采用头文件algorithm中的sort()函数

使用时

#include<algorithm>
using namespace std;
sort(a,a+n)

其中a为数组,n为数组的长度,升序排整个数组。
当然这个函数的具体参数定义方法,可以到c++官方文档中查询,文档链接:
http://cplusplus.com/reference/algorithm/sort/?kw=sort

CodeForces 984A
原题链接:https://codeforces.com/problemset/problem/984/A
【题干】
一天KID1412KID和AnnaYang进行一个游戏。游戏开始时在黑板上写有n 个数字 a1,a2,… ,an,每一轮由一个人选择一个数字,井将它从黑板上擦去。这个游戏直到黑板上只剩下一个数字时结束,也就是说会有 n-1 轮游戏进行。
第一个玩家进行第一轮操作,第二个玩家进行之后的一轮操作。KID1412KID作为先手,希望最后黑板上留下来的数字越小越好,而作为后手的AnnaYang希望最后黑板上留下来的数字越大越好。
KID1412KID想知道如果两个人都采取最优的策略,n-1 轮后黑板上留下来的数字是多少?
【输入】
第一行包含一个整数n(1 ≤ n ≤ 1000)——黑板上初始的数字个数。第二行包含 n 个整数a1,a2,… ,an(1≤ai≤10^6)。
【输出】
黑板上剩下的那个数字。
【样例】
输入
3
2 1 3
输出
2
输入
3
2 2 2
输出
2
【代码】

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1005];
int main()
{
   
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	   scanf("%d",&a[i]);
	sort(a,a+n);
	if(!(n%2))printf("%d",a[(n/2)-1<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值