精髓就是我们判断一个数在每个节点处是奇是偶。
#include<cstdio> #include<cmath> #include<cctype> #include<iostream> #include<vector> #include<cstring> #include<algorithm> #include<map> #include<set> #include<cstddef> #include<sstream> #include<cstdlib> #include<stack> #include<queue> using namespace std; int main() { int D, I; while(scanf("%d%d", &D, &I)) { int k = 1; for(int i = 0; i < D - 1; i++) if(I % 2) { k = k * 2; I = (I+1)/2; } else { k = k * 2 + 1; I /= 2; } printf("%d\n", k); } return 0; }
复制去Google翻译翻译结果
时间: 2024-11-13 12:36:42