求助
查看原帖
求助
336603
出言不逊王子楼主2020/10/17 21:51

过不了编译。

代码↓

#include<bits/stdc++.h>
#define ns "-1"
#define fs(i,x,y,z) for(register iii i=x;i<=y;i+=z)
#define ft(i,x,y,z) for(register iii i=x;i>=y;i+=z)
#define iii unsigned long long
using namespace std;
const int N=100001,inf=0x3f3f3f3f;
inline iii read(){
	iii date=0,w=1;char c=0;
	while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
	while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
	return date*w;
}
inline iii pass(iii n,iii p,iii r=2){//n第p位改成r 
	iii q=0,w=0,s=n,ss=n;//q左边的r右边的 
	fs(i,0,p-2,1){
		w+=(n&1llu)<<iii(i-1);
		n>>=1llu;
		printf("%llu ",w);
	}
	if(r==2){
		return n&1llu;
	}
	else{
		s=ss-w-(n&1llu);
		printf("%llu %llu ",s,((n&1llu)^1llu)<<iii(p-1));
		if(r!=3) s+=r<<iii(p-1);
		else s+=iii(((n&1llu)^1llu)<<iii(p-1));
		s+=w;
		printf("%llu\n",s);
		return s;
	}
}
inline void qqq(iii x){
	fs(i,1,63,1){
		printf("%llu",x&1llu);x>>=1llu;
	}
	puts("");
}
int main(){
	iii q=read(),k=read();
	while(q--){
		iii p=read(),t=read(),ans;
		if(p==4){
			ans=pass(k,t);
		}else if(p==3){
			ans=pass(k,t,3);k=ans;
		}else if(p==2){
			ans=pass(k,t,0);k=ans;
		}else if(p==1){
			ans=pass(k,t,1);k=ans;
		}
		qqq(k);
		//printf("%llu\n",);
	}
	return 0;
}
2020/10/17 21:51
加载中...