http://acm.hfut.edu.cn/OnlineJudge/

中文题。

区间线段树,需要剪枝。n的大小有问题。

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath> using namespace std;
#define ls rt<<1
#define rs rt<<1|1
#define lson l, m, rt<<1
#define rson m + 1, r, rt<<1|1
const int inf = 0x3f3f3f3f;
const int maxn = 2e4 + ; struct SegTree{
int maxv, minv;
int lx, rx, sumx;//该区间左边是否被淹,右边,总的小岛数
}seg[maxn << ];
struct Node{
int h, id;
}q[maxn];
int a[maxn]; void build(int l, int r, int rt){
seg[rt].lx = seg[rt].rx = seg[rt].sumx = ;
if (l == r){
seg[rt].maxv = seg[rt].minv = a[l];
return ;
}
int m = (l + r) >> ;
build(lson);
build(rson);
seg[rt].maxv = max(seg[ls].maxv, seg[rs].maxv);
seg[rt].minv = min(seg[ls].minv, seg[rs].minv);
}
void pushUp(int rt){
seg[rt].sumx = seg[ls].sumx + seg[rs].sumx - (seg[ls].rx & seg[rs].lx);
seg[rt].lx = seg[ls].lx;
seg[rt].rx = seg[rs].rx;
seg[rt].minv = min(seg[ls].minv, seg[rs].minv);//
}
void update(int h, int l, int r, int rt){
if (h < seg[rt].minv) return;
if (h >= seg[rt].maxv){
seg[rt].minv = inf;//这句表明接下来的h对这个区间都不会再有影响,相当于减掉了这个区间否则tle
seg[rt].rx = seg[rt].lx = seg[rt].sumx = ;
return ;
}
int m = (l + r) >> ;
update(h, lson);
update(h, rson);
pushUp(rt);
}
bool cmp(Node a, Node b){
return a.h < b.h;
}
int ans[maxn];
int main(){
int n, m;
scanf("%d", &n);
for (int i = ; i <= n; ++i){
scanf("%d", &a[i]);
}
build(, n, );
scanf("%d", &m);
for (int i = ; i < m; ++i){
scanf("%d", &q[i].h);
q[i].id = i;
}
sort(q, q + m, cmp);
for (int i = ; i < m; ++i){
update(q[i].h, , n, );
ans[q[i].id] = seg[].sumx;
}
for (int i = ; i < m; ++i){
printf("%d\n", ans[i]);
}
return ;
}

hfut 1287的更多相关文章

  1. mysql中,ENCODE警告---Warning Code : 1287

    mysql中,ENCODE警告 共 1 行受到影响, 1 个警告 执行耗时 : 0.072 sec传送时间 : 0.001 sec总耗时 : 0.073 sec Warning Code : 1287 ...

  2. 矩阵乘法 codevs 1287 矩阵乘法

    1287 矩阵乘法  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold       题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象 ...

  3. POJ 1287 Networking (最小生成树)

    Networking Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit S ...

  4. Codevs 1287 矩阵乘法&&Noi.cn 09:矩阵乘法(矩阵乘法练手题)

    1287 矩阵乘法  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 小明最近在为线性代数而头疼, ...

  5. Codevs No.1287 矩阵乘法

    2016-06-01 16:53:23 题目链接: 矩阵乘法 (Codevs No.1287) 题目大意: 给你两个可乘矩阵a,b,求a*b 解法: 定义....... //矩阵乘法 (Codevs ...

  6. POJ 1287 Networking

    题目链接: poj.org/problem?id=1287 题目大意: 你被分派到去设计一个区域的连接点,给出你每个点对之间的路线,你需要算出连接所有点路线的总长度. 题目输入: 一个数字n  代表有 ...

  7. CODEVS 1287 矩阵乘法

    1287 矩阵乘法  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊) ...

  8. ZOJ1372 POJ 1287 Networking 网络设计 Kruskal算法

    题目链接:problemCode=1372">ZOJ1372 POJ 1287 Networking 网络设计 Networking Time Limit: 2 Seconds     ...

  9. POJ 1287:Networking(最小生成树Kruskal)

    id=1287">Networking Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5976   Acce ...

随机推荐

  1. 查看某一个开发者代码修改量的脚本(ios平台可用)

    #!/bin/sh # This is a script that help you get your team member's productivity # by analyzing his/he ...

  2. Idea 代码编辑错误不飘红提示

    Power Save Mode 勾选去掉即可

  3. 【C/C++学院】0831-类与对象的异常/面试100题1-100

    类与对象的异常 Cpp异常 #include <iostream> #include <string.h> using namespace std; //标识错误的类型 cla ...

  4. 我的superui开源后台bootstrap开发框架

    我的superui开源后台bootstrap开发框架:http://git.oschina.net/tzhsweet/superui

  5. 进程资源和进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE

    摘要:本文主要介绍进程资源和进程状态.进程资源由两部分组成:内核空间进程资源以及用户空间进程资源.进程状态,就绪/执行状态.等待状态(能够被中断打断).等待状态(不能够被中断打断).停止状态和僵死状态 ...

  6. How to get the url of a page in OpenERP?

    How to get the url of a page in OpenERP? User is using OpenERP. I have a button on one web page. The ...

  7. &lt;四&gt;读&lt;&lt;大话设计模式&gt;&gt;之代理模式

    代理模式我想大家即便不熟悉也都听过吧,从字面意思上看就是替别人干活的,比方代理商.在项目的实际应用中也有非常多地方用到.比方spring通过代理模式生成对象等. 代理模式的书面定义:为其它对象提供一种 ...

  8. java 开发中的debug

    mysql 的 级联删除与级联更新 create table student( id int, departmentId int, foreign key(departmentId) referenc ...

  9. ibatis常用的集中判断语句

    http://blog.csdn.net/liaomin416100569/article/details/5344483

  10. 灾备用Oracle语句备查

    Oracle常用Sql . 查看数据库的归档模式及闪回是否启用            select log_mode,open_mode,flashback_on .查看实例状态        sel ...