码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [洛谷]P2880 [USACO07JAN] Balanced Lineup G(线段树)


    ACcode:

    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. const int N = 2e5+10;
    4. typedef long long ll;
    5. ll w[N];
    6. int n,m;
    7. struct node{
    8. int l,r;
    9. int maxv,minv;
    10. }tr[N*4];
    11. void pushup(int u){
    12. tr[u].maxv=max(tr[u<<1].maxv,tr[u<<1|1].maxv);
    13. tr[u].minv=min(tr[u<<1].minv,tr[u<<1|1].minv);
    14. }
    15. void build(int u,int l,int r){
    16. if(l==r)tr[u]={l,r,w[l],w[l]};
    17. else{
    18. tr[u]={l,r};
    19. int mid=l+r>>1;
    20. build(u<<1,l,mid),build(u<<1|1,mid+1,r);
    21. pushup(u);
    22. }
    23. }
    24. int query1(int u,int l,int r){
    25. if(l<=tr[u].l&&tr[u].r<=r)return tr[u].maxv;
    26. int mid=tr[u].l+tr[u].r>>1;
    27. int sum=0;
    28. if(l<=mid)sum=query1(u<<1,l,r);
    29. if(mid<r)sum=max(sum,query1(u<<1|1,l,r));
    30. pushup(u);
    31. return sum;
    32. }
    33. int query2(int u,int l,int r){
    34. if(l<=tr[u].l&&tr[u].r<=r)return tr[u].minv;
    35. int mid=tr[u].l+tr[u].r>>1;
    36. int sum=2e9;
    37. if(l<=mid)sum=query2(u<<1,l,r);
    38. if(mid<r)sum=min(sum,query2(u<<1|1,l,r));
    39. pushup(u);
    40. return sum;
    41. }
    42. int main(){
    43. cin.tie(0),cout.tie(0);
    44. ios::sync_with_stdio(0);
    45. cin>>n>>m;
    46. for(int i=1;i<=n;i++)cin>>w[i];
    47. build(1,1,n);
    48. while(m--){
    49. int x,y;
    50. cin>>x>>y;
    51. cout<<query1(1,x,y)-query2(1,x,y)<<"\n";
    52. }
    53. }

    over~

  • 相关阅读:
    Vue--Router--各个版本的事件监听
    微信公众号模板消息api
    对比勒索病毒和熊猫烧香,谈如何保证服务器端数据安全?
    AWS认证SAA-C03每日一题
    Android12源码编译报错ninja: build stopped: subcommand failed.解决
    第1章 基于.Net(Core)框架Web程序的IIS部署发布
    C++标准模板(STL)- 类型支持 ()
    NOSQL Redis Ubuntu系列 常用的配置 及密码登录
    【数据结构与算法系列4】长度最小的子数组 (C++ & Python)
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校教室申请管理系统yf80k
  • 原文地址:https://blog.csdn.net/m0_74969835/article/details/133688164
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号