BZOJ 3176 Sort
先一遍reverse+逆序对个数。
要开long long啊。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 100500
using namespace std;
int n,a[maxn],pos[maxn],l,bit[maxn];
long long ans=;
int lowbit(int x) {return (x&(-x));}
void rev(int l,int r)
{
for (int i=l;i<=r;i++)
{
if ((i<<)>=l+r) break;
swap(a[i],a[l+r-i]);
}
}
int ask(int now)
{
int ret=;
for (int i=now;i>=;i-=lowbit(i))
ret+=bit[i];
return ret;
}
void insert(int now,int val)
{
for (int i=now;i<=n;i+=lowbit(i))
bit[i]+=val;
}
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]);
l=;
for (int i=;i<=n;i++)
{
if (a[i]>a[i-])
{
rev(l,i-);
l=i;ans++;
}
}
rev(l,n);ans++;
for (int i=;i<=n;i++) pos[a[i]]=i;
for (int i=n;i>=;i--)
{
ans+=(long long)ask(pos[i]-);
insert(pos[i],);
}
printf("%lld\n",ans);
return ;
}
//Flaze naive!
BZOJ 3176 Sort的更多相关文章
- 【BZOJ】【1552】【Cerc2007】robotic sort / 【3506】【CQOI2014】排序机械臂
Splay 离散化+Splay维护序列…… 好吧主要说一下我做这道题遇到的几个错误点: 1.离散化 2.由于找到的这个数的位置一定是大于等于 i 的,所以其实在把它splay到根以后,i 结点只能sp ...
- BZOJ 1552: [Cerc2007]robotic sort( splay )
kpm大神说可以用块状链表写...但是我不会...写了个splay.... 先离散化 , 然后splay结点加个min维护最小值 , 就可以了... ( ps BZOJ 3506 题意一样 , 双倍经 ...
- BZOJ 3170: [Tjoi 2013]松鼠聚会( sort )
题目的距离为max(|x1-x2|, |y1-y2|) (切比雪夫距离). 切比雪夫距离(x, y)->曼哈顿距离((x+y)/2, (x-y)/2) (曼哈顿(x, y)->切比雪夫(x ...
- BZOJ 4143: [AMPPZ2014]The Lawyer( sort )
水题... 排序搞出每天的会议有哪些, 然后再按照会议的开始时间和结束时间排序, 最晚开始的和最早结束的会议不是同一场而且最晚开始的时间>最早结束的会议就有可能方案 -------------- ...
- 【BZOJ】1552/3506 [Cerc2007]robotic sort
[算法]splay [题解] splay维护序列,用权值(离散化)作为编号.每次找第i小的话直接找对应编号splay即可. 但是这样splay没有下传翻转标记?直接暴力找到路径然后从根到改结点push ...
- bzoj 1552: [Cerc2007]robotic sort
1552: [Cerc2007]robotic sort Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1198 Solved: 457[Submit] ...
- BZOJ 1552/1506 [Cerc2007]robotic sort
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1552 [分析] 这题哇!又有翻转操作...每次要输出第几个?是吧... 所以又要用Spla ...
- BZOJ 1637: [Usaco2007 Mar]Balanced Lineup( sort + 前缀和 )
将 0 变为 -1 , 则只需找区间和为 0 , 即前缀和相同的最长区间 , 记录一下每个前缀和出现的最早和最晚的位置 , 比较一下就 OK 了 --------------------------- ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
随机推荐
- HEAD FIRST HTML & CSS学习笔记
CSS部分 1. border-bottom属性控制元素下边框的外观. eg: border-bottom:1px solid maroon; P265 下划线 text-decoration: ...
- Mac OS 下 mysql 找不到 mysql.sock 的问题
mysql.sock 无法找到一般存在两种问题,一是mysql服务未启动,mysql.sock没有生成,二是mysql.sock的指向位置出错,在指向位置加个mysql.sock的软链接就可以解决. ...
- Android 布局中 如何使控件居中
首先要分两种不同情况,在两种不同的布局方式下:LinearLayout 和RelativeLayout 1. LinearLayout a). android:layout_gravity=" ...
- SharpDevelop的亮点—优化提示
用惯了Visual Studio,像被惯坏了孩子,很难适应别的IDE. 上个月Win7系统崩溃了,重装后,自然VS也没了.这次下定决心,绝对不在自己电脑上用VS了,于是重新捡起SharpDevel ...
- java向Excel文件写入数据
/*使用之前要记得导入第三的jar包这个是我之前使用的时候那别人的东西自己修改了一下 还没来得及好好地封装一下还望见谅,注释我感觉写的挺清楚的就在不进行解释代码了*/package com.zzp.E ...
- scalac 学习
val logEnable = false def log(msg: => String) = if (logEnable) println(msg) val MSG = "progr ...
- MergeRecord_C++中map的使用
//============================================================================ // Name : TTTest.cpp ...
- MVC模式与Android
MVC模式是软件工程中的一种软件架构,“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器”. MVC模式将一个交互式应用程序分为3各组件: 1.Model(模型):业 ...
- IHttpHandler防止图片链接被盗用
public class JpegHandler : IHttpHandler { public bool IsReusable { get { return true; } } public voi ...
- 使用wex5得到的一些教训
博主一直都是做web开发,前段时间有个小想法,想给自己做个android小应用(很小,功能特别简单). 了解到可以用js直接做,貌似很简单,选用了wex5(基于codova插件)来直接开发. 最终发现 ...