首页 > 其他分享 >HDU4417 Super Mario (主席树)

HDU4417 Super Mario (主席树)

时间:2022-10-06 16:57:42浏览次数:45  
标签:cnt ch int tr Mario num HDU4417 Super define

主席树另一模板。

查询的是[L,R]中<=h的个数。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define lc tr[i].ch[0]
 4 #define rc tr[i].ch[1]
 5 #define Lc tr[j].ch[0]
 6 #define Rc tr[j].ch[1]
 7 #define mid ((l + r) >> 1)
 8 const int N = 1e5 + 10;
 9 int n, m, a[N], b[N];
10 int cnt, rt[N];
11 struct node {
12     int num, ch[2];
13 }tr[N * 20];
14 void update(int &i, int j, int l, int r, int k) {
15     i = ++ cnt;
16     tr[i] = tr[j];
17     tr[i].num ++;
18     if (l == r) return ;
19     if (k <= mid) update(lc, Lc, l, mid, k);
20     else update(rc, Rc, mid + 1, r, k);
21 }
22 int query(int i, int j, int l, int r, int k) {
23     if (l == r) return tr[j].num - tr[i].num;
24     int ans = 0;
25     if (k <= mid) ans += query(lc, Lc, l, mid, k);
26     else {
27         ans += tr[Lc].num - tr[lc].num;
28         ans += query(rc, Rc, mid + 1, r, k);
29     }
30     return ans;
31 }
32 int main() {
33     scanf("%d %d", &n, &m);
34     for (int i = 1; i <= n; i ++) {
35         scanf("%d", &a[i]);
36         b[i] = a[i];
37     }
38     sort(b + 1, b + n + 1);
39     int tot = unique(b + 1, b + n + 1) - b - 1;
40     cnt = 0, rt[0] = 0;
41     for (int i = 1; i <= n; i ++)
42         update(rt[i], rt[i - 1], 1, tot, lower_bound(b + 1, b + tot + 1, a[i]) - b);
43     int l, r, h;
44     while (m --) {
45         scanf("%d %d %d", &l, &r, &h);
46         l ++, r ++;
47         int k = upper_bound(b + 1, b + tot + 1, h) - b - 1;//!!!!!
48         if (k) printf("%d\n", query(rt[l - 1], rt[r], 1, tot, k));
49         else printf("0\n");//有可能h<所有a[i] 此时k = 0 
50     }    
51     return 0;
52 }

 

标签:cnt,ch,int,tr,Mario,num,HDU4417,Super,define
From: https://www.cnblogs.com/YHxo/p/16757952.html

相关文章

  • luogu P3571 [POI2014]SUP-Supercomputer
    题面传送门感觉考场上不一定做得出来的题目?首先我们可以得到每个点的深度,然后猜测这个只和每个层的深度有关。我们考虑这样一个贪心:对于每一层的每个点,如果这个点有子节......
  • 关于javaSE继承中super的考究
    在对父类非private属性的使用过程中super专门用来指代继承过来的属性,在子类没有与父类重名的情况下。实际功能与this并无二异packagegunjo.kirito.union.course;cla......
  • Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution
    第一遍:摘要:现有的SR方法有两个潜在的限制:首先,学习从LR到HR图像的映射函数通常是一个病态问题,因为存在无限个HR图像可以下采样到相同的LR图像;其次,配对的LR-HR数据在现实应......
  • super用法之一隅
    在没有直接父类的类中使用super1classA:2deffunc(self):3print("A")4super().func()567classB:8deffunc(self):9......
  • [论文阅读] Look Closer to Supervise Better: One-Shot Font Generation via Compone
    pretitle:LookClosertoSuperviseBetterOne-ShotFontGenerationviaComponent-BasedDiscriminatorref:https://www.bilibili.com/video/BV13Y411w7yLpaper:h......
  • super学习
    2022-10-02 16:27:38supersuper代表的是“当前对象(this)”的父类型特征概念1、super是一个关键字,全部小写。2、super和this对比着学习。this:this能出现......
  • supervisor /usr/lib64/python2.7/socket.py line: 224
    配置了supervisor之后,写好了配置,最后发现一直报这个错误,supervisorerror:<class‘socket.error’>,[Errno2]Nosuchfileordirectory:file:/usr/lib64/python2.7/......
  • super
    protected:可以被同一个包中的所有类访问,可以被所有子类访问,不管子类是否在同一个包中。使用例子:父类构造无参设定属性写一个方法publicclassHero{publicHero......
  • SuperMap iServer在linux环境中部署
    安装说明:下载地址:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx版本:SuperMapiServer9Dv9.1.2系统:centos7.4安装环境硬件要求Linux系统上安......
  • Semi-supervised New Event Type Induction and Event Detection
    Motivation手动构造事件类型和标注数据成本非常高手动标注的时间覆盖率比较低Method本文提出了一个基于VQ-VAE的半监督事件检测方法。TriggerRepresentationLear......