一个很奇怪的点

P1188 PASTE

@[Sun_Email](/user/566451) 能发一下代码吗
by _zzzzzzy_ @ 2023-07-20 20:20:41


行吧 WA: ```cpp #include<bits/stdc++.h> using namespace std; int n,k,nxt[100010],t1,t2,t3; int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;++i){ nxt[i]=i+1; } nxt[n]=0; nxt[0]=1; //a~b swap c+1~c+b-a+1 for(int i=1,u,v,w;i<=k;++i){ scanf("%d%d%d",&u,&v,&w); t1=t2=t3=0; if(w>=u){ w+=v-u+1; } for(int i=nxt[0],j=1;i;i=nxt[i],++j){ if(j==u-1){ t1=i; } if(j==v){ t2=i; if(t1&&t3){ break; } } if(j==w){ t3=i; if(t1&&t2){ break; } } } // int IAKIOI=nxt[t1]; // nxt[t1]=nxt[t2]; // nxt[t2]=nxt[t3]; // nxt[t3]=IAKIOI; int IAKIOI=nxt[t3]; nxt[t3]=nxt[t1]; nxt[t1]=nxt[t2]; nxt[t2]=IAKIOI; } for(int i=nxt[0],j=1;j<=10;++j,i=nxt[i]){ printf("%d\n",i); } return 0; } ``` AC:```cpp #include<bits/stdc++.h> using namespace std; int n,k,nxt[100010],t1,t2,t3; int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;++i){ nxt[i]=i+1; } nxt[n]=0; nxt[0]=1; //a~b swap c+1~c+b-a+1 for(int i=1,u,v,w;i<=k;++i){ scanf("%d%d%d",&u,&v,&w); t1=t2=t3=0; if(w>=u){ w+=v-u+1; } for(int i=nxt[0],j=1;i;i=nxt[i],++j){ if(j==u-1){ t1=i; } if(j==v){ t2=i; if(t1&&t3){ break; } } if(j==w){ t3=i; if(t1&&t2){ break; } } } int IAKIOI=nxt[t1]; nxt[t1]=nxt[t2]; nxt[t2]=nxt[t3]; nxt[t3]=IAKIOI; // int IAKIOI=nxt[t3]; // nxt[t3]=nxt[t1]; // nxt[t1]=nxt[t2]; // nxt[t2]=IAKIOI; } for(int i=nxt[0],j=1;j<=10;++j,i=nxt[i]){ printf("%d\n",i); } return 0; } ``` @[zhangzhengyan0831](/user/715244)
by Sun_Email @ 2023-07-20 20:23:31


```cpp #include<bits/stdc++.h> using namespace std; int n,k,nxt[100010],t1,t2,t3; int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;++i){ nxt[i]=i+1; } nxt[n]=0; nxt[0]=1; //a~b swap c+1~c+b-a+1 for(int i=1,u,v,w;i<=k;++i){ scanf("%d%d%d",&u,&v,&w); t1=t2=t3=0; if(w>=u){ w+=v-u+1; } for(int i=nxt[0],j=1;i;i=nxt[i],++j){ if(j==u-1){ t1=i; } if(j==v){ t2=i; if(t1&&t3){ break; } } if(j==w){ t3=i; if(t1&&t2){ break; } } } int IAKIOI=nxt[t1]; nxt[t1]=nxt[t2]; nxt[t2]=nxt[t3]; nxt[t3]=IAKIOI; // int IAKIOI=nxt[t3]; // nxt[t3]=nxt[t1]; // nxt[t1]=nxt[t2]; // nxt[t2]=IAKIOI; } for(int i=nxt[0],j=1;j<=10;++j,i=nxt[i]){ printf("%d\n",i); } return 0; } ``` @[zhangzhengyan0831](/user/715244)
by Sun_Email @ 2023-07-20 20:24:24


@[Sun_Email](/user/566451) e,就是交换换了一下是吧
by _zzzzzzy_ @ 2023-07-20 20:26:02


对 @[zhangzhengyan0831](/user/715244)
by Sun_Email @ 2023-07-20 20:26:44


@[Sun_Email](/user/566451) 你应该自己手搓一下就是了吧
by _zzzzzzy_ @ 2023-07-20 20:32:26


呃 手搓是什么 @[zhangzhengyan0831](/user/715244)
by Sun_Email @ 2023-07-20 20:34:04


@[Sun_Email](/user/566451) 手动模拟
by _zzzzzzy_ @ 2023-07-20 20:34:48


|