》》点击进入原题《《

思路:题解很有意思,适合线段树进阶

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; #define lson l,m,o<<1
#define rson m+1,r,o<<1|1 const int maxn = 1e5 + ;
int a[maxn], d1[maxn], d2[maxn];
int tree[maxn << ], vis[maxn << ];
int ans, cur; void build(int l, int r, int o){
if (l == r){
tree[o] = a[l];
vis[o] = l;
return;
}
int m = (l + r) >> ;
build(lson);
build(rson);
tree[o] = max(tree[o << ], tree[o << | ]);
if (tree[o << ] >= tree[o << | ])
vis[o] = vis[o << ];
else vis[o] = vis[o << | ]; }
void query(int l, int r, int o, int ql, int qr, int k){
if (l == r){
if (tree[o]>k)
cur = min(cur, l);
return;
}
int m = (l + r) >> ;
if (l >= ql&&r <= qr){
if (tree[o << ] > k)
query(lson, ql, qr, k);
else if (tree[o << | ] > k)
query(rson, ql, qr, k);
return;
}
if (ql <= m)
query(lson, ql, qr, k);
if (qr > m)query(rson, ql, qr, k);
}
void query1(int l, int r, int o, int ql, int qr){
if (l >= ql&&r <= qr){
if (tree[o] > a[cur])
cur = vis[o];
return;
}
int m = (l + r) >> ;
if (ql <= m)query1(lson, ql, qr);
if (qr > m)query1(rson, ql, qr);
}
int main(){
ios::sync_with_stdio(false); int t; cin >> t;
while (t--){
int n, m, p, q, Max = ;
cin >> n >> m;
for (int i = ; i <= n; i++){
cin >> a[i];
if (a[i] > Max)
d1[i] = d1[i - ] + , Max = a[i];
else d1[i] = d1[i - ];
}
build(, n, );
for (int i = n; i; i--){
cur = n + ;
query(, n, , i, n, a[i]);
if (cur > n)cur = ;
d2[i] = d2[cur] + ;
}
while (m--){
cin >> p >> q;
ans = cur = ;
if (p != ){
query1(, n, , , p - );
}
ans += d1[cur];
if (q > a[cur])ans++;
else q = a[cur];
cur = n + ; if (p != n)query(, n, , p + , n, q);
if (cur <= n)ans += d2[cur];
cout << ans << endl;
}
}
}

多校1010 Taotao Picks Apples的更多相关文章

  1. 多校 1010 Taotao Picks Apples(补题)

    >>点击进入原题<< 思路:题解很有意思,适合线段树进阶 考虑每次修改不叠加,因此我们可以从如何对原序列进行预处理着手.通过观察可以发现,将原序列从任意位置断开,我们可以通过分 ...

  2. 【杂题总汇】HDU-6406 Taotao Picks Apples

    [HDU 6406]Taotao Picks Apples 多校赛的时候多写了一行代码就WA了……找了正解对拍,在比赛结束后17分钟AC了

  3. hdu 6406 Taotao Picks Apples 线段树 单点更新

    Taotao Picks Apples Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Ot ...

  4. [乱搞]hdu 6406 Taotao picks apples 笛卡尔树+倍增

    题目链接 Problem Description There is an apple tree in front of Taotao's house. When autumn comes, n app ...

  5. hdu6406 Taotao Picks Apples(线段树)

    Taotao Picks Apples 题目传送门 解题思路 建立一颗线段树,维护当前区间内的最大值maxx和可摘取的苹果数num.最大值很容易维护,主要是可摘取的苹果数怎么合并.合并左右孩子时,左孩 ...

  6. hdu 6406 Taotao Picks Apples (线段树)

    Problem Description There is an apple tree in front of Taotao's house. When autumn comes, n apples o ...

  7. hdu 6406 Taotao Picks Apples (2018 Multi-University Training Contest 8 1010)(二分,前缀和)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=6406 思路: 暴力,预处理三个前缀和:[1,n]桃子会被摘掉,1到当前点的最大值,1到当前点被摘掉的桃子的 ...

  8. HDU 6406 Taotao Picks Apples & FJUT3592 做完其他题后才能做的题(线段树)题解

    题意(FJUT翻译HDU): 钱陶陶家门前有一棵苹果树. 秋天来了,树上的n个苹果成熟了,淘淘会去采摘这些苹果. 到园子里摘苹果时,淘淘将这些苹果从第一个苹果扫到最后一个. 如果当前的苹果是第一个苹果 ...

  9. HDU 6406 Taotao Picks Apples 线段树维护

    题意:给个T,T组数据: 每组给个n,m:n个数,m个操作: (对序列的操作是,一开始假设你手上东西是-INF,到i=1时拿起1,之后遍历,遇到比手头上的数量大的数时替换(拿到手的算拿走),问最后拿走 ...

随机推荐

  1. JeePlus:代码生成器-生成示例(操作)

    ylbtech-JeePlus:代码生成器-生成示例(操作) 1.返回顶部 1. 生成示例由以下部分组成 单表 主附表 树表 富文本 图片管理 自定义树组件 自定义Grid 多对多 左树右表 2. 2 ...

  2. bzoj2093: [Poi2010]Frog(单调队列,倍增)

    2093: [Poi2010]Frog Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 568  Solved: 186[Submit][Status] ...

  3. 用 python 写一个模拟玩家移动的示例

    实例:二维矢量模拟玩家移动 在游戏中,一般使用二维矢量保存玩家的位置,使用矢量计算可以计算出玩家移动的位置,下面的 demo 中,首先实现二维矢量对象,接着构造玩家对象,最后使用矢量对象和玩家对象共同 ...

  4. Akka源码分析-Cluster-Metrics

    一个应用软件维护的后期一定是要做监控,akka也不例外,它提供了集群模式下的度量扩展插件. 其实如果读者读过前面的系列文章的话,应该是能够自己写一个这样的监控工具的.简单来说就是创建一个actor,它 ...

  5. mysql-5.7.20基本用法

    第1章 安装mysql-5.7.20 1.1 系统环境 [root@mysql ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (C ...

  6. Android 性能优化(14)网络优化( 10)Determining and Monitoring the Connectivity Status

    Determining and Monitoring the Connectivity Status This lesson teaches you to Determine if you Have ...

  7. apache-storm-0.9.6.tar.gz的集群搭建(3节点)(图文详解)

    不多说,直接上干货! Storm的版本选取 我这里,是选用apache-storm-0.9.6.tar.gz Storm的本地模式安装 本地模式在一个进程里面模拟一个storm集群的所有功能, 这对开 ...

  8. Sql生成不重复的数字

    -- ============================================= -- Author:TUZI -- Create date: 2016.4.18 -- Descrip ...

  9. Android中出现Error:In (declare-styleable) FontFamilyFont, unable to find attribute android:font

    Android中出现Error:In (declare-styleable) FontFamilyFont, unable to find attribute android:font 解决办法,今天 ...

  10. dubbo之日志适配及访问日志

    日志适配 自 2.2.1 开始,dubbo 开始内置 log4j.slf4j.jcl.jdk 这些日志框架的适配 1,也可以通过以下方式显示配置日志输出策略: 命令行 java -Ddubbo.app ...