zoukankan      html  css  js  c++  java
  • P1160队列安排(模拟题,链表,结构体运用)

    题目链接:https://www.luogu.org/problemnew/show/P1160

    题意不难,难的是怎么模拟成功。

    就想办法模拟出这个操作即可,我用的是结构体内存left和right+一个标记f,模拟链表指向和删除完成的。

     1 #include <iostream>
     2 #include <string>
     3 #include <algorithm>
     4 #include <iomanip>
     5 #include <cstdio>
     6 #include <cstring>
     7 #include <cmath>
     8 using namespace std;
     9 typedef long long ll;
    10 typedef unsigned long long ull;
    11 const int maxn=1e6+5;
    12 int n,m;
    13 struct px
    14 {
    15     int left;
    16     int right;
    17     int f;
    18 }T[maxn];
    19 
    20 int main()
    21 {
    22     ios::sync_with_stdio(false); cin.tie(0);
    23 
    24     cin>>n;
    25     T[1].f=1;
    26     for(int i=2;i<=n;i++)
    27     {
    28         int k,p;
    29         cin>>k>>p;
    30 
    31         T[i].f=1;
    32         if(p==0)//往左边插
    33         {
    34             T[i].left=T[k].left;
    35             T[i].right=k;
    36             T[T[k].left].right=i;
    37             T[k].left=i;
    38         }
    39         else//往右边插
    40         {
    41             T[i].right=T[k].right;
    42             T[i].left=k;
    43             T[T[k].right].left=i;
    44             T[k].right=i;
    45         }
    46     }
    47     cin>>m;
    48     while(m--)
    49     {
    50         int x;
    51         cin>>x;
    52         T[x].f=0;
    53     }
    54 
    55 
    56     int L=1;
    57     while(T[L].left) L=T[L].left;
    58     int R=L;
    59     while(R)
    60     {
    61         if(T[R].f) cout<<R<<' ';
    62         R=T[R].right;
    63     }
    64     cout<<endl;
    65 
    66 
    67     return 0;
    68 }

    完。

  • 相关阅读:
    Stimulsoft Reports筛选数据来绑定显示2个报表
    随便写点吧
    盒模型、文档流
    css选择器、权重
    css3转换
    html
    css新起点
    css里的那些事儿
    【谭老师讲堂】零基础如何学好Java——交流
    【谭老师讲堂】零基础如何学好Java——棒棒糖
  • 原文地址:https://www.cnblogs.com/redblackk/p/9849479.html
Copyright © 2011-2022 走看看