社区讨论
求该代码,蒟蒻飞舞
P5657[CSP-S 2019] 格雷码参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo2agixr
- 此快照首次捕获于
- 2023/10/23 10:38 2 年前
- 此快照最后确认于
- 2023/11/03 10:49 2 年前
超时最后四个点,蒟蒻不信邪请求大佬指点
CPP#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
const int Max=1e8;
int a[Max],b[Max];
long long n,k,r,p=0,l;
int t,y;
bool flag=false;
void turn2()
{
for(int i=1; ; i++){
p++;
b[i]=a[y]%2;
a[y]/=2;
if(a[y]==0) break;
}
if(p==l){
for(int j=p; j>=1; j--){
cout<<b[j];
}
}
else {
for(int j=n; j>p; j--){
cout<<'0';
}
for(int j=p; j>=1; j--){
cout<<b[j];
}
}
}
void yic()
{
a[1]=0;
a[2]=1;
t=1;
y=k+1;
l=n;
if(n==1) {
cout<<a[y];
}
else{
while(t<=(n-1)){
r=powl(2,t);
int o=1;
for(int i=r; i>=1; i--){
a[r+o]=a[i]+r;
if(r+o==y) {
flag=true;
break;
}
o++;
}
t++;
if(flag==true){
break;
}
}
turn2();
}
}
int main()
{
//freopen("code.in","r",stdin);
//freopen("code.out","w",stdout);
cin>>n>>k;
yic();
retu
回复
共 2 条回复,欢迎继续交流。
正在加载回复...