社区讨论
CF356A Knight Tournament求链表为什么会T
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ckn1o
- 此快照首次捕获于
- 2025/11/20 19:27 4 个月前
- 此快照最后确认于
- 2025/11/20 19:27 4 个月前
之前也拿链表写过,可是T了好多次才不得已拿并查集写的QAQ,想知道链表时间复杂度为什么这么高,谢谢各位神佬。
CPP#include<bits/stdc++.h>
#define ri register int
using namespace std;
const int N=3e5+10;
int n,m;
int nex[N],pre[N],ans[N];
int main(){
scanf("%d%d",&n,&m);
for(ri i=1;i<=n+1;i++) nex[i]=i+1,pre[i]=i-1;
nex[0]=1,pre[0]=0;
while(m--){
int l,r,w;
scanf("%d%d%d",&l,&r,&w);
for(ri i=l;i<=r&&i<=n;i=nex[i]){
if(ans[i]) continue;
if(i!=w){
ans[i]=w;
pre[nex[i]]=pre[i];
nex[pre[i]]=nex[i];
}
}
}
for(ri i=1;i<=n;i++) printf("%d ",ans[i]);
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...