zoukankan      html  css  js  c++  java
  • 0x13 链表与邻接表

    这东西我还是有点会玩的啊。。

    邻值查找这东西不就是维护个前驱后继嘛。。

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    struct node
    {
        int x,id;
    }a[110000];
    bool cmp(node n1,node n2){return n1.x<n2.x;}
    int p[110000];
    int bef[110000],aft[110000];
    int as[110000],pr[110000];
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i].x), a[i].id=i;
        sort(a+1,a+n+1,cmp);
        
        for(int i=1;i<=n;i++)p[a[i].id]=i,bef[i]=i-1,aft[i]=i+1;
        
        for(int i=n;i>=2;i--)
        {
            int t=p[i];as[i]=2147483647;
            if(bef[t]!=0)
            {
                int d=abs(a[t].x-a[bef[t]].x);
                if(d<as[i])
                    as[i]=d, pr[i]=a[bef[t]].id;
            }
            if(aft[t]!=n+1)
            {
                int d=abs(a[t].x-a[aft[t]].x);
                if(d<as[i])
                    as[i]=d, pr[i]=a[aft[t]].id;
            }
            aft[bef[t]]=aft[t];
            bef[aft[t]]=bef[t];
        }
        
        for(int i=2;i<=n;i++)printf("%d %d
    ",as[i],pr[i]);
        return 0;
    }
    邻值查找

    好的结果今天看一看下一题就是running median心态崩了,昨天才和苏大佬和林肯口胡了这题的链表做法。。。不做了。。。简直莫名其妙。。。

    邻接表。。。还有人不会,吗。。。

  • 相关阅读:
    SqlServer_小工具_时间格式化
    SqlServer_小工具_字符填充(左)
    SqlServer_小工具_获取北京时间
    JS写入Json到CSV并下载
    写入数据到CSV
    写入数据到Excel
    批量插入数据
    Json填充Object工具
    Json|XMl|Object互相转化-小工具
    TODO:用python实现aws签名
  • 原文地址:https://www.cnblogs.com/AKCqhzdy/p/9252121.html
Copyright © 2011-2022 走看看