ThebestJoe @ 2022-10-18 19:18:07
#include <iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1e5+10;
int n,k;
int g[2][maxn];
int p;
int a,b,c;
int visa[maxn];
int visb[maxn];
int main() {
cin>>n>>k;
for(int i=1;i<=n;i++)
{
g[p][i]=i;
}
while(k--)
{
cin>>a>>b>>c;
memset(visa,0,sizeof visa);
memset(visb,0,sizeof visb);
for(int i=a,j=0;i<=b;i++) //先粘贴 visa 记录有哪些数粘贴了 visb记录第二个数组哪些位置用了
{
g[p^1][c+(++j)]=g[p][i];
visb[c+j]=1;
visa[i]=1;
}
for(int i=1,j=0;i<=n;i++)
{
if(!visa[i])
{
while(visb[++j]);
g[p^1][j]=g[p][i];
visb[j]=1;
visa[i]=1;
}
}
for(int i=1;i<=n;i++)
cout<<g[p^1][i]<<" ";
cout<<endl;
p^=1;
}
if(k%2==1)p=0;
else p=1;
for(int i=1;i<=10;i++)
cout<<g[p][i]<<endl;
return 0;
}
by ThebestJoe @ 2022-10-18 19:18:55
@ThebestJoe 得分60,不知道哪里错了,求hank数据
by UchihaCelery @ 2022-10-18 19:45:08
@ThebestJoe 您样例好像就不对啊 您输出
1
6
7
8
9
10
11
12
10
11
我也不知道为什么
by ThebestJoe @ 2022-10-18 19:51:50
@UchihaCelery 怎么可能 我是两个数组交替使用,答案数组的确定和k有关 我样例是过了的,如果你没有改我的代码话
by ThebestJoe @ 2022-10-18 20:52:27
@ThebestJoe 对于我的代码 p最终是指向答案数组的,(之前没有想明白)我就多加一个判断,最搞笑的是本来加这个判断没有问题,但是我判断错了,现在已经a了,此贴完结