码农知识堂 - 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. }

     总结:

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

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

  • 相关阅读:
    系统架构设计专业技能 ·结构化需求分析 - 数据流图
    他凌晨1:30给我开源的游戏加了UI|模拟龙生,挂机冒险
    IoC控制反转
    这样的攒钱方式,青鸟学员表示可以轻松复制
    Spring4 升级 spring5, Hibernate4 升级 Hibernate5 相关问题总结以及修改注意点
    RabbitMQ(八) 关于用户与虚拟主机的问题
    redis的一些操作
    蓝桥杯2023年第十四届省赛真题-更小的数--题解
    vim,emacs,verilog-mode这几个到底是啥关系?
    每日刷题-5
  • 原文地址:https://blog.csdn.net/weixin_62528401/article/details/128045665
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号