岛屿(洛谷 U5399)
题目背景
放假了,Lkw和mm到岛上旅游。阳光明媚,风景秀丽。正当Lkw和mm享受眼前这旖旎的风光时,突降大雨,小岛上开始积水,没过几分钟,水便快要触及膝盖。Lkw和mm意识到了事态的严重性,赶紧向高地跑去,可在涌动的人流中,Lkw和mm失散了...水越涨越高,Lkw拿着望远镜四处寻找,耳边不停地传来mm的呼喊,可就是不见mm的身影……焦急的Lkw想知道mm可能在几个区域,你能帮助他么?
题目描述
从水平方向看,我们把岛屿分成n个小块,每个部分用一个数h表示高度,每个区域由相连的小块组成。一开始,水位为0,整个岛屿只有一个区域,在水上涨的过程中,某些小块会被淹没,这样原本相连的区域就会变成多个,假设每个时刻水位会上涨1,现在Lkw想知道q个时刻的情况。
输入输出格式
输入格式:
输入第一行包含一个整数n
第二行包含n个整数,分别表示每个小块的高度
第三行包含一个整数q
第四行包含q个整数,表示要询问的q个时刻。
输出格式:
输出共包含q行,每行表示该时刻mm可能在的区域有几个。
输入输出样例
7
1 2 3 1 2 1 3
3
1 2 3
3
2
0
说明
对于30%的数据n<=1000 q<=1000
对于100%的数据n<=100000 q<=100000 h<=109
输入保证q单调递增
/*
将数列按照高度排序,先计算出一个开始时的区域数ans,当要下落的石块左右两边都已经下落时,ans--;当要下落的石块的左右两边都没下落时,ans++。
第一遍做只考虑了下落的那个时刻,没考虑其他时刻,WA了。
*/
#include<iostream>
#include<algorithm>
#define N 100010
using namespace std;
int n,tmp,now=,ans=;
struct node
{
int h;
int x;
bool operator < (node t)const
{
return t.h>h;
}
};node a[N];
bool flag[N];
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>tmp;
a[i].h=tmp;
a[i].x=i;
flag[i]=;
}
sort(a+,a+n+);
cin>>n;
for(int i=;i<=n;i++)
{
cin>>tmp;
while(a[now].h<=tmp&&now<=n)
{
int t=-,x=a[now].x;
if(x>&&flag[x-]) t++;
if(x<n&&flag[x+]) t++;
ans+=t;
flag[x]=;
now++;
}
cout<<ans<<endl;
}
return ;
}
岛屿(洛谷 U5399)的更多相关文章
- 洛谷P4312 [COCI 2009] OTOCI / 极地旅行社(link-cut-tree)
题目描述 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务. 当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mi ...
- 洛谷P1000超级马里奥的神奇解法
话说上过洛谷的都知道,有一道经典例题P1000超级马里奥,这一题,可以说是非常简单非常经典,但是就算如此,还是可以人才辈出,我是个比较循规蹈矩的人(雾),所以我的代码就比较平常,也就是直接输出了所要求 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
随机推荐
- 依赖管理工具漫谈--从Maven,Gradle到Go
http://jolestar.com/dependency-management-tools-maven-gradle/
- 异步http框架简介&实现原理
1 )说明: Android开源代码:www.github.com 模拟一个异步http请求说明
- MySQL里面的子查询实例
一,子选择基本用法 1,子选择的定义 子迭择允许把一个查询嵌套在另一个查询当中.比如说:一个考试记分项目把考试事件分为考试(T)和测验(Q)两种情形.下面这个查询就能只找出学生们的考试成绩 selec ...
- 验证码点击刷新 this.src=this.src+'?'+Math.random()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- centOS下yum安装配置samba
centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...
- java中request,application,session三个域及参数简单示例
直接上代码: java代码: public class HelloAction implements Action { @Override public String execute() throws ...
- goquery
使用goquery 会用jquery的,goquery基本可以1分钟上手,下面是goquery文档 http://godoc.org/github.com/PuerkitoBio/goquery 1. ...
- [Redis]c# redis缓存辅助类
public static class RedisCache { private static IRedisClient RCClient = null; /// <summary> // ...
- C++中 :: 的意思
表示作用域,和所属关系 ::是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)2)class scope(类作用域符),用法(class::name) ...
- matlab怎么定义一个数组
A=[];n=input('n=');%数组的长度for i=1:n fprintf('a%.0f=',i); x=input('');%分别输入各个数的值 A=[A,x];endA就可以得到长度为n ...