题目传送门

 /*
从大到小排序,逆向思维,从最后开始考虑,无后向性
每找到一个没被淹没的,对它左右的楼层查询是否它是孤立的,若是++,若不是--
复杂度 O(n + m),还以为 O(n^2)吓得写了一半就不写了
*/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <string>
using namespace std; const int MAXN = 1e6 + ;
const int INF = 0x3f3f3f3f;
struct Hight
{
int val, id;
}h[MAXN];
int q[MAXN];
int vis[MAXN];
int ans[MAXN]; bool cmp(Hight a, Hight b)
{
return a.val > b.val;
} int main(void) //ACdream 1205 Disappeared Block
{
//freopen ("J.in", "r", stdin); int t;
int n, m; scanf ("%d", &t);
int cas = ;
while (t--)
{
memset (vis, , sizeof (vis));
scanf ("%d%d", &n, &m);
for (int i=; i<=n; ++i)
{
scanf ("%d", &h[i].val);
h[i].id = i;
}
for (int i=; i<=m; ++i) scanf ("%d", &q[i]); sort (h+, h++n, cmp); int cnt = ; int res = ;
for (int i=, j=m; j>=; --j)
{
for (; i<=n; ++i)
{
if (h[i].val <= q[j]) break;
int pos = h[i].id;
vis[h[i].id] = ;
if (!vis[pos-] && !vis[pos+]) res++;
if (vis[pos-] && vis[pos+]) res--;
}
ans[j] = res;
}
printf ("Case #%d: ", ++cas);
for (int i=; i<=m; ++i) printf ("%d%c", ans[i], (i==m) ? '\n' : ' ');
} return ;
} /*
Case #1: 1 1 2
Case #2: 1 2 1 1 0
*/

排序+逆向思维 ACdream 1205 Disappeared Block的更多相关文章

  1. iOS-Block总结 && 全面解析逆向传值

    1.block的特点:      block是C语言:      block是一种数据类型.可以当做参数,也可以用做返回值:--总之,对比int的用法用即可(当然,定义的时候,最好跟函数对比):   ...

  2. [转]iOS代码块Block

    代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返回值,特殊地,Block还可以保存一段代码,在需要 ...

  3. magento 产品列表排序、分页功能

    我们以 catalog_category_layered 控制器为例说明 在catalog.xml 找到catalog_category_layered配置段 <catalog_category ...

  4. ios Block详解

    一. iOS代码块Block 1.1 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返回值, ...

  5. 一篇文章看懂iOS代码块Block

    block.png iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返 ...

  6. ClickHouse源码笔记6:探究列式存储系统的排序

    分析完成了聚合以及向量化过滤,向量化的函数计算之后.本篇,笔者将分析数据库的一个重要算子:排序.让我们从源码的角度来剖析ClickHouse作为列式存储系统是如何实现排序的. 本系列文章的源码分析基于 ...

  7. ubifs概述

    UBIFS无排序区块图像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一.真正开 ...

  8. 浅析Hadoop文件格式

    Hadoop 作为MR 的开源实现,一直以动态运行解析文件格式并获得比MPP数据库快上几倍的装载速度为优势.不过,MPP数据库社区也一直批评Hadoop由于文件格式并非为特定目的而建,因此序列化和反序 ...

  9. Ensemble Learning 之 Gradient Boosting 与 GBDT

    之前一篇写了关于基于权重的 Boosting 方法 Adaboost,本文主要讲述 Boosting 的另一种形式 Gradient Boosting ,在 Adaboost 中样本权重随着分类正确与 ...

随机推荐

  1. JVM垃圾收集策略解析

    地址:http://developer.51cto.com/art/201002/184385_all.htm

  2. NGUIJoysticK

    原始的: using UnityEngine; using System.Collections; public class NGUIJoystick : MonoBehaviour { public ...

  3. python如何安装pip和easy_installer工具

    1.在以下地址下载最新的PIP安装文件:http://pypi.python.org/pypi/pip#downloads 2.解压安装 3.下载Windows的easy installer,然后安装 ...

  4. Linux Apache和Nginx的比较

    1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx ...

  5. 在VMware的虚拟机平台上如何进行网络设置

    1.本文构建的是这样一个网络,有两台winXP系统的PC,处于同一局域网内,PC里 都装有VMware虚拟机,虚拟机上跑的是Redhat Linux 9,我们想要在winXP系统下访问本机的虚拟机li ...

  6. AngularJS服务中serivce,factory,provider的区别

    Angular服务是一个由服务工厂创建的单例对象.这些服务工厂是由 service provider 依次创建的.而service providers是构造函数.它们必须包含一个$get属性用于在实例 ...

  7. 【转】tomcat下部署 solr 5.3.1

    本文转自:http://blog.csdn.net/lianghyan/article/details/49467207 solr下载: http://lucene.apache.org/solr/d ...

  8. 如何在命令行下运行kettle的作业(job)和转换(transform)

    pan 是执行转换的. Pan.bat /file C:\test.ktr /logfile c:\log.txt /level Basic kitchen是执行job的. kitchen.bat / ...

  9. August 1st, 2016, Week 32nd Monday

    Laughing is the most touching mask. 笑容是最动人的面具. I used to be very weclome in those I had met. And the ...

  10. Hadoop配置文件

    部分内容参考:http://www.linuxqq.net/archives/964.html  http://slaytanic.blog.51cto.com/2057708/1100974/ ht ...