博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu P1774 最接近神的人_NOI导刊2010提高(02)
阅读量:4307 次
发布时间:2019-06-06

本文共 2436 字,大约阅读时间需要 8 分钟。

 

题目描述

破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的问题是如何打开这扇门……

仔细研究后,他发现门上的图案大概是说:古代人认为只有智者才是最容易接近神明的。而最聪明的人往往通过一种仪式选拔出来。仪式大概是指,即将隐退的智者为他的候选人写下一串无序的数字,并让他们进行一种操作,即交换序列中相邻的两个元素。而用最少的交换次数使原序列变成不下降序列的人即是下一任智者。

小FF发现门上同样有着n个数字。于是他认为打开这扇门的秘诀就是找到让这个序列变成不下降序列所需要的最小次数。但小FF不会……只好又找到了你,并答应事成之后与你三七分……

输入输出格式

输入格式:

 

第一行为一个整数n,表示序列长度

第二行为n个整数,表示序列中每个元素。

 

输出格式:

 

一个整数ans,即最少操作次数。

 

输入输出样例

输入样例#1:
42 8 0 3
输出样例#1:
3   样例说明:开始序列为2 8 0 3,目标序列为0 2 3 8,可进行三次操作的目标序列:    1.Swap (8,0):2  0  8  3    2.Swap (2,0):0  2  8  3    3.Swap (8,3):0  2  3  8

说明

对于30%的数据1≤n≤10^4。

对于100%的数据1≤n≤5*10^5;

-maxlongint≤A[i]≤maxlongint。

 

 归并排序求逆序对:
#include
#include
#include
#define ll long long intusing namespace std;const ll N=500010;ll a[N];ll ans[N];ll answer;ll n;ll now;ll read(){ ll x=0;char c=getchar();ll f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar(); return x*f;}void T_S(ll start,ll endd){ if(start==endd) return ; int mid=(start+endd)/2; T_S(start,mid); T_S(mid+1,endd); ll i=start,j=mid+1; now=start; while(i<=mid&&j<=endd) if(a[i]<=a[j]) ans[now++]=a[i++]; else answer+=mid-i+1, ans[now++]=a[j++]; while(i<=mid) ans[now++]=a[i++]; while(j<=endd) ans[now++]=a[j++]; for(int i=start;i<=endd;i++) a[i]=ans[i];}int main(){ n=read(); for(int i=1;i<=n;i++) a[i]=read(); T_S(1,n); printf("%lld",answer); return 0;}

 

转载于:https://www.cnblogs.com/lyqlyq/p/7100724.html

你可能感兴趣的文章
linux source命令
查看>>
openstack报错解决三
查看>>
乙未年年终总结
查看>>
子网掩码
查看>>
第一天上班没精神
查看>>
启动eclipse报错:Failed to load the JNI shared library
查看>>
eclipse安装插件的两种方式在线和离线
查看>>
linux下源的相关笔记(suse)
查看>>
linux系统分区文件系统划分札记
查看>>
Linux(SUSE 12)安装Tomcat
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>
Neutron在给虚拟机分配网络时,底层是如何实现的?
查看>>
netfilter/iptables全攻略
查看>>
Overlay之VXLAN架构
查看>>
Eclipse : An error occurred while filtering resources(Maven错误提示)
查看>>
在eclipse上用tomcat部署项目404解决方案
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>