1 条题解
-
0
#include <stdio.h> #include <string.h> #define lson cur << 1 #define rson cur << 1 | 1 const int maxn = 50000; struct node { int pid; int loop; int tag; }tree[maxn]; int n, i, k; void build(int cur, int d) { if(d == n) return; tree[lson].loop = d; tree[lson].pid = k; tree[lson].tag = ++k; build(lson, d+1); tree[rson].loop = d; tree[rson].tag = ++k; tree[rson].pid = tree[cur].pid; build(rson, d+1); } void dfs(int cur, int d, int flag) { if(cur >= maxn) return; if(d+1000 == tree[cur].tag) { if(flag) printf("Loop %d: Process ID=%d\n", tree[cur].loop, tree[cur].pid); else printf("Process ID=%d, A=%d\n", tree[cur].tag, (tree[cur].loop + 1) * 7); return ; } dfs(lson, d, flag); dfs(rson, d, flag); } int main() { int t; scanf("%d", &t); while(t--) { memset(tree, 0, sizeof tree); k = 1000; scanf("%d%d", &n, &i); tree[1].loop = 0, tree[1].pid = k, tree[1].tag = ++k; build(1, 1); dfs(1, (i+1) >> 1, i & 1); } return 0; }
- 1
信息
- ID
- 681
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者