排序
文章平均质量分 61
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
【蓝桥杯算法练习题】枚举、模拟与排序
一、AcWing 1210. 连号区间数【题目描述】小明这些天一直在思考这样一个奇怪而有趣的问题:在1∼N1\sim N1∼N的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L,R][L,R][L,R]里的所有元素(即此排列的第LLL个到第RRR个元素)递增排序后能得到一个长度为R−L+1R-L+1R−L+1的“连续”数列,则称这个区间连号区间。当NNN很小的时候,小明可以很快地算出答案,但是当NNN变大的时候,问题就不是那么简单了,现在小明需要你的帮助。【输入格式】第原创 2022-03-18 10:20:36 · 445 阅读 · 0 评论 -
洛谷P2085 最小函数值(优先队列)
【题目描述】有nnn个函数,分别为F1,F2,…,FnF_1,F_2,\dots,F_nF1,F2,…,Fn。定义Fi(x)=Aix2+Bix+Ci(x∈N∗)F_i(x)=A_ix^2+B_ix+C_i(x\in \mathbb N*)Fi(x)=Aix2+Bix+Ci(x∈N∗)。给定这些Ai,BiA_i,B_iAi,Bi和CiC_iCi,请求出所有函数的所有函数值中最小的mmm个(如有重复的要输出多个)。【输入格式】第一行输入两个正整数nnn和mmm。以下nnn行每行三个正原创 2022-03-10 14:17:05 · 349 阅读 · 0 评论 -
【CF1638B】Odd Swap Sort(排序,思维题)
【题目描述】给定一个数列a1,a2,…,ana_1,a_2,\dots ,a_na1,a2,…,an。你可以执行若干次如下的操作:选择一个整数i(1≤i<n)i(1\leq i< n)i(1≤i<n),如果ai+ai+1a_i+a_{i+1}ai+ai+1为奇数,则可以交换aia_iai和ai+1a_{i+1}ai+1。问是否可以将该数列排序成非递减数列。【输入格式】第一行一个整数t(1≤t≤105)t(1\leq t\leq 10^5)t(1≤t≤105),表示原创 2022-03-06 16:17:09 · 315 阅读 · 0 评论 -
AcWing 1696. 困牛排序(插入排序,思维题)
【题目描述】Farmer John正在尝试将他的NNN头奶牛,方便起见编号为1∼N1\sim N1∼N,在她们前往牧草地吃早餐之前排好顺序。当前,这些奶牛以p1,p2,p3,…,pNp_1,p_2,p_3,\dots ,p_Np1,p2,p3,…,pN的顺序排成一行,Farmer John站在奶牛p1p_1p1前面。他想要重新排列这些奶牛,使得她们的顺序变为1,2,3,…,N1,2,3,\dots ,N1,2,3,…,N,奶牛111在Farmer John旁边。今天奶牛们有些困倦,所以任何原创 2022-02-10 15:53:52 · 244 阅读 · 0 评论 -
AcWing 1978. 奶牛过马路(前缀最值)
【题目描述】每天,农夫约翰的NNN头奶牛都会穿过农场中间的马路。考虑约翰的农场在二维平面的地图,马路沿水平方向延伸,马路的一侧由直线y=0y=0y=0描述,另一侧由直线y=1y=1y=1描述。奶牛iii从马路一侧的位置(ai,0)(a_i,0)(ai,0)沿直线过马路到达另一侧的位置(bi,1)(b_i,1)(bi,1)。所有aia_iai互不相同,所有bib_ibi互不相同。尽管他的奶牛们行动敏捷,他还是担心行动路径交叉的两头奶牛在过马路时发生碰撞。约翰认为,如果一头奶牛的行动路径没有原创 2022-01-27 11:33:41 · 745 阅读 · 0 评论 -
【模板题】归并排序(求逆序对数量)
【题目描述】给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。【输入格式】输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼1e9范围内),表示整个数列。【输出格式】输出共一行,包含n个整数,表示排好序的数列。【数据范围】1≤n≤100000【输入样例】53 1 2 4 5【输出样例】1 2 3 4 5#include <iostream>#include <cstring>原创 2021-10-06 10:45:47 · 215 阅读 · 0 评论 -
【模板题】快速排序
【题目描述】给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。【输入格式】输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼1e9范围内),表示整个数列。【输出格式】输出共一行,包含n个整数,表示排好序的数列。【数据范围】1≤n≤100000#include <iostream>#include <cstring>#include <algorithm>using name原创 2021-10-06 10:42:42 · 125 阅读 · 0 评论 -
洛谷P1138 第k小整数(unique去重函数应用)
【题目描述】现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。【输入格式】第一行为n和k第二行开始为n个正整数的值,整数间用空格隔开。【输出格式】第k个最小整数的值;若无解,则输出“NO RESULT”。【输入样例】10 31 3 3 7 2 5 1 2 4 6【输出样例】3【解题思路】unique函数将相邻元素间的重复元素全部移动至末端,返回去重之后数组最后一个元素之后的地址因此unique(原创 2021-03-31 19:10:31 · 560 阅读 · 0 评论 -
洛谷P1908 逆序对(归并排序)
【题目描述】最近,TOM查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中a[i]>a[j]且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。Update:数据已加强。【输入格式】第一行,一个数n,表示序列中有n个数。第二行n个数,表示给定的序列。序列中每个数字不超过10^9。【输出格式】输出序列中逆序对的数目。【输入样例】65 4 2 6 3 1【输出样例】1原创 2021-03-11 21:31:55 · 263 阅读 · 0 评论 -
洛谷P1309 瑞士轮(模拟,归并排序)
【题目描述】2×N名编号为1-2N的选手共进行R轮比赛。每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名。选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。每轮比赛的对阵安排与该轮比赛开始前的排名有关:第1名和第2名、第3名和第4名、……、第2K-1名和第2K名、…… 、第2N-1名和第2N名,各进行一场比赛。每场比赛胜者得1分,负者得0分。也就是说除了首轮以外,其它轮比赛的安排均不能事先确定,而是要取决于选手在之前比赛中的原创 2021-03-10 21:10:55 · 477 阅读 · 3 评论