1 条题解

  • 0
    @ 2025-2-20 19:33:00

    考虑到要实现插入,删除,查询后继操作,可以使用单链表维护。因为1x1061 \le x \le 10^6,可以用nxt[i]表示i的后继元素,nxt[i]为0表示i是最后一个节点。代码如下

    #include<bits/stdc++.h>
    using namespace std;
    int q,op,x,y;
    int nxt[1000005];
    int main(){
    	scanf("%d",&q);
    	while(q--){
    		scanf("%d%d",&op,&x);
    		if(op==1){
    			scanf("%d",&y);
    			int k=nxt[x];
    			nxt[x]=y;
    			nxt[y]=k;
    		}else if(op==2){
    			printf("%d\n",nxt[x]);
    		}else{
    			if(nxt[x]==0)continue;
    			nxt[x]=nxt[nxt[x]];
    		}
    	}
    }
    
    • 1

    信息

    ID
    4647
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    81
    已通过
    15
    上传者