jzoj3462-休息【归并排序,逆序对】

正题


大意

一个序列,每次将一个单调下降的区间翻转,求最少次数将这个序列变成单调上升。


解题思路

考虑将O(n2)O(n2)的暴力转换。
我们先将开始时单调下降的区间翻转,然后我们会发现只有每个区间的边界才会需要交换,因为每个区间已经是单调上升的了。但是每次交换又可能会出现新的需要交换的,这就很像冒泡排序。而冒泡排序需要交换的次数就是逆序对的个数。


代码

#include<cstdio>
#include<algorithm>
long long h[100001],b[100001],n,s,ls,w;
void swap(long long &x,long long &y)
{long long z=x;x=y;y=z;
}
void mage(long long low,long long mid,long long hig)//归并排序求逆序对
{long long p1=low,g=low;long long p2=mid+1;while (g<=hig){if (p1>mid) {b[g]=h[p2]; p2++;}else if (p2>hig) {b[g]=h[p1]; p1++;}else if (h[p1]>h[p2]) {b[g]=h[p1]; p1++; s+=hig-p2+1;}else {b[g]=h[p2]; p2++;}g++;}for (long long i=low;i<=hig;i++) h[i]=b[i];
}
void magesort(long long low,long long hig)
{if (low<hig){long long mid=(low+hig)/2;magesort(low,mid);magesort(mid+1,hig);mage(low,mid,hig);}
}
int main()
{scanf("%d",&n);for (long long i=1;i<=n;i++){scanf("%d",&h[i]);}ls=1;h[n+1]=2147483647;for (long long i=1;i<=n;i++)//第一次交换{if (h[i+1]>h[i]){w=(ls+i)/2;for (long long j=ls;j<=w;j++)swap(h[j],h[i-j+ls]);if (i-ls!=0) s++;ls=i+1;}}magesort(1,n);printf("%d",s);
}

休息!休息一下!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【最全最详细】publiccms常用的代码片段

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 &#x1f9d8;‍♂️往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&a…

Remoting核心类库RealProxy迁移

在学习.net core的过程中&#xff0c;我们已经明确被告知&#xff0c;Remoting将不会被支持。官方的解释是&#xff0c;.net framework 类型包含了太多的Runtime的内容&#xff0c;是一个非常重量级的服务实现&#xff0c;已被确定为一项有问题的体系结构。说白了就是迁移的难度…

【最全最详细】publiccms其他常用代码片段(内容、站点)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 ✍往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&#xff08;使用方式…

jzoj3464-秀姿势【hash】

正题 给出n个数&#xff0c;删去k种数&#xff0c;使一种数连续的最长。 解题思路 用hash表储存每种数在leftleft到ii这个区间内没种数的个数,然后如果这个区间内的种数超过k+1个那么就移动left" role="presentation">leftleft指针并没次从hash中弹出一个…

汇编语言(十一)之统计非数字字符个数

输入以$结尾的字符串&#xff0c;统计并输出非数字字符的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentstring db 100h dup(?)nonNumberCount dw 0inputPrompt db input string and end by $:inputPromptLen …

Orleans配置---持久化

Grain理想的生命周期应该如下图所示: 这就如美国电影中的大反派一样,死了再复活,死了再复活.当然如果复活的反派没有记忆,这个电影就真没劲.现在我要求Grain的复活是有记忆的复活.看我怎么办到. 其中持久化需要用到数据库,因为只有数据库才能比较方便的为以后event sourcing做…

汇编语言(十二)之统计小于平均数的个数

在一个数组中找出并统计并该数组的平均数小的数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentDATA dw 10h dup(1,2,3,4,-1,5,7,-99,29,-11,294,-21,45,6,57,-54)average dw 0countOfLowAverage dw 0outputAverage …

【最全最详细】publiccmsCSS和JS引入无效的解决方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 ✍往期系列 这两天一直在整理Publiccms系列的教程&#xff0c;有需要的小伙伴们可以点击以下链接查看&#xff1a; ☝publiccms使用教程&#xff08;使用方式…

