题意:

给你一个序列,要求你从小到大排序,你可以划分成一个块一个块地进行块内排序,问你最多能分成几个块

思路:

贪心,首先感觉就是有正序的话我就分开啊;

难道倒序不能分块?321肯定不行啊。

存不存在连续两个倒序,但是后面有元素比前面块小,存在:[6 3] [5 1]

这样分成两块是错的。

所以首先是1,然后是2,然后是3,你可以标记啊,这个块有那么多元素,就是一段区间

比如第一个块,有n个元素的话,那么一定是[1,n],然后就是模拟。

然后他的数组元素不是1-n范围的,那么先离散化一下。

注意:重复元素在离散化时,要按照坐标小优先;

#include<bits/stdc++.h>
using namespace std; const int N=1e5+10;
int n;
int a[N],dp[N]; struct asd{
int val;
int id;
};
asd q[N]; bool cmp(asd x,asd y){
if(x.val==y.val)
return x.id<y.id;
return x.val<y.val;
} void init (){
sort(q+1,q+n+1,cmp);
for(int i=1;i<=n;i++)
dp[q[i].id]=i;
// for(int i=1;i<=n;i++)
// printf("%d ",dp[i]);
} int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
q[i].id=i;
q[i].val=a[i];
}
init();
int ans=0;
int flag=0;
int temp=0;
for(int i=1;i<=n;i++)
{
if(flag<dp[i])
{
flag=dp[i];
temp++;
}
else
temp++;
if(flag==temp)
ans++;
}
printf("%d\n",ans);
return 0;
}

CodeForces599C【贪心】的更多相关文章

  1. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  2. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  7. code vs 1098 均分纸牌(贪心)

    1098 均分纸牌 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解   题目描述 Description 有 N 堆纸牌 ...

  8. 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心

    SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...

  9. 【贪心】HDU 1257

    HDU 1257 最少拦截系统 题意:中文题不解释. 思路:网上有说贪心有说DP,想法就是开一个数组存每个拦截系统当前最高能拦截的导弹高度.输入每个导弹高度的时候就开始处理,遍历每一个拦截系统,一旦最 ...

随机推荐

  1. php源码zend_do_begin_namespace函数详解

    version:5.6.21 file:Zend/zend_compile.c line:7055-7152 void zend_do_begin_namespace(const znode *nam ...

  2. MapReduce 1工作原理图文详解

    MapReduce工作原理图文详解 一 MapReduce程序执行流程 程序执行流程图如下: 流程分析:1.在客户端启动一个作业.2.向JobTracker请求一个Job ID.3.将运行作业所需要的 ...

  3. Leetcode 002-Search Insert Position

    #Given a sorted array and a target value, return the index if the target is found. If not, return th ...

  4. g++: command not found的解决

    G++没有装或却没有更新   以下方法都可以试试: centos: yum -y update gcc yum -y install gcc+ gcc-c++   ubuntu: apt-get up ...

  5. Entity Framework(EF)(一)之database first

    1.EF简介ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.该框架曾经为.NET Framework的 ...

  6. ideal 控制台乱码 解决

    run config  中 tomcat VM options中填入一下命令 -Dfile.encoding=UTF-8

  7. 项目中一个普通的Java类如何获取serviceimpl实现类(二)

    HbOnLineConfigServiceImpl hbOnlineService=(HbOnLineConfigServiceImpl) WebContextFactoryUtil.getBean( ...

  8. Raspberry Pi3 ~ C语言控制串口

    注明出处:http://www.cnblogs.com/einstein-2014731/p/5551846.html 使用C语言控制树莓派3B的串口,实现使用串口收发数据的目的.之前以为这个串口是被 ...

  9. 10.19-10.20 test

    2016 10.19-10.20 两天  题目by mzx Day1: T1:loverfinding 题解:hash #include<iostream> #include<cst ...

  10. 分布式版本控制系统—git命令

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...