码迷,mamicode.com
首页 > 其他好文 > 详细

区间第k大问题 权值线段树

时间:2016-08-12 15:14:39      阅读:571      评论:0      收藏:0      [点我收藏+]

标签:

先说下权值线段树的概念吧  

待整理

附上吴迎学长离散化的标准代码

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[100],b[100],c[100],n;
int solve()//离散化
{
    for(int i=0;i<n;i++) b[i]=a[i];
    sort(b,b+n);
    int m=unique(b,b+n)-b;//去重
    for(int i=0;i<n;i++) c[i]=lower_bound(b,b+m,a[i])-b;//二分找对应位置
    for(int i=0;i<n;i++) printf("%d ",c[i]);
}
int main()
{

    freopen("in.txt","r",stdin);
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    solve();
    return 0;
}

#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int a[100],b[100],c[100],n;int solve()//离散化{    for(int i=0;i<n;i++) b[i]=a[i];    sort(b,b+n);    int m=unique(b,b+n)-b;    for(int i=0;i<n;i++) c[i]=lower_bound(b,b+m,a[i])-b;    for(int i=0;i<n;i++) printf("%d ",c[i]);}int main(){
    freopen("in.txt","r",stdin);    cin>>n;    for(int i=0;i<n;i++) cin>>a[i];    solve();    return 0;}

 

区间第k大问题 权值线段树

标签:

原文地址:http://www.cnblogs.com/z1141000271/p/5764845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!