need help!
  • 板块P1188 PASTE
  • 楼主ThebestJoe
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/10/18 19:18
  • 上次更新2023/10/27 06:59:22
查看原帖
need help!
517223
ThebestJoe楼主2022/10/18 19:18
#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; 
}

2022/10/18 19:18
加载中...