F Auxiliary Set

树上LCA + DFS

注意一下输出格式!

#include<bits/stdc++.h>
using namespace std; const int N = 1e5 + 10;
int t, n, q, ans;
int fa[N]; // 存储点i的父亲节点
int son[N], tmp[N];//存儿子节点
int un[N];//存不重要的点序列
int dep[N];//存深度
bool vis[N];
vector<int> vet[N]; void dfs(int u, int f, int d){
fa[u] = f;
dep[u] = d;
vis[u] = true;
for(int i = 0; i < vet[u].size(); i++){
int j = vet[u][i];
if(!vis[j]){
//不能把父亲也加到儿子当中
son[u] ++;
dfs(j,u,d + 1);
}
}
} bool cmp(int a, int b){
return dep[a] > dep[b];
} signed main(){
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> t;
for(int tot = 1; tot <= t; tot ++){
cin >> n >> q;
for(int i = 1; i <= n; i++){
vis[i] = false;
son[i] = 0;
vet[i].clear();
}
for(int i = 1; i <= n - 1; i ++){
int a, b;
cin >> a >> b;
vet[a].push_back(b);
vet[b].push_back(a);
}
dfs(1,0,0);
cout << "Case #" << tot <<":" << endl;
for(int j = 1; j <= q; j ++){
int k;
cin >> k;
ans = n - k;
for(int i = 1;i <= k; i++){
cin >> un[i];
tmp[un[i]] = son[un[i]];
}
//从深度更深的节点开始遍历
sort(un + 1, un + 1 + k, cmp);
for(int i = 1; i <= k; i++){
if(tmp[un[i]] >= 2){
ans ++;
}
else if(tmp[un[i]] == 0){
tmp[fa[un[i]]] --;
}
}
cout << ans << endl;
}
}
return 0;
}

Auxiliary Set题解的更多相关文章

  1. LuoguP7019 [NWRRC2017]Auxiliary Project 题解

    Update \(\texttt{2021.6.24}\) 修改了一处格式上的错误和一处笔误. Content 已知用 LED 灯来显示 \(0\sim9\) 这十个数字分别需要 \(6,2,5,5, ...

  2. 【LeetCode题解】225_用队列实现栈(Implement-Stack-using-Queues)

    目录 描述 解法一:双队列,入快出慢 思路 入栈(push) 出栈(pop) 查看栈顶元素(peek) 是否为空(empty) Java 实现 Python 实现 解法二:双队列,入慢出快 思路 入栈 ...

  3. coci2018 题解

    plahte 给定一些矩形和一些有颜色的点,求每个矩形上有多少种颜色的点,保证矩形只有包含和不相交两种关系,规模 \(10^5\). 把每个矩形看成一个点,用扫描线建出森林,同时也顺便处理点. 然后做 ...

  4. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  5. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  6. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  7. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  8. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  9. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  10. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

随机推荐

  1. [转帖]Linux下非oracle用户如何使用系统认证方式登陆数据

    https://www.cnblogs.com/kerrycode/p/17772866.html Linux系统中,DBA一般使用oracle用户登陆/访问Linux操作系统,然后使用sqlplus ...

  2. [转帖]通过拓扑 label 进行副本调度

    https://docs.pingcap.com/zh/tidb/stable/schedule-replicas-by-topology-labels#%E5%9F%BA%E4%BA%8E%E6%8 ...

  3. [转帖]《Linux性能优化实战》笔记(十五)—— 磁盘IO的工作原理

    前一篇介绍了文件系统的工作原理,这一篇来看看磁盘IO的工作原理 一. 磁盘 1. 按存储介质分类 磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘. 机械磁盘, ...

  4. [转帖]自动化配置SSH免密登录和取消SSH免密配置脚本

    1. 前文 搭建了一套有多台主机的局域网环境,不完全考虑安全性的情况下,为方便管理局域网内主机,配置SSH免密登录,因主机较多,前阵子针对配置ssh免密和取消ssh免密功能单独写了脚本来自动化批量部署 ...

  5. [转帖]armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别

    ARM处理器指令集 一. 苹果模拟器指令集: 指令集 分析 i386 针对intel通用微处理器32架构的 x86_64 针对x86架构的64位处理器 i386|x86_64 是Mac处理器的指令集, ...

  6. [转帖]Oracle入门精读28-字符集 AL32UTF8与UTF8

    字符(Character) 字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符编码(Character Encoding) 是一套法则,使用该法则能够对自然语言的字符的一个 ...

  7. 【行云流水线】满足你对工作流编排的一切幻想~skr

    流水线模型 众所周知,DevOps流水线(DevOps pipeline)的本质是实现自动化工作流程,用于支持软件开发.测试和部署的连续集成.交付和部署(CI/CD)实践.它是DevOps方法论的核心 ...

  8. element-ui表格展开行每次只能展开一行

    element-ui表格展开行每次只能展开一行 <template> <el-table :data="tableData" :expand-row-keys=& ...

  9. Elasticsearch实战:常见错误及详细解决方案

    Elasticsearch实战:常见错误及详细解决方案 1.read_only_allow_delete":"true" 当我们在向某个索引添加一条数据的时候,可能(极少 ...

  10. 主动学习(Active Learning)简介综述汇总以及主流技术方案

    0.引言 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi-su ...