题目大意:

给出1到n的序列,有查询和更改操作(把a位置和b位置对换),询问a到b是否是连续列的。

思路:

发现只需要将最大和最小相减后等于长度就合法了,所以直接用线段树维护最大最小值

codecodecode

#include<iostream>
#include<cstdio>
#include<algorithm>using namespace std;long long n;
struct node
{long long v, s, t;
}a[5010];
long long S[5010], b[10010];
long long f[5010];bool cmp(node x, node y)
{return x.s<y.s;
}bool cmp2(node x, node y)
{return x.v>y.v;
}void get_point()
{for(long long i=1; i<=n; i++)S[i]=max(S[i-1]+1, a[i].s);
}void lsh()
{for(long long i=1; i<=n; i++){int j=1;while(S[j]<a[i].s) j++;a[i].s=j;}
}bool find_(long long x, long long i)
{if(S[x]>a[i].t)return 0;if(f[x]==0){f[x]=i;return 1;}long long j=f[x];if(a[i].t>a[j].t)return find_(x+1, i);else if(find_(x+1, j)){f[x]=i;return 1;}return 0;
}int main()
{scanf("%lld", &n);for(long long i=1; i<=n; i++)scanf("%lld%lld%lld", &a[i].s, &a[i].t, &a[i].v);sort(a+1, a+1+n, cmp);get_point();sort(a+1, a+1+n, cmp2);lsh();long long ans=0;for(long long i=1; i<=n; i++)if(find_(a[i].s, i))ans+=a[i].v;printf("%lld", ans);return 0;
}

【集训DAY1】Dwarves line up【线段树】相关推荐

  1. 暑期集训5:并查集 线段树 练习题B: HDU - 1213 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题B  --   HDU - 1213 How Many Tables Today is Ignatius' birthday. He invites ...

  2. 暑期集训5:并查集 线段树 练习题G: HDU - 1754

    2018学校暑期集训第五天--并查集 线段树 练习题G  --   HDU - 1754 I Hate It 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.  这让 ...

  3. 暑期集训5:并查集 线段树 练习题F:  HDU - 1166 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题F  --   HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...

  4. 暑期集训5:并查集 线段树 练习题A:  HDU - 1232 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题A  --   HDU - 1232 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅 ...

  5. 【河北OI 2012 DAY1】采花 线段树

    [河北OI 2012 DAY1]NKOJ2182 采花 问题描述 萧芸斓是Z 国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳 了n 朵花 ...

  6. 1019.Line Painting(线段树 离散化)

    1019 离散化都忘记怎么写了 注意两个端点 离散化后用线段树更新区间 混色为-1  黑为2  白为1  因为N不大 最后直接循环标记这一段的颜色查找 1 #include <iostream& ...

  7. P7560-[JOISC 2021 Day1]フードコート【吉司机线段树】

    正题 题目链接:https://www.luogu.com.cn/problem/P7560 题目大意 有 n n n个队列,要求支持操作: 往 [ L , R ] [L,R] [L,R]的队列中插入 ...

  8. loj#6100. 「2017 山东二轮集训 Day1」第一题 主席树+二分

    题目描述: 小火车沉迷垃圾手游不能自拔,正在玩碧蓝航线,可惜小火车的舰(lao)队(po)练度太低打不过副本,所以他只好去刷其余的副本来升级. 总共有 n 个副本编号从 1 到 n ,每个副本有个难度 ...

  9. 线段树详解 (原理,实现与应用)

    线段树详解 By 岩之痕 目录: 一:综述 二:原理 三:递归实现 四:非递归原理 五:非递归实现 六:线段树解题模型 七:扫描线 八:可持久化 (主席树) 九:练习题 一:综述 假设有编号从1到n的 ...

  10. 【转载】线段树题目2

    1.hdu1166 敌兵布阵 更新节点,区间求和. 2.hdu1754 I Hate It 更新节点,区间最值. . 3.hdu1698 Just a Hook 成段更新,总区间求和. . 4.hdu ...

最新文章

  1. iOS开发经验总结,我的2019进阶之路!
  2. ISE 14.7 调试错误笔记
  3. 实现O(1)时间复杂度带有min和max 函数的栈
  4. python中的抽象含义_Python中下划线的5种含义你都知道吗?
  5. Logback日志系统配置攻略
  6. ThreadPoolTaskExecutor多线程使用,及线程池配置
  7. java 8u111 8u112_JDK 8U112
  8. 7年老Android一次操蛋的面试经历,挥泪整理面经
  9. matlab进行下采样
  10. 华为p8升级android8系统资源,华为畅享8官方固件rom刷机包_畅享8完整版系统升级包下载...
  11. 蜂鸣器驱动电路的改进设计
  12. xp安全模式下如何修复计算机,xp系统如何进入安全模式|进入安全模式修复系统...
  13. 什么是ASCII码?
  14. VS2019c++配置GDAL和HDF库新手入门
  15. 【Java基础】手把手教你用Java制作飞翔的小鸟
  16. 日常技术积累-ARM中RO/RW/ZI
  17. 关于 BBBB 站视频删除问题解释
  18. 新手入坑:strapi官网教程的简单示例学习
  19. 计算机微课用什么音乐,有关微课音乐课堂教学
  20. 线性代数---魏福义版 第二章习题答案

热门文章

  1. F - Nastya and Door
  2. js点击轮播或者自动轮播图代码
  3. C语言feof()函数的使用
  4. AWS DeepRacer re:Invent 2018赛道reward function奖励函数
  5. 梯度与边缘检测常用算子:Roberts、Prewitt、Sobel、LOG,Canny、Lapacian算子
  6. 市场营销中4P对应4C理论
  7. 景联文科技|浅谈常见的语音标注方法
  8. xingtai - 学习九九乘法表和皇帝的米粒
  9. 《区块链:从数字货币到信用社会》电子书下载 -(百度网盘 高清版PDF格式)
  10. 2022新版彩虹易支付系统源码/运营版/支持当面付/通道轮询/16支付插件/免签约支付系统