传送门

题意:

  给出一个序列,你可以将任意一个数移到最前面;

  求最少需要移动多少次,可以是此序列变成非递减序列;

思路:

  定义 (ai,aj) 为逆序对 ( i < j , ai > aj ), 求出 aj 的最大值,用变量 curMax 存储;

  遍历一遍数组,求解 ans;

  对于∀ i ∈[1,n]

  ①如果 ai < curMax , ans++;

  ②如果 ai == curMax , 那么需要特殊判断:

    (2.1)如果 ai 之前不曾出现比 curMax 大的数,不需要移动;

    (2.2)反之,ans++;

AC代码:

 #include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+; int n;
int a[maxn];
int preMax[maxn];///preMax[i]:[1,i]的最大值 int Solve()
{
int curMax=;
for(int i=n;i >= ;--i)
if(a[i] < preMax[i-])///找逆序对(x,y)的最大的y
curMax=max(curMax,a[i]);
int ans=;
bool flag=false;
for(int i=;i <= n;++i)
{
if(a[i] > curMax)///判断[1,i]有无比curMax大的数出现
flag=true;
if(a[i] < curMax)///情况①
ans++;
if(flag && a[i] == curMax)///情况2.2
ans++;
}
return ans;
}
int main()
{
int test;
while(~scanf("%d",&test))
{
while(test--)
{
scanf("%d",&n);
preMax[]=;
for(int i=;i <= n;++i)
{
scanf("%d",a+i);
preMax[i]=max(preMax[i-],a[i]);
}
printf("%d\n",Solve());
}
}
return ;
}

求逆序对(x,y)中最大的y 需要树状数组求么????

答案是否定的,直接遍历一遍,记录一下前i个数得最大值就好了;

but,比赛的时候,用的是树状数组求最大的y;

按理说,树状数组求逆序对是树状数组最基本的操作(quq,逃);

代码写搓可还行(debug俩小时,然鹅,还没该对,以至于我都开始怀疑数据了);

经过这次debug,这辈子都不会写搓树状数组求逆序对得代码了;

学弟思路(tql):

  遍历一遍数组 a ,判断最多有多少个连续得最大值,假设有 x 个,输出 n-x;

AC代码:

 #include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+; int n;
int a[maxn];
int b[maxn]; int Solve()
{
memcpy(b+,a+,sizeof(int)*n);
sort(b+,b+n+);
int ans=n;
for(int i=n;i >= ;--i)
if(b[ans] == a[i])///判断最多的连续的最大值
ans--;
return ans;
}
int main()
{
int test;
while(~scanf("%d",&test))
{
while(test--)
{
scanf("%d",&n);
for(int i=;i <= n;++i)
scanf("%d",a+i);
printf("%d\n",Solve());
}
}
return ;
}

The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored E.Sequence in the Pocket(思维题)的更多相关文章

  1. The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored(E F G H I)

    http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=392 E:Sequence in the Pocket 思路:从 ...

  2. The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple (Mirror)

    B题 思路 因为 \[ x=\sum\limits_{k=1}^{n}ka_k\\ y=\sum\limits_{k=1}^{n}ka_{k}^{2} \] 我们设交换前和交换后的这两个等式的值设为\ ...

  3. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - L Doki Doki Literature Club

    Doki Doki Literature Club Time Limit: 1 Second      Memory Limit: 65536 KB Doki Doki Literature Club ...

  4. 2018浙江省赛(ACM) The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple

    我是铁牌选手 这次比赛非常得爆炸,可以说体验极差,是这辈子自己最脑残的事情之一. 天时,地利,人和一样没有,而且自己早早地就想好了甩锅的套路. 按理说不开K就不会这么惨了啊,而且自己也是毒,不知道段错 ...

  5. The 16th Zhejiang provincial collegiate programming contest

    今天我挺有状态的,看过的题基本都给了正解(可能是昨晚cf div3打得跟屎一样,人品守恒,不好意思发题解了),自己也给队伍签了很多水题(不敢让队友写,怕出锅). 最后6题滚了,有点可惜.还差B和K没做 ...

  6. The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - F 贪心+二分

    Heap Partition Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge A sequence S = { ...

  7. The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - C 暴力 STL

    What Kind of Friends Are You? Time Limit: 1 Second      Memory Limit: 65536 KB Japari Park is a larg ...

  8. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - M Lucky 7

    Lucky 7 Time Limit: 1 Second      Memory Limit: 65536 KB BaoBao has just found a positive integer se ...

  9. The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - J CONTINUE...?

    CONTINUE...? Time Limit: 1 Second      Memory Limit: 65536 KB      Special Judge DreamGrid has  clas ...

随机推荐

  1. jsp内置对象-page对象

    page对象代表jsp本身,只有在jsp页面才有效.page对象本质上是被转换后的Servlet,因此它可以调用任何被Servlet类所定义的方法. 项目ch05案例:创建HttpJSPPage类的对 ...

  2. 安装centos5.x的基本优化配置

    1.添加账号

  3. 在SuperMap iDesktop中如何快速追加记录行?

    SuperMap iDesktop 产品中,普通数据集右键查看属性表,无法编辑行.是因为要直接在属性表中添加行,只能是纯属性数据集才可用. 除了直接打开数据集,增加几何对象,还有什么办法可以快速追加记 ...

  4. 基于python的种子搜索网站-开发过程

    本讲会对种子搜索网站的开发过程进行详细的讲解. 源码地址:https://github.com/geeeeeeeek/bt 项目开发过程 项目简介 该项目是基于python的web类库django开发 ...

  5. 一些android开发实用性网站记录

    android开发一些有用的网站有很多,可以方便我们开发,记录一下哈. 1.Android源代码在线阅读:https://www.androidos.net.cn/sourcecode 2.在线Jso ...

  6. WPF:Webbrowser 捕获关闭事件

    有点难描述说的是什么.大概就是下面这个图:窗体中嵌套一个Webbrowser,现在网页请求关闭 响应MessageHook事件: this.webBrowser.MessageHook += webB ...

  7. gitbook 入门教程之主题插件

    主题插件 目前 gitbook 提供三类文档: Book 文档,API 文档和 FAQ 文档. 其中,默认的也是最常使用的就是 Book 文档,如果想要了解其他两种文档模式,需要引入相应的主题插件. ...

  8. lambda 怎么传递ref参数

    lambda 传递ref参数有个语法bug,必须要显式书写参数类型. //如 delegate bool FuncType(ref int num); FuncType func1; func1 = ...

  9. IOS跟ANDROID的区别

    大家总是会纠结哪个手机系统会更加适合自己,那就由小编我简要介绍一下IOS和安卓的区别吧! 运行机制:安卓是虚拟机运行机制,IOS是沙盒运行机制.这里再说明一下这两者的主要不同之处.安卓系统中应用程序的 ...

  10. 将CSV文件写入MySQL

    先打开CSV文件查看第一行有哪些字段,然后新建数据库,新建表.(若字段内容很多建议类型text,如果设成char后续会报错) 命令如下: load data infile '路径XXXX.csv' i ...