萌新求助,CF AC 洛谷 RE
查看原帖
萌新求助,CF AC 洛谷 RE
226760
RedLycoris楼主2020/7/20 20:03

如题

求助qwq

Code:

#include<bits/stdc++.h>
using namespace std;
vector<vector<int> >q,t;
vector<int> p;int n,cnt;
inline bool check(vector<int> x){
	int T,t,ln=x.size()-1,p=ln;
	vector<int> tmp=x;
	for(int i=0;i<=ln;++i){
		if((x[0]&1)!=tmp[i])return 0;
		T=0;
		for(int j=p;~j;--j){
			t=(T*10+x[j])&1;
			x[j]=(T*10+x[j])>>1;
			T=t;
		}
		for(;!x[p];--p);
	}
	return 1;
}
inline void print(vector<int> tmp){
	for(int i=tmp.size()-1;~i;--i)putchar((char)(tmp[i]+'0'));
	putchar('\n');
}
inline void go(){
	p.clear();p.push_back(0);q.push_back(p);
	p.clear();p.push_back(1);q.push_back(p);
	for(;;){
		t=q;
		q.clear();
		for(vector<int> p:t){
			vector<int> tmp=p;tmp.push_back(0);
			if(check(tmp))q.push_back(tmp);
		}
		for(vector<int> p:t){
			vector<int> tmp=p;tmp.push_back(1);
			if(check(tmp)){
				if(++cnt==n){
					print(tmp);
					return;
				}
				q.push_back(tmp);
			}
		}
	}
}
int main(){
	ios_base::sync_with_stdio(false);
	cin>>n;
	if(n==1)return puts("1")*0;
	--n,go();
	return 0;
}
2020/7/20 20:03
加载中...