JZOJ 5947. 【NOIP2018模拟11.02】初音未来

题目

Hercier作为一位喜爱Hatsune Miku的OIer,痛下决心,将Vocaloid买回了家。打开之后,你发现界面是一个长为n的序列,代表音调,并形成了全排列。你看不懂日语,经过多次尝试,你只会用一个按钮:将一段区间按升序排序。不理解音乐的Hercier决定写一个脚本,进行m次操作,每次对一段区间进行操作。可惜Hercier不会写脚本,他找到了在机房里的你,请你模拟出最后的结果。

数据范围
在这里插入图片描述

题解

70分做法:
O ( m   l o g 2 n ) O(m\ log^2n) O(m log2n)
40分送的。
测试点3-7,直接就二分答案就好了。变成只有0和1组成的序列。
O ( n m ) O(nm) O(nm)桶排,同样能拿到70分。
100分:
抓住重点:考虑冒泡排序与逆序对的关系。如果一段序列没有逆序对,那么可以不理之。
一种水法,暴力桶排,修改b[i]的前缀和s[i]。
b[i]表示a[i]和a[i-1]是否构成逆序对(0/1)
如果s[r]=s[l],那么操作[l,r]无用。
循环展开一下即可。
正解:
逆序对不超过 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n1)个。
如果一段序列没有逆序对,那么可以不理之。
维护一个线段树,对势能分析整体感知,看似暴力的方法,实际上是能过的。
线段树维护b[i]
如果每次找到最左边的逆序对所在的位置x,经过一些修改,使得[l,x]这段区间变得有序,那么不是做完了吗?
反正最多只会被交换 O ( n 2 ) O(n^2) O(n2)次。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define N 1510
#define Min(x,y) ((x)<(y)?(x):(y))
#define fo(i,a,b) for(i=a;i<=b;i++)
using names
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
疫情居家办公系统管理系统按照操作主体分为管理员和用户。管理员的功能包括办公设备管理、部门信息管理、字典管理、公告信息管理、请假信息管理、签到信息管理、留言管理、外出报备管理、薪资管理、用户管理、公司资料管理、管理员管理。用户的功能等。该系统采用了MySQL数据库,Java语言,Spring Boot框架等技术进行编程实现。 疫情居家办公系统管理系统可以提高疫情居家办公系统信息管理问题的解决效率,优化疫情居家办公系统信息处理流程,保证疫情居家办公系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理疫情居家办公系统信息,包括外出报备管理,培训管理,签到管理,薪资管理等,可以管理公告。 外出报备管理界面,管理员在外出报备管理界面中可以对界面中显示,可以对外出报备信息的外出报备状态进行查看,可以添加新的外出报备信息等。签到管理界面,管理员在签到管理界面中查看签到种类信息,签到描述信息,新增签到信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值