zoukankan      html  css  js  c++  java
  • Codeforces Round #261 (Div. 2) B. Pashmak and Flowers 水题

    题目链接:http://codeforces.com/problemset/problem/459/B


    题意:

    给出n支花,每支花都有一个漂亮值。挑选最大和最小漂亮值得两支花,问他们的差值为多少,并且有多少种选法(无先后顺序)。

    现场做时,想到的是:用multimap记录每个漂亮值出现的次数,并不断更新最大最小值。

    这个方法很笨,而且multimap的val值是多余的。

    需要注意特殊情况:max==min


    代码如下:

    #include<iostream>//A - Pashmak and Flowers CodeForces - 459B 
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    #include<map>
    
    using namespace std;
    typedef long long ll;
    
    multimap<int,int> m;
    
    int main()
    {
        int n,max = -1,min = 2000000000,a;
        ll smax,smin;
        m.clear();
        scanf("%d",&n);
        for(int i = 0; i<n; i++)
        {
            scanf("%d",&a);
            m.insert(pair<int,int>(a,0));
    
    
            if(a>max) max = a;
            if(a<min) min = a;
        }
    
        smax = m.count(max);
        smin = m.count(min);
    
        if(max==min)
            printf("0 %lld
    ",smax*(smax-1)/2);
        else
            printf("%d %lld
    ",max-min, smax*smin);
    
    
    }
    



    后来朋友说排序。恍然大悟,排个序什么都好说了。

    代码如下:

    #include<iostream>//A - Pashmak and Flowers CodeForces - 459B  排序
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    
    using namespace std;
    typedef long long ll;
    
    ll v[200005];
    
    int main()
    {
        ll n,max,min,a,j,smax,smin,i;
    
        scanf("%lld",&n);
        for(i = 0; i<n; i++)
        {
            scanf("%lld",&v[i]);
        }
        sort(v,v+n);
    
        min = v[0];
        smin = 1;
        for(i = 1; i<n && v[i]==min; i++)
            smin++;
    
        max = v[n-1];
        smax = 1;
        for(i = n-2; i>=0 && v[i]==max; i--)
            smax++;
    
        if(max==min)
            printf("0 %lld
    ",smax*(smax-1)/2);
        else
            printf("%lld %lld
    ",max-min, smax*smin);
    }
    



  • 相关阅读:
    5.3 java虚拟机的体系结构
    5.2 java虚拟机的生命周期
    3.11.5 doPrivileged()方法
    3.11.1 implies方法
    MT【178】平移不变性
    MT【177】三个乘积和
    MT【176】两两乘积
    MT【175】刚刚凑巧
    MT【174】凹凸无妨
    MT【173】齐次消元单变量
  • 原文地址:https://www.cnblogs.com/DOLFAMINGO/p/7538763.html
Copyright © 2011-2022 走看看