zoukankan      html  css  js  c++  java
  • Codeforces Round #419 (Div. 2)(B)差分数组

    传送门:Problem B

    https://www.cnblogs.com/violet-acmer/p/9721160.html

    题意:

      Karen有n个关于煮咖啡的食谱,每个食谱都有个煮咖啡的最适宜的温度范围,给你 m 个操作,每个操作都是个温度区间,问在此区间内满足条件的温度个数。

      需要满足的条件为:在温度 T 时,在n个食谱中查找最宜温度包含T的食谱个数,只有当食谱个数 >= k 时,此温度才算可以计入答案。 

    题解:

      差分数组

    AC代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 const int maxn=2e5+10;
     6 
     7 int n,k,q;
     8 int diff[maxn];
     9 int sum[maxn];
    10 int need[maxn];
    11 
    12 void init()
    13 {
    14     memset(diff,0,sizeof(diff));
    15     memset(sum,0,sizeof(sum));
    16     memset(need,0,sizeof(need));
    17 }
    18 
    19 int main()
    20 {
    21     init();
    22     scanf("%d%d%d",&n,&k,&q);
    23     int maxP=0;
    24     int minP=0;
    25     for(int i=1;i <= n;++i)
    26     {
    27         int a,b;
    28         scanf("%d%d",&a,&b);
    29         diff[a] += 1;
    30         diff[b+1] -= 1;
    31     }
    32 
    33     for(int i=1;i < maxn;++i)
    34     {
    35         need[i]=need[i-1]+diff[i];
    36         sum[i]=(need[i] >= k ? 1:0)+sum[i-1];
    37     }
    38     for(int i=1;i <= q;++i)
    39     {
    40         int a,b;
    41         scanf("%d%d",&a,&b);
    42         printf("%d
    ",sum[b]-sum[a-1]);
    43     }
    44 }
    View Code
  • 相关阅读:
    Vmware 可用的激活码
    查询某网址的百度收藏量
    SQL 分页实现
    JS 分页实现
    分页逻辑分析
    Mysql总结概述
    解析select *
    teradata中EXPLAIN执行计划总结
    Teradata Join类型
    Teradata中join总结
  • 原文地址:https://www.cnblogs.com/violet-acmer/p/9721155.html
Copyright © 2011-2022 走看看