题目
题意: 给定一棵n个节点的完全二叉树的后序遍历(不一定满足是2^k-1,但是只会在右边缺点。n<=60)。给定m组查询,对于给定点x。判断是否在书中。若在树中,则将以它为根的子树全部标记上,并输出本次操作中标记的叶子的数量。若已经被标记,则输出一句奇奇怪怪的话。最后输出所有未被标记的点形成的前序遍历。
思路: 根据完全二叉树的特点建树即可,开个数组。递归的建树,先儿子,再根节点。
时间复杂度: O(m*logn + n) 根据给定的值拿map映射到在树中的下标,反正n很小,无所胃。
代码:

#include<bits/stdc++.h>
using namespace std;
#define mem(a,x) memset(a,x,sizeof(a))
#define fir(i,a,b) for(int i=a;i<=b;++i)
const int N = 1e5+10;
typedef long long ll;
typedef pair<int,int> PII;
int n,m,k,T;
int a[102];
int idx = 0;
int b[102];
bool vis[102];
map<int,int> mp;
void get(int now)
{if(now > n){return ;}get(now<<1|1);get(now<<1);//右、左、根a[now] = b[idx++];
}
bool kong = true;
void pre(int now)
{if(now > n || vis[now]) return; if(kong)printf("%d",a[now]),kong = false;else printf(" %d",a[now]);pre(now<<1);pre(now<<1|1);
}
int mx;
int va[] = {1,3,7,15,31,63};
int dfs(int cur)
{// cout<<cur<<"?"<<endl;if(cur > n || vis[cur]) return 0;vis[cur] = 1;if(cur*2>mx) return 1;return dfs(cur<<1)+dfs(cur<<1|1);
}
void solve()
{cin>>n;for(int i=0;;++i){if(va[i] >= n){mx = va[i];break;}}for(int i=0;i<n;++i){cin>>b[i];}get(1);for(int i=1;i<=n;++i) mp[a[i]] = i; //x在树中的下标位置cin>>m;while(m--){int root; cin>>root;root = mp[root];if(root==0){cout<<"Kan Qing Chu Le?\n";}else {if(vis[root]){cout<<"Zao Jiu Cai Diao Le!\n";}else{cout<<dfs(root)<<"\n";}}}int cnt = 0;for(int i=1;i<=n;++i) if(vis[i]) cnt++;if(cnt == n){cout<<"Kong Le!";}else{pre(1);}
}
signed main(void)
{solve();return 0;
}

程序设计天梯赛2021年选拔 L2-4红豆 (什么完全树给定后序遍历)相关推荐

  1. 2021年团体程序设计天梯赛-总决赛L2题解

    2021年团体程序设计天梯赛-总决赛! L2-1 包装机 思路:模拟 代码: #include<bits/stdc++.h> using namespace std; int main() ...

  2. 1985年全国计算机编程大赛,关于举办2021年“中国高校计算机大赛-团体程序设计天梯赛”校内选拔赛的通知...

    程序设计能力是大学生利用计算机分析问题.解决问题的重要基础能力.为了推进该能力的培养,同时培养学生的团队合作精神,提高其综合素质,丰富校园学术气氛,促进校际交流,提高全国高校程序设计课程教学水平,教育 ...

  3. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码

    [CCCC]PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1.树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底 ...

  4. 团体程序设计天梯赛-L2组

    团体程序设计天梯赛-L2组 -------------------------------------------------------------------------------- 题目传送门 ...

  5. 2021年中国高校计算机大赛团体程序设计天梯赛

    2021年中国高校计算机大赛团体程序设计天梯赛 L1-1 人与神 (5 分) L1-2 两小时学完C语言 (5 分) L1-3 强迫症 (10 分) L1-4 降价提醒机器人 (10 分) L1-5 ...

  6. 团体程序设计天梯赛 L2 题目合集

    前言 发现自己还能再参加一次天梯赛,在高兴之余,决定把在赛前将所有的天梯赛真题过一遍,希望自己可以取得理想的成绩.目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目. 本来想 L2 的题目都写个 ...

  7. 2021年团体程序设计天梯赛-模拟赛

    文章目录 L1-1 宇宙无敌大招呼 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1-2 考试周 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code L1- ...

  8. 团体程序设计天梯赛 -- 练习集 (L2合集)

    文章目录 L2-001 紧急救援 (25 分) L2-002 链表去重 (25 分) L2-003 月饼 (25 分) L2-004 这是二叉搜索树吗? (25 分) L2-005 集合相似度 (25 ...

  9. PTA|团体程序设计天梯赛-练习题库集

    文章目录 关于爬取脚本的编写 L1-001 Hello World! (5 分) L1-002 打印沙漏 (15 分) L1-003 个位数统计 (15 分) L1-004 计算摄氏温度 (5 分) ...

最新文章

  1. mysql创建唯一索引_mysql创建唯一索引
  2. python编程第四版_清华编程教授强力推荐《Python编程》,指导你如何学习python
  3. MySQL笔记汇总---狂神说
  4. ping cat.flag.php,关于2020年强网杯-强网先锋-主动的赛题解析
  5. BZOJ 1922: [Sdoi2010]大陆争霸
  6. java signutil_java.util包 上
  7. android 55
  8. php 数字加逗号,PHP数字格式化,数字每三位加逗号
  9. Julia : global、local 以及 作用域问题
  10. java中Map集合的四种遍历方式
  11. 离散数学-自反性-对称性-传递性,关系的性质
  12. FingerGestures手势插件的使用
  13. 21世纪最牛逼思想家的心路历程小结———哲学、宿命论
  14. 计算机中的right函数,right函数用法实例
  15. Ubuntu-samba服务器的搭建
  16. 禁止div被拖动 css,【Web前端问题】div在拖动时出现禁止图标
  17. 教你如何优秀的选择付费代理ip的提供商
  18. 安装keepalive错误:configure: error: No SO_MARK declaration in headers
  19. 通过路由器子接口实现 VLAN 间的互访
  20. 今日头条如何运营,今日头条怎么运营好,今日头条运营技巧

热门文章

  1. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
  2. 数据挖掘4:自然语言处理(NLP)信息提取技术
  3. 数据结构(C语言) 实验---图及其应用
  4. STM32学习——入门小项目
  5. mysql跳过安全_MYSQL安装之最新版MySQL手把手安装教程
  6. crf graph matlab_如何评价 Vicarious 在 Science 上提出基于概率图模型(PGM)的 RCN 模型?...
  7. java获取当前时间和求时间差(分钟,秒钟,小时,年等)
  8. 你面对以希望为名的绝望微笑(未完成)
  9. php爬虫邮箱邮件,简单网络爬虫实现爬取网页邮箱
  10. 电脑运行卡顿,只需三步轻松解决