尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

题解:AT_abc424_f [ABC424F] Adding Chords

题解:AT_abc424_f [ABC424F] Adding Chords
📅 发布时间:2026/6/19 19:59:38

喜欢我们绿题拿和线段树差不多长的 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;
}

相关新闻

  • Software Crisis and Complexity
  • langgraphjs-gen-ui-examples
  • 2025 年节能咨询公司最新权威推荐排行榜:覆盖工业 / 建筑 / 数据中心等领域 TOP5 优质企业综合测评与选型指南发电厂/燃气/全域增效/服务器节能公司推荐

最新新闻

  • 从零到一:Jetlinks物联网平台服务器部署实战与避坑指南
  • (转)一次ANSYS EM 2023R1 “Request name electronics_desktop does not exist in the licensing pool.“的离谱解决记录
  • 面试被问“你的缺点是什么”,90%的应届生都答错了!(附满分话术)
  • Spring Cloud Alibaba 最佳实践:基于 Spring Boot 4.0 的完整微服务示例项目
  • 三步掌握AI斗地主:如何用DouZero智能助手提升你的游戏胜率
  • 2026山东大学项目实训个人博客(六)

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号