中文题面

据说正解是动态开点线段树而且标记也不难下传的样子

然而这种区间推平的题目还是喜欢写珂朵莉树啊……码量小……

虽然真要构造的话随便卡……

 1 //minamoto
 2 #include<cstdio>
 3 #include<set>
 4 #include<iostream>
 5 #define IT set<node>::iterator
 6 using namespace std;
 7 #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
 8 char buf[1<<21],*p1=buf,*p2=buf;
 9 inline int read(){
10     #define num ch-'0'
11     char ch;bool flag=0;int res;
12     while(!isdigit(ch=getc()))
13     (ch=='-')&&(flag=true);
14     for(res=num;isdigit(ch=getc());res=res*10+num);
15     (flag)&&(res=-res);
16     #undef num
17     return res;
18 }
19 char sr[1<<21],z[20];int K=-1,Z;
20 inline void Ot(){fwrite(sr,1,K+1,stdout),K=-1;}
21 inline void print(int x){
22     if(K>1<<20)Ot();if(x<0)sr[++K]=45,x=-x;
23     while(z[++Z]=x%10+48,x/=10);
24     while(sr[++K]=z[Z],--Z);sr[++K]='\n';
25 }
26 struct node{
27     int l,r;mutable int v;
28     node(int L,int R=-1,int V=0):l(L),r(R),v(V){}
29     inline bool operator <(const node &b)const
30     {return l<b.l;}
31 };
32 set<node> s;int sum;
33 IT split(int pos){
34     IT it=s.lower_bound(node(pos));
35     if(it!=s.end()&&it->l==pos) return it;
36     --it;
37     int l=it->l,r=it->r,v=it->v;
38     s.erase(it);
39     s.insert(node(l,pos-1,v?pos-l:0));
40     return s.insert(node(pos,r,v?r-pos+1:0)).first;
41 }
42 void assign(int l,int r,int v){
43     IT itr=split(r+1),itl=split(l);
44     for(IT it=itl;it!=itr;++it) sum-=it->v;
45     s.erase(itl,itr),s.insert(node(l,r,v*(r-l+1)));
46     sum+=v*(r-l+1);
47 }
48 int main(){
49 //    freopen("testdata.in","r",stdin);
50     int n=read(),q=read();
51     s.insert(node(1,n+1,1));sum=n;
52     while(q--){
53         int l=read(),r=read();
54         assign(l,r,read()-1);
55         print(sum);
56     }
57     return Ot(),0;
58 }

转载于:https://www.cnblogs.com/bztMinamoto/p/9810833.html

CF915E Physical Education Lessons(珂朵莉树)相关推荐

  1. 算法自学__珂朵莉树

    参考资料: https://zhuanlan.zhihu.com/p/106353082 https://blog.csdn.net/CC_dsm/article/details/98166835 珂 ...

  2. 珂朵莉树/ODT 学习笔记

    珂朵莉树/ODT 学习笔记 起源自 CF896C.珂朵莉yyds! 核心思想 把值相同的区间合并成一个结点保存在 set 里面. 用处 骗分.只要是有区间赋值操作的数据结构题都可以用来骗分.在数据随机 ...

  3. 浅谈珂朵莉树(ODT)

    前言 珂学家狂喜( 文章目录 前言 一.珂朵莉树来源 二.珂朵莉树 1.珂朵莉树有什么用? 2.原理是什么? a.存储 b.分割结点 c.推平 d.剩余操作 3.复杂度分析 三.珂朵莉树例题 1.P4 ...

  4. [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解

    参考资料: Chtholly Tree (珂朵莉树) (应某毒瘤要求,删除链接,需要者自行去Bilibili搜索) 毒瘤数据结构之珂朵莉树 在全是珂学家的珂谷,你却不知道珂朵莉树?来跟诗乃一起学习珂朵 ...

  5. CodeForces - 897E Willem, Chtholly and Seniorious(珂朵莉树)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,现在需要执行 mmm 次操作,每次操作分为下列四种情况: 1lrx1 \ l \ r \ x1 l r x:[l,r][l,r][l,r] ...

  6. CF896C Willem, Chtholly and Seniorious(珂朵莉树)

    中文题面 珂朵莉树的板子--这篇文章很不错 据说还有奈芙莲树和瑟尼欧里斯树-- 等联赛考完去学一下(逃 1 //minamoto 2 #include<bits/stdc++.h> 3 # ...

  7. 【日志】珂学——珂朵莉树

    珂朵莉树 (珂学) 珂朵莉树(或者老司机树)起源于CF896C. 由于之前做到每一组数据都要另外开数据结构,所以现在一些东西就会写为class包装 前置知识点 STL中set的使用(list也行,但是 ...

  8. 一种黑科技:珂朵莉树

    首先要明白的是:珂朵莉树(ODT)是一种用来骗分的暴力数据结构. 珂朵莉树的思想是利用集合set,把相同且连续的元素合并为一个个区间,从而进行区间修改:因此,珂朵莉树是区间的集合,这点可以通过定义结构 ...

  9. 2022年9月CSP认证题解 如此编码(k进制),何以包邮?(背包问题),吉祥物投票(珂朵莉树、懒标记、并查集)

    T1 如此编码 思路 由公式 和前缀乘积定义 得m=b1+a1×b2+⋅⋅⋅+a1×a2×⋅⋅⋅×an−1×bnm=b_1+a_1\times b_2+···+a_1\times a_2\times· ...

最新文章

  1. Azure操作手册集合
  2. 计算机操作员有关大学专业,计算机操作员国家职业标准
  3. 二叉树的前中后序递归和非递归遍历操作【代码】
  4. 考研数学早年真题整理20题(很有可能重考!!)
  5. ASP.NET缓存:方法分析和实践示例
  6. 推荐系统遇上深度学习(十七)--探秘阿里之MLR算法浅析及实现
  7. php 验证真实姓名,支付宝转账到支付宝 验证真实姓名
  8. 佐治亚理工学院 计算投资公开课第五周作业 市场仿真器
  9. #436. 子串的最大差(单调栈)
  10. 爬楼梯 java_爬楼梯问题java实现
  11. keil4 代码折叠功能的使用
  12. mount qemu qcow2、img
  13. 用 Python 做了一个小姐姐跳舞的词云视频
  14. HTML中如何将字体加粗-前端入门
  15. html中的 语言设置
  16. P14-Vue-supermall项目-BetterScroll滚动插件基本使用
  17. CentOS 7无法启动,在进度条卡死问题解决
  18. 2022年计算机四级考试冲刺试题及答案(多选题)
  19. variable argument parameter的区别
  20. LZO和MiniLZO编码介绍

热门文章

  1. 组播vlan_【参与方式】耗时10小时编撰(下)带你轻松通关组播知识点!
  2. java项目中包的命名规范
  3. vb一个使用URLDownloadToFile实现文件下载的类
  4. 怎样用VB获得Windows各类系统目录
  5. 灰度实战(一):Apollo配置中心(1)
  6. 照片解锁手机不能忍?教你用OpenCV做活体检测 | 有代码
  7. 八家顶级无人车公司首次披露故障详情,从百度到Waymo
  8. 4小时学会雅达利游戏,AI需要几台电脑?
  9. n对括号问题,(求n对括号的正确排列有多少)
  10. Android Studio中R报错(cnanot resolve symbol R)