zoukankan      html  css  js  c++  java
  • Countless Candies

    Countless Candies
    Time Limit: 1000 MS Memory Limit: 10240 K
    Total Submit: 112(42 users) Total Accepted: 43(37 users) Rating: Special Judge: No
    Description
         小w喜欢吃糖果,一次偶然的机会,小w再次邂逅了阿拉神灯。      阿拉神灯知道小w的心意之后问:你想要多少糖哈,亲~      小w笑答:不要太多啦,吃不完就够了~      阿拉神灯:¥^ @ % & * R & ^...      善良的小w想把这些糖果分一些给自己的好朋友。小w有N 个好朋友,编号从1到N。小w要分N次,每次操作如下:[L, R]表示给编号在L到R 的朋友每人一块糖。最后,小w想知道每个朋友分得了多少糖果,由于人缘太好,朋友太多而没法统计,请帮助小w计算一下最后的结果吧。
    Input
    第 1 行:一个整数N 表示朋友的数量(1 ≤N≤100000) 第 2到N+1行:每行两个整数L,R,表示编号在[L, R]内的朋友,每人分得一块糖。 多组测试数据,处理到文件结束。
    Output
    N 个整数表示每个朋友得到的糖果的数量,每组测试数据占一行。
    Sample Input
    4
    1 2
    2 3
    1 3
    1 4
    
    Sample Output

    3 4 3 1

     为了使其时间复杂度最低,我们弄一个数组,在a[l]++,在a[r+1]--这样在输出的时候应该有的有不应该有的没有

    #include<cstdio>
    #include<cmath>
    #include<queue>
    #include<iostream>
    using namespace std;
    int a[100001];
    int main()
    {
        int N;
        while(~scanf("%d",&N))
        {
            int i,l,r;
            int h=N;
            memset(a+1,0,(N+1)*sizeof(int));
            while(h--)
            {
                scanf("%d%d",&l,&r);
                a[l]++;
                a[r+1]--;
            }
            l=0;
            for(i=1;i<N;i++)
            {
                l+=a[i];
                printf("%d ",l);
            }
            l+=a[N];
            printf("%d
    ",l);
        }
        return 0;
    }
  • 相关阅读:
    C#读物
    那些健康手环真的值得买么?
    书籍推荐系列之一 -- 《凤凰项目:一个IT运维的传奇故事》
    测试
    HDU-2024 C语言合法标识符
    HDU-4548 美素数
    求最大流dinic算法模板
    最小费用最大流模板理解
    网络流初步——增广路代码的分析
    最短路的另外两种算法
  • 原文地址:https://www.cnblogs.com/beige1315402725/p/4981629.html
Copyright © 2011-2022 走看看