算法训练 景点游览

该博客介绍了一个问题,小明需要根据景点评分选择游览顺序,要求评分总和最大。输入包含景点数量和各景点评分,输出应为评分从大到小排序的结果。通过此问题,可以帮助读者熟悉排序算法,特别是`sort`函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述
  小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。
输入格式
  输入的第一行包含一个正整数N,表示N个景点。
  第二行有N个正整数,表示每个景点的评分值。
  
输出格式
  输出一行,包含N个正整数,表示N个景点的评分从大到小的排列
  
样例输入
4
3 2 4 1
样例输出
4 3 2 1
数据规模和约定

N<=1000,每个景点的评分<=10000。

#include<iostream>
#include<algorithm>
using namespace std;


int main() {
	int n;
	int pingfeng[1010];//不是1000而是1010,目的是为了减少越界的风险
	cin >> n;
	for (int i = 0; i < n; i++) {
		scanf("%d", &pingfeng[i]);//经验:在输入数据超过或接近1000时,scanf的效率比cin高
	}
	sort(pingfeng, pingfeng + n,greater<int>());//第三个参数省略时默认为less<int>(),即从小到大排序。提示:千万不要漏了括号
	for (int i = 0; i < n; i++) {
		printf("%d ", pingfeng[i]);
	}
	return 0;
}

sort函数使用频率很高,刷题新手熟悉这个函数的用法对刷题很有帮助,第三个参数可以省略,也可以不省略, 默认为 less< int >(),即从小到大排序。(greater< int >()则是从大到小排序)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值