jzoj3463-军训【双重嵌套二分,随机数据水法】

正题 大意 每个人有两个值gigi和hihi&#xff0c;要求将序列分解成连续的几个序列。要求每个序列最大的hihi的和小于Limt的情况下每个序列gigi的和的最大值最小。 解题思路 我们二分最小的gigi的和的最大值 首先一个O(n2)O(n2)的dp想法&#xff0c;用fifi表示分割到第i个时最…

C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码

本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的控件操作. 也就是针对某个平台的…

笑脸喜迎新同学,热情送给新伙伴

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”今天&#xff0c;于我和王老师来说&#xff0c;是个非同寻常的一天。那是因为&#xff0c;今天迎来了4班的40余位新同学们&#xff01;一大早&#xff0c;同学们就陆陆…

汇编语言(十三)之偶数转成哥德巴赫猜想

将输入的偶数转换成哥德巴赫猜想&#xff0c;输出哥德巴赫猜想 程序运行&#xff1a; 代码&#xff1a; datas segmentmaxESLen db 0ffhevenSLen db 0evenString db 0ffh dup(?)evenNumber dw ?prime1 dw 0 prime2 dw 0 i…

2018/7/19-纪中某C组题【jzoj3461,jzoj3462,jzoj3463,jzoj3464】

前言 第三题有毒&#xff0c;第四题改一下就是正解了qaq。 今日分数 Rankperson分数6蒟蒻1709lrz1509zyc1509xjq1509xxy15018hjq11034hzb1034lw10 正题 T1&#xff1a;jzoj3461-小麦亩产一千八【斐波那契数列】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/a…

计算机入门的一些常用小技巧总结

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天总结了一些windows中常用的小技巧&#xff0c;也是明天上课需要演示的&#xff0c;希望对初入计算机行业的你们有所帮助&#xff0c;哈哈哈哈。常用shutdown命令&#xff1a;1.定时…

汇编语言(十四)之判断字符串是否包含数字

输入一串字符串&#xff0c;判断字符串里面是否包含数字&#xff0c;如果包含数字输出把cl的第五位设置为1&#xff0c;否则设置为0 程序运行&#xff1a; 代码&#xff1a; datas segmentSTRING_maxLength db 0ffhSTRING_Length d…

UnitOfWork知多少

1. 引言 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.Unit of Work --Martin Fowler Unit Of Work模式&#xff0c;由马丁大叔提出&#xff0c;是一种数据访问模…

表扬几位积极的同学!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”这几天太忙了&#xff0c;几天才回家一次&#xff0c;总有忙不完的活在干。4班这几天同学们表现还不错&#xff0c;布置的作业都能按时完成&#xff0c;课堂上也比较活跃&#xff0c;比…

中山纪念中学培训15天总结

比赛 2018/7/6-纪中某C组题【jzoj1192,jzoj1397,jzoj1736】 上来就集体爆零 2018/7/7-纪中某C组题【jzoj1494,jzoj1495,jzoj1496,jzoj1497】 还比较好 2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】 发现了dp方面的不足 2018/7/9-纪中某B组题【jzoj1503…

汇编语言(十五)之找出两个数组中的相同元素

找出两个数组中的相同元素&#xff0c;并且输出 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw -1,-2, 3, 4, 5, 6, 7, 8, 9, 10,-11, 12, 13, 14, 15ACount dw ($-A)/2B dw -1, 2,-3, 4,-5, 6,-7, 8, 9,-10, 11,-12, 13,-14, 15,16,17,18,…

如何编写更好的SQL查询:终极指南-第一部分

结构化查询语言&#xff08;SQL&#xff09;是数据挖掘分析行业不可或缺的一项技能&#xff0c;总的来说&#xff0c;学习这个技能是比较容易的。对于SQL来说&#xff0c;编写查询语句只是第一步&#xff0c;确保查询语句高效并且适合于你的数据库操作工作&#xff0c;才是最重…