全WA救命~~
查看原帖
全WA救命~~
1279718
phigros_player楼主2024/5/19 14:48
#include <bits/stdc++.h>
using namespace std;
int a[1000];
int q;
int op[100005],qi[100005];
long long f[40];
long long v;
long long now(){
	long long sum=0;
	for(int i=0;i<=50;i++){
		sum+=(long long)a[i]*pow(3,i);
	}
	return sum;
}
int main()
{
  cin>>v>>q;
  int num=1;
  f[0]=1;
  while(1){
  	f[num]=f[num-1]*3;
  	if(f[num]>=1e18) break;
  	num++;
  }
  num--;
  while(v){
  	for(int k=num;k>=0;k--){
  		while(v>=f[k]){
  			v-=f[k];
  			a[k]++;
		  }
	  }
  }
  for(int i=1;i<=q;i++){
  	cin>>qi[i]>>op[i];
  }
   for(int i=1;i<=q;i++){
  	if(qi[i]==1){
  		if(a[op[i]]==0)a[op[i]]=1;
  		else if(a[op[i]]==1)a[op[i]]=2;
  		else if(a[op[i]]==2)a[op[i]]=0;
	}
	else if(qi[i]==2){
		if(a[op[i]]==0)a[op[i]]=2;
  		else if(a[op[i]]==1)a[op[i]]=0;
  		else if(a[op[i]]==2)a[op[i]]=1;
	}
	else if(qi[i]==3){
  		if(a[op[i]]==1)a[op[i]]=2;
  		else if(a[op[i]]==2)a[op[i]]=1;
	}
	cout<<now()<<endl;
  }
  return 0;
}

2024/5/19 14:48
加载中...