进食后人:手写链表WA 85pts
查看原帖
进食后人:手写链表WA 85pts
924621
pig1121楼主2024/11/2 08:30

你看下面这个链表:

void ins(int id,int x){
		arr[++tot]={x,tail[id]};
		tail[id]=tot;
		if(!len[id])head[id]=tot;
		len[id]++;
	}
	void del(int id){
		int pr=arr[tail[id]].pre;
		arr[tail[id]].pre=0;
		tail[id]=pr;
		len[id]--;
		if(!pr)head[id]=0;
	}
	void merge(int id1,int id2,int id3){
		arr[head[id2]].pre=id1;
		head[id3]=(head[id1]?head[id1]:head[id2]);
		tail[id3]=(tail[id2]?tail[id2]:tail[id1]);
		len[id3]=len[id1]+len[id2];
	}

看起来好像没有问题,但……

arr[head[id2]].pre=id1;

合并的时候要指到前一个链表的尾指针上!不是前一个链表的编号上!

这数据怎么这么水,链表写炸都有85pts,建议 CCF 加强数据

2024/11/2 08:30
加载中...