求调
  • 板块P10510 进制
  • 楼主Earth_Sky
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/29 21:43
  • 上次更新2024/12/30 18:43:01
查看原帖
求调
783336
Earth_Sky楼主2024/12/29 21:43

rt,30pts

#include<bits/stdc++.h>
using namespace std;
const int a[4][3]={{},{1,2,0},{2,0,1},{0,2,1}};
long long v,q,op,i,s[40],cnt[40];
void init(){
	cnt[0]=1;
	for(int i=1;i<40;i++)
		cnt[i]=cnt[i-1]*3;
}
int main(){
//	freopen("sample1.in","r",stdin);
//	freopen("sample1.out","w",stdout);
	ios::sync_with_stdio(NULL);
	cin.tie(0);cout.tie(0);
	init();
	cin>>v>>q;
	int c=0,t=v;
	while(t){
		s[c++]=t%3;
		t=t/3;
	}
	while(q--){
		cin>>op>>i;
		v=v+cnt[i]*(a[op][s[i]]-s[i]);
		s[i]=a[op][s[i]];cout<<v<<endl;
	}

	return 0;
}
2024/12/29 21:43
加载中...