传送门

题意:

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

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

思路:

  定义 (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. Django常见问题

    1.什么是中间件? 中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出. 中间件一般做认证或批量请求处理,django中的中间 ...

  2. Node编码规范

    编码规范 1. 缩进 采用2个空格缩进,而不是tab缩进.空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同.2个空格会让代码看起来紧凑.明快. 2. 变量声明 永远用var声明变量,不加v ...

  3. bcrypt 安装不成功解决办法

    同一个项目,公司和家里的 node.js 的版本不同,导致项目安装依赖包时 bcrypt 安装不成功. 家里的版本为:8.11.3 公司的版本为:10.14.2 在当前项目中执行完下面两个命令后,报错 ...

  4. 安装CentOs 7.3

    步 下载安装 CentOS 7.3  下载地址 1.官网:https://www.centos.org/download/ 2.centos阿里汇总:https://yq.aliyun.com/zt/ ...

  5. mybatis 在xml文件中获取当前时间的sql

    在Service等地方获取当前时间: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日 ...

  6. hadoop wordcout测试

    hadoop wordcout测试 安装好hadoop 环境后,启动HDFS等服务:输密码 1004 start-all.sh 查看启动情况 1006 jps 1007 cd ~ 切换到用户默认目录 ...

  7. 安装WebLogic失败,出现”[VALIDATION] [ERROR]:INST-07004: Oracle 主目录(O) 位置包含一个或多个无效字符“解决方案

    题如图 解决方案: 在管理员cmd窗口定位到jdk bin目录,然后输入以下命令 java -jar F:\java\fmw_12.2.1.3.0_wls_quick_Disk1_1of1\fmw_1 ...

  8. 从Java小白到阿里巴巴工程师,回顾我两年来的学习经历

    添加描述

  9. easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)

    easyui datagrid 表头固定(垂直滚动条).列固定(水平滚动条),每页显示1000行 最近用多了easyui 之后还是觉得它的功能还是很强大的.它原有的功能就已经能够满足90%以上的界面需 ...

  10. flask轻量级框架入门

    # -*- encoding: utf-8 -*- #导入Flask类, 导入重定向,url_for是简易寻址跳转, from flask import Flask,redirect,url_for, ...