题意:出一颗树,有两种操作:
1. mark  u  标记结点u
2.query  u  询问离u最近的且被标记的祖先结点是哪个
让你输出所有询问的和。

思路:数据量太小,直接暴力dfs就可以了

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
#include<set>
#include<queue>
#include<string>
#include<algorithm>
#define MAXSIZE 100005
#define LL long long
using namespace std;int vis[MAXSIZE],pre[MAXSIZE];LL dfs(int p)
{if(vis[p])return p;return dfs(pre[p]);
}int main()
{int n,m,num;LL sum;char op[5];while(scanf("%d%d",&n,&m),n+m){sum = 0;memset(vis,0,sizeof(vis));vis[1] = 1;for(int i=2;i<=n;i++){scanf("%d",&num);pre[i] = num;}while(m--){scanf("%s%d",op,&num);if(op[0] == 'Q'){sum += dfs(num);}else{vis[num] = 1;}}printf("%lld\n",sum);}return 0;
}

View Code

转载于:https://www.cnblogs.com/alan-W/p/7288460.html

Aizu 2170 Marked Ancestor相关推荐

  1. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  2. ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)

    白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...

  3. 1143 Lowest Common Ancestor(建树与不建两种思路)

    目录 解法一 解法二 解法一 这题可以不建树,直接利用BST的性质:左子树<根节点<右子树,对先序序列进行遍历,如果有某个元素大于等于u,v中较小的且小于等于u,v中较大的,则可能是根节点 ...

  4. BFS:图的最短路径  Aizu - 0558 ​​​​​​​Cheese

    Cheese Aizu - 0558 大意:在H * W的地图上有N个奶酪工厂,每个工厂分别生产硬度为1-N的奶酪.有一只老鼠准备从出发点吃遍每一个工厂的奶酪.老鼠有一个体力值,初始时为1,每吃一个工 ...

  5. Aizu - 0033 Ball

    这题书上写让用DFS--可是这一比较就出来啊-- Ball Aizu - 0033 図のように二股に分かれている容器があります.1 から 10 までの番号が付けられた10 個の玉を容器の開口部 A か ...

  6. Confluence 6 重构 ancestor 表

    ancestor 表记录了上级和下级(子页面)页面之间的关系.这个表格同时被用来确定子页面是否具有从上级页面继承来的限制(restrictions)权限. 偶尔 ancestor 表格中的数据可能被损 ...

  7. Transaction rolled back because it has been marked as rollback-only分析解决方法

    Transaction rolled back because it has been marked as rollback-only分析解决方法 参考文章: (1)Transaction rolle ...

  8. Lowest Common Ancestor of a Binary Search Tree(树中两个结点的最低公共祖先)

    题目描述: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in ...

  9. [MySQL]快速解决is marked as crashed and should be repaired故障

    登录mysql执行 repair table table_name 完毕 下面的方法试了不管用 -------------------------------------- 具体报错如下: Table ...

最新文章

  1. python codecs模块
  2. hive查询where join_Hive系列(4):常用函数where,join
  3. 鼠标位置精确定位总结
  4. 【MD5】加密/解密大小写问题
  5. leetcode 330. Patching Array | 1798. Maximum Number of Consecutive Values You Can Make
  6. printf函数源码linux,再来一版简易的printf函数实现
  7. pthread 的坑
  8. relative与absolute相结合
  9. C++之指针探究(十六):typedef结合函数指针
  10. Java MyBatis 别名
  11. python发邮件实例_python发邮件实例
  12. 1019. General Palindromic Number (20)
  13. 大数据Hadoop相关概念及其技术生态圈
  14. 传奇物品在地上显示,红字,自动拾取文件
  15. Illustrator CC从入门到精通 精装版-李发展-专题视频课程
  16. 工作笔记-Hazelcast安装和基本配置
  17. h5阿里云播放器 常规使用
  18. 10.[保护模式]长调用与短调用
  19. DVD碟片w ndows7,Windows7-USB-DVD-Tool下载地址及使用方法解决
  20. MySQL 高可用之MMM

热门文章

  1. 6年Java程序员年薪60W,这些年我都爬过哪些坑(2021年终总结)
  2. 【枭·音频】注入灵魂—《暗影火炬城》角色语音后期处理
  3. 从无主之地看FPS+ARPG游戏的发展方向
  4. 《暗黑地牢》—“克苏鲁”式的绝望冒险
  5. 模型解析之独立顶点的筛选
  6. pmp每日三题(2022年2月25日)
  7. 解决ORA-15097 Cannot shutdown ASM if OCR is Located in ASM
  8. MySQL查询报错ERROR:No query specified
  9. Nagios 请检查HTTP服务器关于该CGI的访问权限设置
  10. ORACLE 动态SQL中的多个单引号