当前位置: 首页 > news >正文

题解:AT_abc424_f [ABC424F] Adding Chords

喜欢我们绿题拿和线段树差不多长的 1.2KB 树套树无脑场切掉吗?

但是真的可以拿树套树过,而且很快就能写完,虽然复杂度劣一点,不过我的树套树时限三秒能飞到一秒内。

注意到这个问题其实和环没啥关系,可以把它转化成在一条链上做。

然后画一下图就可以发现,一条新边不合法当且仅当它包含的区间有边连到外面的点,我们可以统计一下这种边的数量。

那么就只用树套树维护每个点连到后面各个点的边,然后加边时查询 \((1,l-1)\to (l+1,r-1)\) 以及 \((l+1,r-1)\to (r+1,n)\) 的边数是否为 \(0\) 即可,如果 \(l+1=r\) 直接默认加边,如果合法就在树套树上修改。

感觉树套树做法的代码一眼就能看出是在干啥吧。

#include<bits/stdc++.h>
#define N 1000005
using namespace std;
int cnt=0,n,q;
int lowbit(int u){return u&-u;}
struct Ty{int val,l,r;}y[N*75];
struct Ig{int root;void update(int &u,int l,int r,int id){if(!u)u=++cnt;y[u].val++;if(l==r&&l==id)return;int mid=(l+r)/2;if(id<=mid)update(y[u].l,l,mid,id);else update(y[u].r,mid+1,r,id);return;}int query(int u,int l,int r,int fl,int fr){if(!u)return 0;if(l==fl&&r==fr)return y[u].val;int mid=(l+r)/2;if(fr<=mid)return query(y[u].l,l,mid,fl,fr);else if(fl>mid)return query(y[u].r,mid+1,r,fl,fr);else return query(y[u].l,l,mid,fl,mid)+query(y[u].r,mid+1,r,mid+1,fr);}
}w[N];
void update(int u,int v){for(int i=u;i<=n;i+=lowbit(i))w[i].update(w[i].root,1,n,v);return;
}
int query(int u,int l,int r){int now=0;for(int i=u;i;i-=lowbit(i))now+=w[i].query(w[i].root,1,n,l,r);return now;
}
signed main(){scanf("%d%d",&n,&q);for(int i=1;i<=q;i++){int u,v;scanf("%d%d",&u,&v);if(u+1==v){printf("Yes\n");continue;}int flag=query(u-1,u+1,v-1)+query(v-1,v+1,n)-query(u,v+1,n);if(flag>0){printf("No\n");continue;}update(u,v);printf("Yes\n");}return 0;
}
http://www.rkmt.cn/news/13512.html

相关文章:

  • Software Crisis and Complexity
  • langgraphjs-gen-ui-examples
  • 2025 年节能咨询公司最新权威推荐排行榜:覆盖工业 / 建筑 / 数据中心等领域 TOP5 优质企业综合测评与选型指南发电厂/燃气/全域增效/服务器节能公司推荐
  • 2025 年无尘金刚砂源头厂家最新推荐排行榜:权威精选企业产能与品质深度解析无尘金刚砂材料/无尘金刚砂批发/无尘金刚砂喷砂厂家推荐
  • PySide6 之简易音乐播放器
  • 题解:P10005 [集训队互测 2023] 基础寄术练习题
  • 同步和互斥的基本概念
  • 盲盒一番赏小应用用户需求分析:从行为动机到功能诉求的深度拆解
  • C++ IO 库全方位解析:从基础到实战 - 指南
  • 洛谷P10112 [GESP202312 八级] 奖品分配
  • P10400 『STA - R5』消失的计算机
  • loki收集容器日志
  • 完整教程:dlib库关键点定位和疲劳检测
  • VKD233HH触控IC有两种输出方式“直接输出”和“锁存输出”单路触摸检测芯片
  • C# Avalonia 15- Animation- CachingTest
  • Ansible + Docker 部署 MinIO 集群
  • 自动遍历测试利器:开源工具AppCrawler 配置全解析
  • 250928
  • window 安全模式卸载任何软件
  • 定制笔记本电脑工厂排名:从基础代工到联合设计全面分析 - 教程
  • sv 去除字符串行尾空格函数
  • linux执行yum报错: except KeyboardInterrrupt, e
  • grafana如何添加自定义geoJson地图
  • AI元人文:追问与悟空
  • 2025 年纽扣电池厂家:力源电池以 TWS 适配技术与定制服务,打造多场景电源解决方案
  • AWS SageMaker SDK 完整教程:从零开始云端训练你的模型
  • 反转数字-处理溢出的条件-Java
  • Storm-0501威胁组织利用云技术实施勒索攻击的技术分析
  • US$289 VVDI2 AUDI and 5th IMMO Functions Authorization Service
  • OpenLayers地图交互 -- 章节十三:拖拽旋转交互详解 - 实践