zoukankan      html  css  js  c++  java
  • 1074 Reversing Linked List (25 分)

    水~。

    注意点

    1. 要考虑可能存在无效结点的情况,即不是由题目给出的头结点引出的单链表上的结点,这些结点是要去掉的,最终不予输出。
    2. 反转链表只改变结点的next地址,而不会改变本身的地址,因此address和data可以视为绑定的。
    const int N=1e5+10;
    struct Node
    {
        int addr,data,nxt;
    }a[N];
    int head,n,k;
    
    int main()
    {
        cin>>head>>n>>k;
    
        for(int i=0;i<n;i++)
        {
            int addr,data,nxt;
            cin>>addr>>data>>nxt;
            a[addr]={addr,data,nxt};
        }
    
        vector<Node> res;
        int p=head;
        while(p != -1)
        {
            res.pb(a[p]);
            p=a[p].nxt;
        }
    
        for(int i=0;i<res.size();i+=k)
        {
            if(i+k > res.size()) break;
            reverse(res.begin()+i,res.begin()+i+k);
        }
    
        for(int i=0;i<res.size();i++)
        {
            if(i == res.size()-1)
                printf("%05d %d -1
    ",res[i].addr,res[i].data);
            else
                printf("%05d %d %05d
    ",res[i].addr,res[i].data,res[i+1].addr);
        }
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    [usaco]Cow Pedigrees
    组合数取模
    [usaco]Controlling Companies
    ubuntu g++ 升级
    膜拜
    Node.js权威指南 (2)
    Vue.js 开发环境的搭建
    src路径问题:./ 与 ../
    vscode vue代码提示错误
    H5 localStorage sessionStorage
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14475244.html
Copyright © 2011-2022 走看看