题意

给出一个排列 {pi}\{p_i\}{pi​},同时给出一个炸弹顺序 {qi}\{q_i\}{qi​},第 iii 颗炸弹放在第 qiq_iqi​ 处。每次从左往右加入 pip_ipi​,遇到炸弹时炸掉当前最大值。输出放前 iii 颗炸弹最终序列的最大值(i=0,1,2...,n−1i=0,1,2...,n-1i=0,1,2...,n−1)。

分析

这题真是巧妙啊!我太蒻了!
首先,ansi≥ansi+1ans_i\geq ans_{i+1}ansi​≥ansi+1​。于是我们每次要得到 ansi+1ans_{i+1}ansi+1​,只需要从 ansians_iansi​ 不断减 111 减过来即可。那么要减多少次 111 呢?这就要观察答案的性质了。
当 ans<xans<xans<x 时,有以下事实:
每个大于等于 xxx 的数 vvv 都会被炸掉!也就是说,每个 vvv 后面都有一个炸弹专门炸它的。每个 vvv 和离它最近的炸弹形成一个匹配。
那么,我们让每个 vvv 所在位置 +1+1+1,让每个炸弹所在位置 −1-1−1,令 bib_ibi​ 为 [i,n][i,n][i,n] 的后缀和。(有点像括号序列)
现在 ans<xans<xans<x 的条件即为:对于每个 bib_ibi​,bi≤0b_i\leq 0bi​≤0。
所以我们用线段树找到最大的 bib_ibi​ 即可。
每次加数或者遇到炸弹都是修改一个区间的后缀和,用线段树实现区间加即可。
时间复杂度 O(nlogn)O(nlogn)O(nlogn)
此题的关键在于每次判断 ansansans 要减到多少,然而我太蒻了根本不会QAQ

代码如下

#include <bits/stdc++.h>
#define N 300005
#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
int p[N], q[N];
LL val[N * 4], tag[N * 4];
void pushdown(int rt){if(tag[rt]){tag[rt << 1] += tag[rt];tag[rt << 1 | 1] += tag[rt];val[rt << 1] += tag[rt];val[rt << 1 | 1] += tag[rt];tag[rt] = 0;}
}
void update(int l, int r, int rt, int a, int b, int c){if(l >= a && r <= b){val[rt] += c;tag[rt] += c;return;}pushdown(rt);int m = l + r >> 1;if(a <= m) update(lson, a, b, c);if(b > m) update(rson, a, b, c);val[rt] = max(val[rt << 1], val[rt << 1 | 1]);
}
int main(){int i, j, n, m, ret;scanf("%d", &n);for(i = 1; i <= n; i++) scanf("%d", &j), p[j] = i;for(i = 1; i <= n; i++) scanf("%d", &q[i]);ret = n;update(1, n, 1, 1, p[ret], 1);printf("%d ", ret);for(i = 1; i < n; i++){update(1, n, 1, 1, q[i], -1);while(val[1] <= 0){ret--;update(1, n, 1, 1, p[ret], 1);}printf("%d ", ret);}return 0;
}

CF1326E Bombs(思维题)相关推荐

  1. little w and Soda(思维题)

    链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  2. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  3. yoyo思维题(困难) 组合数学

    问题 B: yoyo思维题(困难) 时间限制: 1 Sec  内存限制: 256 MB 提交: 11  解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...

  4. 1884: 三个家庭(思维题)

    1884: 三个家庭 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 244 Solved: 81 [Submit][Status][Web Board] ...

  5. 思维题 UVA 10881 Piotr's Ants

    题目传送门 1 /* 2 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 3 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 4 关键2:蚂蚁的相对位置 ...

  6. CF--思维练习-- CodeForces - 215C - Crosses(思维题)

    ACM思维题训练集合 There is a board with a grid consisting of n rows and m columns, the rows are numbered fr ...

  7. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  8. CodeForces - 1102A(思维题)

    https://vjudge.net/problem/2135388/origin Describe You are given an integer sequence 1,2,-,n. You ha ...

  9. ☆【CodeForces - 764C】Timofey and a tree (思维题,树的性质)

    题干: Each New Year Timofey and his friends cut down a tree of n vertices and bring it home. After tha ...

  10. 【HDU - 2203】 亲和串 (思维题,可选KMP)

    题干: Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了, ...

最新文章

  1. TNS-12560: TNS: 协议适配器错误 Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)
  2. mysql外键引用语法_mysql – 外键语法
  3. Flink中的状态管理
  4. linux arm寄存器,ARM寄存器总结
  5. SaltStack Salt 开源管理框架修复2个严重漏洞,多款开源产品等受影响
  6. JavaScript视频教程
  7. 一键修改分辨率bat_设置分辨率的批处理 | 学步园
  8. Web前端面试:这40个经典Web前端面试题面试者必看!
  9. 今天开始写博客记录程序媛成长过程
  10. C++ 如何改变鼠标光标位置
  11. 二进制转8421bcd码_码制 || BCD码 || 格雷码 || 奇偶校验码 || 字母数字码 || 数电
  12. 人这一辈子,都在为选择买单
  13. 基于SVM算法的男女生分类器
  14. 使用rest_framework的routers模块添加路由
  15. 面试|复习小册(2022-9)
  16. 玩客云root成功一键获取root权限
  17. 从零开始安装VMwareTools的详细步骤
  18. centos7安装gitlab-ce社区版全过程,详细到爆炸
  19. 哔哩哔哩视频下载(python3+asyncio+断点续传+有注释)
  20. 【Python】找到含有指定关键词的PDF

热门文章

  1. PPP点对点协议中 异步链路中0x7d用作转义字符时的过程
  2. 简谈计算机网络与网络编程
  3. windows 查看IP地址或端口是否可以连接-常用命令
  4. 每日一课 | 在Python中获取列表的长度和大小
  5. android手机华为p10,谁是运行速度最快的安卓手机?华为P10
  6. Android Wi-Fi 四次握手简介
  7. 大数据学习路线图(知识体系整理)
  8. Java语言-27:Map接口
  9. 认证资料大全(八)------ SUN认证列表
  10. photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程