传送门

题意:

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

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

思路:

  定义 (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. mac webstorm无法打开 如何使webstorm不卡

    场景:在应用程序里删除了原先的webstorm,然后从官网下载了新的安装包,进行安装.安装后,webstorm就再也打不开了. 解决方案:执行以下命令,清楚webstorm所有缓存,然后重新安装 $ ...

  2. git创建分支并提交到远程分支

    来自:https://www.cnblogs.com/bluestorm/p/6252900.html 侵删 git branch(分支命令的使用http://hbiao68.iteye.com/bl ...

  3. ArcGIS API for JavaScript 入门教程[7] 再讲视图——View的基本属性

    [回顾]上篇花大篇幅讲了ArcGIS Server上的数据服务与部分常用可操作图层的创建关系,还讲了OGC的几个规范. 本篇回到JsAPI 4.x的新特性——视图类中来. 在第3篇讲过,4.x将视图从 ...

  4. Java中的Iterable与Iterator详解

    在Java中,我们可以对List集合进行如下几种方式的遍历: List<Integer> list = new ArrayList<>(); list.add(5); list ...

  5. Delphi中使用ISuperObject解析Json数据

    Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即Isuper ...

  6. 【博客导航】Nico博客导航汇总

    摘要 介绍本博客关注的内容大类.任务.工具方法及链接,提供Nico博文导航. 导航汇总 [博客导航]Nico博客导航汇总 [导航]信息检索导航 [导航]Python相关 [导航]读书导航 [导航]FP ...

  7. Luogu4655 [CEOI2017]Building Bridges

    Luogu4655 [CEOI2017]Building Bridges 有 \(n\) 根柱子依次排列,每根柱子都有一个高度.第 \(i\) 根柱子的高度为 \(h_i\) . 现在想要建造若干座桥 ...

  8. 吐血总结|史上最全的MySQL学习资料!!

    在日常工作与学习中,无论是开发.运维.还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一.在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL. 在刚刚出 ...

  9. FB商务管理平台(Business Manager) (2)

    Business Manager 商务管理平台(以下简称BM)API 一站式管理广告帐户.主页及相关的工作人员. BM功能结构(其中:账户下的节点属于市场营销API) API / SDK FB提供了多 ...

  10. react dnd demo

    target import React ,{ Component } from 'react'; import { DropTarget } from 'react-dnd'; import Item ...