zoukankan      html  css  js  c++  java
  • Frequency

    2

    1 2

    2

    1

    分析:偷看题解,慢慢写出来的。。。。

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    int n;
    LL ans[100005];
    pair<LL,LL>aa[100005];
    bool cmp(pair<LL,LL>a,pair<LL,LL>b){
        return a.second>b.second;
    }
    void init() {
        cin>>n;
        fill(ans,0);
        range(i,1,n){
            aa[i].first=i;
            cin>>aa[i].second;
        }
        sort(aa+1,aa+1+n,cmp);
        aa[n+1].second=0;
    }
    void solve(){
        LL tmp=1,num=aa[1].first;
        range(i,2,n+1){
            if(aa[i].second==aa[i-1].second)++tmp;
            else ans[num]+=(aa[i-1].second-aa[i].second)*(tmp++);
            if(aa[i].first<num)num=aa[i].first;
        }
        range(i,1,n)printf("%lld
    ",ans[i]);
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    69.广搜练习:  最少转弯问题(TURN)
    51..分治算法练习:  4378 【Laoguo】循环比赛
    50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
    [转载]双向广搜
    49.分治算法练习:  1497 取余运算
    48.贪心练习:  1621 混合牛奶
    47..贪心  失恋28天-追女孩篇
    46.贪心算法练习:  区间合并
    45.分支算法练习:  7622:求排列的逆序数
    44.分治算法练习:  一元三次方程求解
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9333696.html
Copyright © 2011-2022 走看看