首页 > 分享 > 第三次排位赛

第三次排位赛

最新推荐文章于 2024-01-09 22:04:39 发布

w2sc 于 2019-03-08 22:15:25 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

传送门:https://www.luogu.org/problemnew/show/P4378
题目大意:
给一串数字,问经过以下伪代码冒泡排序后,moo了多少次。

sorted = false while (not sorted): sorted = true moo for i = 0 to N-2: if A[i+1] < A[i]: swap A[i], A[i+1] sorted = false 12345678

思路:一个数字在它应在的位置后面,它应该往前移动,每moo一次往前移动一格(因为一定有比它大的数字在它前面,所以一定会发生交换),直到在它应在的位置,答案即为所有位于应在的位置后面的数字跟它应在的位置的距离差的最大值+1,由于有相同数字,冒泡排序是稳定排序,相同数字排序后先后顺序不变,排序时应用stable_sort()而不是不稳定的sort()
代码:

#include <bits/stdc++.h> #define ll long long using namespace std; const ll M=100000+10; ll n; struct aa{ll id,num; }a[M]; bool cmp(aa x,aa y){return x.num<y.num; } int main(){cin>>n;ll mini,ans=0;for(ll i=0;i<n;i++) cin>>a[i].num,a[i].id=i;stable_sort(a,a+n,cmp);for(ll i=0;i<n;i++){ans=max(ans,max(0LL,a[i].id-i));}cout<<ans+1;return 0; }

12345678910111213141516171819202122

相关知识

第三次排位赛
植物生产的第三次重要革命是指
第十届花博会 | 评审委员会第三次复评工作完成
蚌埠市花卉协会第三次会员代表大会召开
5月9日礼仪社交花艺——西方圆锥形插花(第三次)
F1比赛流程和规则的简单介绍
临武鸭进行第三次全国畜禽遗传资源普查性能测定
怀化市CCER造林碳汇开发服务采购(第三次)交易公告
蚌埠市花卉协会第三次会员代表大会胜利召开
【孝昌县中心】孝昌县第三次土壤普查(土壤样品检测)项目孝昌县第三次土壤普查(土壤样品检测)二标段(白沙镇、花西乡、季店乡、花园镇)中标结果公告(标段编号HBXI

网址: 第三次排位赛 https://m.huajiangbk.com/newsview302693.html

所属分类:花卉
上一篇: 作品获全国一等奖 重庆“花匠”教
下一篇: 对舞剧《一把酸枣》音乐的作曲技术