码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 代码源每日一题div1 区间和


    区间和 - 题目 - Daimayuan Online Judge

    题意:

     思路:

    根据前缀和的性质:当已知的前缀和区间是整个区间的划分时,才能求出整个区间的和

    因为如果两个区间之间有交叉,交叉部分的和求不出来

    因此,如果已知两个区间的和,就能求出两个区间合并起来的值

    我们把区间端点看成结点,那么已知上面两条边,就能求出下面那条边

    我们把这种关系叫做传递性,并查集维护的就是这种关系

    所谓朋友的朋友也是朋友,亲戚的亲戚也是亲戚,描述的就是这种关系

    因此我们可以用并查集去维护

    并查集中的元素是端点,因此对于读入的 l 和 r ,建边就好了

    因为已知 l 和 r,可以推出来sum[r]-sum[l-1],因此需要把l-1和r连边

    这样建边之后,我们看0和n在不在同一个连通块就好了

    Code:

    1. #include
    2. using namespace std;
    3. const int mxn=2e5+10;
    4. int n,m,l,r;
    5. int f[mxn];
    6. int find(int x){
    7. return f[x]=(x==f[x])?x:find(f[x]);
    8. }
    9. void join(int u,int v){
    10. int f1=find(u),f2=find(v);
    11. if(f1!=f2) f[f1]=f2;
    12. }
    13. void init(){
    14. for(int i=0;i<=n;i++) f[i]=i;
    15. }
    16. int main(){
    17. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    18. cin>>n>>m;
    19. init();
    20. for(int i=1;i<=m;i++){
    21. cin>>l>>r;
    22. join(l-1,r);
    23. }
    24. if(find(0)==find(n)) cout<<"Yes"<<'\n';
    25. else cout<<"No"<<'\n';
    26. }

     总结:

    当题目中有关于传递性的条件时,可以考虑并查集

    传递性的本质是图论中间接有关系的两个结点之间可以直接连边,变成直接关系

  • 相关阅读:
    Java面向对象进阶5——包和final(含源码阅读)
    docker下安装apollo多环境(DEV 和UAT)
    基于Mybatis-Plus扩展批量插入或更新InsertOrUpdateBath
    Linux修复损坏的文件系统
    并发容器介绍(一)
    ansible
    QT教程:QSortFilterProxyModel代理实现自定义排序、联合过滤
    设计者模式(1)观察者模式 (Observer)C++11实现
    智能别墅烟雾和粉尘感应报警系统的设计(任务书+开题+lunwen+翻译及原文+附录程序)
    高云FPGA系列教程(9):cmd-parser串口命令解析器移植
  • 原文地址:https://blog.csdn.net/weixin_62528401/article/details/128045665
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号