JZOJ_7.19C组第二题 休息

2024-01-30 04:48
文章标签 第二 jzoj 7.19 休息

本文主要是介绍JZOJ_7.19C组第二题 休息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

给出一个序列,每次把里面单调递减的序列翻转过来,求翻多少次能翻成单调上升的状态。这里写图片描述

思路

我们先模拟第一轮翻转,之后求出这里面的逆序对的个数就好了。证明方法如下:这里写图片描述
逆序对还不是很懂。

代码

#include<cstdio>
#include<algorithm>
using namespace std;
int a[100001],n,t[100001];
long long ans;
void merge(int a[],int l,int r)
{ if(l==r) return;int mid=(l+r)/2;merge(a,l,mid);merge(a,mid+1,r);int i=l,j=mid+1,p=l;while(i<=mid&&j<=r){if(a[i]>a[j]){t[p++]=a[j++];ans+=mid-i+1; }elset[p++]=a[i++];}while(i<=mid) t[p++]=a[i++];while(j<=r) t[p++]=a[j++];for(i=l;i<=r;i++) a[i]=t[i];
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);int l=1,r=1;for(int i=1;i<=n;i++)//模拟第一轮if(i<n&&a[i]>a[i+1]) r++;else{if(l<r){for (l=l;l<r;l++,r--) swap(a[l],a[r]);ans++;}l=r=i+1;}merge(a,1,n);//归并排序求逆序对printf("%lld",ans);
}

这篇关于JZOJ_7.19C组第二题 休息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/659143

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

linux命令总结第二弹

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info

《数据结构(C语言版)第二版》第八章-排序(8.2-插入排序)

【8.2插入类、8.3交换类、8.4选择类、8.5归并类、8.6分配类 都属于内部排序。 】 8.2 插入排序 8.2.1 直接插人排序 【算法特点】 (1)稳定排序。 (2)算法简便,且容易实现。 (3)也适用于链式存储结构,只是在单链表上无需移动记录,只需修改相应的指针。 (4)更适合于初始记录基本有序(正序)的情况。 当初始记录无序,n较大时,此算法时间复杂度较高,不宜采用。 #in

第二证券 :刚刚,两交易所发公告

刚刚,上交所发布两则公告。 一则是《关于沪港通下港股通2024年9月6日暂停生意的告诉》。告诉指出,2024年9月6日,港交所因飓风暂停生意。根据《上海证券生意所沪港通事务施行办法》,沪港通下港股通(以下简称港股通)暂停生意。港股通生意的清算交收事宜,根据中国证券挂号结算有限责任公司的安排进行。请各商场参与人继续关注港交所后续公告,做好相应的数据调整、技术保证及投资者教育作业。 另一则是,上海

第二证券:北交所新股申购和沪深两市有什么区别?

北交所新股申购和沪深新股申购的区别: 1、申购条件不同 深市、沪市申购新股前第22个交易日至申购前第2个交易日的日均持有市值在1万元以上的投资者可参加新股申购。 此外,创业板(深市)新股申购有必要注册创业板权限。创业板注册条件:恳求注册权限前20个交易日证券及资金账户日均资产不低于10万元,不包括融资融券融入的资金和证券;两年及以上的股票交易阅历;风险承受能力C4及以上。 此外,科创板(沪

项目实战系列三: 家居购项目 第二部分

家居购项目 🐇servlet合并🍎方案一: 隐藏域🍎方案二: 反射+模板设计模式+动态代理 🌳显示家居🌳添加家居🍉解决重复添加🍉后端数据校验说明🍉BeanUtils自动封装Bean 🌳删除家居🌳修改家具 🐇servlet合并 需求 1.如果处理一个请求, 就对应一个Servlet, 会造成Servlet文件太多, 不利于管理. 2.在项目开发中, 同一个

《数据结构(C语言版)第二版》第七章-查找(算法设计题)

习题1 试写出折半查找的递归算法。 #include <stdio.h>#include <stdlib.h>#define Maxsize 100typedef int KeyType;typedef char InfoType;typedef struct{KeyType Key;InfoType OtherInfo;}elem;typedef struct{elem *R;in

sed awk 第二版学习(三)—— 编写 sed 脚本

目录 一、在脚本中应用命令 二、寻址上的全局透明 三、测试并保存输出 1. 用于测试 sed 的 shell 脚本 testsed 2. sed 永久性改动的 shell 脚本 runsed 四、sed 脚本的四种典型应用 1. 对同一文件的多重编辑 2. 改变一组文件 3. 提取文件内容 (1)提取宏定义脚本 getmac (2)生成提纲的脚本 do.outline 4.