need help!

P1188 PASTE

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了,此贴完结


|