#include<cstdio>
#include<algorithm>
#define LL long long
#define maxn 210000
using namespace std;
int n;
int a[maxn];
int b[maxn];
LL ans;
LL ret[maxn];
void reverse()
{
int i,j,last=1;
for(i=2;i<=n;i++)
if(a[i]>a[i-1])
{
if(i>last+1) ans++;
for(j=last;j<i;j++)
b[j]=a[i-1-j+last];
last=i;
}
if(last<n) ans++; for(j=last;j<=n;j++) b[j]=a[n-j+last];
}
LL get(int x)
{
LL ans=0;
while(x)
{
ans+=ret[x];
x-=(x&-x);
}
return ans;
}
void change(int x)
{
while(x<=n)
{
ret[x]++;
x+=(x&-x);
}
}
int main()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&a[i]);
reverse();
for(i=1;i<=n;i++)
{
ans+=i-get(b[i])-1;
change(b[i]);
}
printf("%lld",ans);
return 0;
}相关推荐
BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析
本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。
3176: [Coci 2012]Sort 树状数组
可以发现第一次reverse后,只会存在一些长度为2的递减序列,其实就是逆序对的数量了。#include<iostream> #include<cstdio> using namespace std;int n,a[100005],tree[100005]; long long ans;inline int read() { int a=0,f=1; char c=getchar();
滑模控制理论(SMC)概述
滑模控制理论(SMC)概述一、背景二、数学理论三、高维拓展四、分析 一、背景 滑模控制理论(Sliding Mode Control, SMC)是一种建立在现代控制理论基础上的控制理论,主要数学核心为李雅普诺夫函数。 滑模控制的核心思想是建立一个滑模面,将被控系统拉取到滑模面上来,使系统沿着滑模面运动。滑模控制的一个优势是无视外部扰动和不确定参数,采用一种比较“暴力”的方式达到控制的目的。 其思想和反步法有些类似,但数学实现起来更加方便而不抽象。相比反步法,滑模控制没有复杂的数学计算,也不会出现“微分爆炸”
P7614 [COCI2011-2012#2] NAJBOLJIH 5
题目描述 给定 88 个数字 X_1,X_2,...,X_8X1,X2,...,X8,从中选出 55 个数字,使得这 55 个数字的总和最大。输出这 55 个数字的和以及它们的编号。X_iXi 的编号为 ii。 输入格式 输入共 88 行,第 ii 行包含一个正整数 X_iXi。保证所有 X_iXi 互不相同。 输出格式 输出共两行。 第一行包含一个整数,表示最大的总和。 第二行包含 55 个整数,表示 55 个数的编号,按升序排序。 输入输出样例 输入 #1复制 20 3
手把手教你用STM32CubeMX和HAL库驱动MT6835磁编码器(SPI读取21位角度)
本文详细介绍了如何使用STM32CubeMX和HAL库驱动MT6835磁编码器,通过SPI接口读取21位高精度角度数据。从硬件准备、CubeMX配置到HAL库驱动实现与优化,提供了完整的实战指南,帮助开发者快速掌握磁编码器的应用技巧,适用于机器人关节和精密仪器等高精度场景。
告别手动点鼠标:用Python脚本批量跑ADS版图仿真,效率提升10倍(附完整代码)
本文详细介绍了如何利用Python脚本自动化ADS版图仿真流程,显著提升射频工程师的工作效率。通过调用ADS底层接口,实现参数化修改、批量任务调度和结果自动收集,解决了手动操作中的常见问题,如仿真不更新等。附完整代码,帮助开发者快速实现10倍效率提升。
bzoj 3176: [Coci 2012]Sort
由于第一次交换长度至少为2,所以进行完第一次交换之后,可以证明之后不再会出现长度为3的递减子段,那么就成了求逆序对、 #include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 100010using namespace std;int c[
从零开始学华为设备:手把手教你用ENSP搭建OSPF实验环境(附拓扑文件)
本文详细介绍了如何使用华为ENSP模拟器从零开始搭建OSPF多区域网络实验环境,包括拓扑规划、设备配置、OSPF参数优化及故障排查技巧。通过实战案例和配置示例,帮助网络工程师快速掌握华为设备的OSPF协议配置,提升企业网络环境中的实战能力。
bzoj 3877: [Ahoi2014]保龄球
Description 【故事背景】 JYY很喜欢打保龄球,虽然技术不高,但是还是总想着的高分。这里JYY 将向你介绍他所参加的特殊保龄球比赛的规则,然后请你帮他得到尽量多的分数。 【问题描述】 一场保龄球比赛一共有N个轮次,每一轮都会有10个木瓶放置在木板道的 另一端。每一轮中,选手都有两次投球的机会来尝试击倒全部的10个木瓶。对于每一次投球机会,选手投球的得分等于这一次投球所
使用AI编写测试用例——详细教程
现阶段AI还不能完全替代人工测试用例编写,但如果把AI当做一个提高效率的工具,它将会是一个很强大的辅助。
ansys命令流力磁耦合仿真
文章目录前言一、力磁耦合仿真流程二、静力学仿真三、力磁耦合模型构建四、静磁学仿真总结 前言 一、力磁耦合仿真流程 力磁耦合有限元仿真流程中,首先进行静力学仿真,经过前处理模块、分析计算模块和后处理模块提取三维模型单元应力,然后根据力磁耦合方程中,通过matlab将单元应力导入到磁导率与应力的关系式中,得到单元的相对磁导率。最后采用载荷传递耦合方式,进行静磁学模拟仿真,分析计算得到该载荷下试件的磁场分布。,如下图所示为力磁耦合仿真流程图: 二、静力学仿真 下图为中心预制条形缺陷的Q235钢板试..
COCI2011/2012 Contest#1 F Solution
DescriptionMirko and Slavko are playing the popular new game known as The Knight. Mirko places a knight chess piece on an NxN chessboard and, with Slavko blindfolded, makes exactly T moves, one per sec
2026年软考信息安全工程师备考指南
信息安全工程师是信息产业部和人事部举办的软考中新增开的一门考试。软考全称全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格,是信息产业部和人事部在最新的“国人厅发[2007]139号文件中新增的专业。2016年下半年,第一次开考信息安全工程师(中级)考试。 考试科目: 1.信息安全基础知识,考试时间为150分钟,笔试,选择题; ...
bzoj2286: [Sdoi2011消耗战] 虚树构造
首先我们考虑每次都做一遍树形DP(树形DP自己脑补去,随便乱搞就过了)。 显然这是TLE无疑的。 由于要改变的节点个数很少,我们可以考虑用虚树重新建图,缩小范围,这样一棵树上最多有m*2个节点 然后每次对虚树进行树形dp这样总的复杂度就是n*logn的了,logn是lca的复杂度。 然后就是各种细节的地方了。。。。。#include #include #include
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
bzoj3572: [Hnoi2014]世界树
学习了一种新的树形结构——虚树,就是把每个树上是链的部分缩起来,再对这些在虚树上的点进行操。 这题其实几天前就A掉了。。。只是题解还没写…… 这题有个很直观的想法,就是把询问点按dfs序排序,然后只保留相邻点的lca。然后再乱搞。。。 然后有个很直观的感觉就是不可打(当然这是因为我太弱了。。。) 然后去膜拜ydc神犇的代码。 然后发现非常好写! 然后还明白了这个东西叫做虚树。。
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
bzoj2333: [SCOI2011]棘手的操作 线段树+离线
网上都是可并堆在线搞,其实直接离线处理处每个联通块,然后把他们放一起,然后点更新,区间询问就可以了。 #include #include #include #include using namespace std; #define INF 100000000 #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define get
bzoj2877: [Noi2012]魔幻棋盘 树套数+差分
神题,只能膜拜题解。然后发现了差分这个东西,所谓差分就是sigma{a[i]}=b[i]; a[i]=b[i]-b[i-1];(是不是和辗转相减很像。。。。。) 我们再来看一下二维的怎么做。。然后我们换一种维护的方法。因为题目要求一定会查询到守护者a[x, y],所以我们以(x, y)为原点,建立直角座标系。二维的一样是得差分,对于第四象限的点:b[i, j] = a[i, j] - a[i-1
bzoj3242: [Noi2013]快餐店 树形dp+线段树
对于不是环上的点我们可以用树形dp解决,剩下的就是在一个环上找距离最远的两点。我们可以拆环,几下每个点第一大和第二大的距离 这样最长链就是max{sum[j]-sum[i]+dis[i]+dis[j]}。 于是用两颗线段树分别维护max{sum[j]+dis[j]}和max{dis[i]-sum[i]}。然后更新答案。 #include #include #include #inc
bzoj3611: [Heoi2014]大工程 虚树+树形dp
题目大意:给定一棵树,m次询问,每次给出k个关键点,询问这k个点之间的两两距离和、最小距离和最大距离 n 思路:利用LCA单调性,每次询问的时候重新建树,在这棵树上做DP,使得总体时间复杂度降到O(nlogn)。 我的做法是维护四个数组,sum,size,_min,_max,分别表示以当前节点为根节点的子树中的所有关键点到根节点的距离的总和,共有多少个
bzoj2594: [Wc2006]水管局长数据加强版
离线处理后不难发现就是一个LCT询问两点间最大值最小值之类的,然后就上模板#include #include #include #include #include using namespace std; int getint() { char ch = getchar(); for ( ; ch > '9' || ch < '0'; ch = getchar());
bzoj2518: [Shoi2010]滚动的正四面体 线段树
写这个题的同学请提前做好心理准备。此题堪称史上最烦人的线段树了,和bzoj1018差不多。都是上海的线段树。尼玛为何都这么丧心病狂。。。结合14年的三叉神经树,上海的数据结构虽然都还停留在线段树阶段但代码量都是在250+,无力吐槽。 说说这个题怎么做吧。首先我们可以模拟出初始序列的样子。我大了一个表a[I][J][K]代表i为底面j为朝向我们的面向三个方向转后底面是哪个面。最好自己拿一个正四面体
bzoj2850: 巧克力王国 kd-tree
裸kd-tree,注意估价函数的写法,每个点记个sum。 #include #include #include #include using namespace std; #define ll long long #define maxn 60000 int read() { int x=0,f=1;char ch=getchar(); while(ch'9'){if(c
bzoj2157: 旅游 树链剖分模板题
今天考试碰到一个树链剖分的模板题,由于脑抽一时忘记了整个子树是怎么修改的。。。。其实就是加上个siz。。。。 然后就找了一个操作比较全的树链剖分切了。。。。#include #include #include #include #include using namespace std; #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<
BZOJ 2002 弹飞绵羊 Link-Cut-Tree(LCT)
首先这个序列从右往左捋一下肯定是一棵树。错了不对,是一颗森林。 而第二个操作可以随时改变这棵森林的结构 于是这道题很明显是动态树结构中的Link-Cut-Tree。 关于LCT的概念网上有很多 这里只列出一个关键点 就是如何找到链顶的父节点 其实虽然这个算法的实现方式是对每一条重链(想不出名字来了,就沿用轻重链剖分的名字吧)维护一棵Splay,但实质上每一
bzoj2733: [HNOI2012]永无乡 splay+启发式合并
正解不是splay,但标解是splay+启发式合并。所谓的启发式合并就是把size小的往大的splay上加,复杂度是nlog2n。 由于无需知道根所以直接看此节点有没有父亲节点就可以判断是不是根。#include #include #include #include #include using namespace std; #define maxn 120110 int fa[max
bzoj3110: [Zjoi2013]K大数查询 树套数
写了个主席树套线段树 数据小,所以就过了23333#include #include #include #include #include using namespace std; int getint() { int res;char c; while(c=getchar(),c'9'); res=c-'0'; while(c=getchar(),c>=
bzoj1500: [NOI2005]维修数列
今天比较闲所以把这个题拿来练练手。从晚9点写到12点半然后改到凌晨2点终于改完。。。。最后还被大神说是写得快的了 说byvoid大神写了两个早上加一个下午。。。。 前几个操作都很简单之接搞就可以了。对于最后一个操作我们可以用类似于线段树区间合并的标记来做。lmax和rmax,mmax表示左边区间以左开头和以右结尾和中间的最大和。 rever后记得要swap(lmax,rmax)哟,还有要用一个
253



被折叠的 条评论
为什么被折叠?



