acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解

    双向链表经典题型;简单! #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m; struct T{ int l,r;//l为左指针 r为右指针 int d;//标记是否要删除 }t[N]; void add(int i,int k,int p){//添加 if(p1){// 右添加 t[k].r=t[i].r; t[k].l=i; t[i].r=k; t[t[k].r].l=k; }else{// 左添加 t[k].r=i; t[k].l=t[i].l; t[i].l=k; t[t[k].l].r=k; } } int main(){ int x,k,p; cin>>n; t[0].r=0,t[0].l=0; add(0,1,1); for (int i=2;i<=n;i++){ cin>>x>>p; add(x,i,p); } cin>>m; while(m--){ cin>>x; t[x].d=1;//标记是否删除 1为是 0为不是 } for (int i=t[0].r;i;i=t[i].r){ if(t[i].d0) cout<<i<<" "; } return 0; }

    userId_undefined

    181****0362

    倔强青铜
    8阅读
    1回复
    1点赞
  • 题解

    userId_undefined

    码农爱历史

    倔强青铜
    15阅读
    0回复
    0点赞
首页