2 条题解
-
0凌艺樽 (Lawrence劳伦斯) LV 10 @ 2024-4-25 18:26:42
#include <bits/stdc++.h> using namespace std; const int N=1e4+10; string tr[20],s; int n,a[N],p; bool Power(int n) { if(n<=1)return 0; return (n&(n-1))==0; } int main() { cin>>n>>s; for(int i=0;i<s.size();++i) { cout<<(s[i]=='0'?'B':'I'); if(s[i]=='0')tr[0]+="B"; if(s[i]=='1')tr[0]+="I"; for(int j=0;j<=n;++j) { if(tr[j].size()>=2) { if(tr[j][0]==tr[j][1] && tr[j][0]!='F')tr[j+1]+=tr[j][0]; else tr[j+1]+="F"; cout<<tr[j+1][tr[j+1].size()-1]; if(j+1==n)return 0; tr[j]=""; } else { break; } } } return 0; }
-
02023-10-15 11:40:11@
#include <iostream> using namespace std; int n; char s[1<<20]; char type [1<<20]; void dfs(int x){ if(x>=(1<<n)){ if(s[x]=='1'){ type[x]='I'; } else{ type[x]='B'; } cout<<type[x]; return; } dfs(2*x); dfs(2*x+1); if(type[2*x]==type[2*x+1]){ type[x]=type[2*x]; } else{ type[x]='F'; } cout<<type[x]; } int main(){ cin>>n; for(int i=(1<<n);i<(1<<(n+1));i++){ cin>>s[i]; } dfs(1); return 0; }
- 1
信息
- ID
- 672
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 105
- 已通过
- 37
- 上传者