当前位置: 首页 > news >正文

【*1900 图论+枚举思想】CF1328 E

Problem - E - Codeforces

题意:

思路:

注意到题目的性质:满足条件的路径个数是极少的,因为每个点离路径的距离<=1

先考虑一条链,那么直接就选最深那个点作为端点即可

为什么,因为我们需要遍历所有点的父亲

推广到树,也是要遍历所有点的父亲

为什么要加枚举的tag,因为可以发现满足条件的链的状态数很少,可以把这个作为切入点

Code:

#include <bits/stdc++.h>#define int long longusing namespace std;const int mxn=2e5+10;
const int mod=1e9+7;vector<int> G[mxn];int N,M,K,u,v,x;
int idx=0;
int dep[mxn],In[mxn],sz[mxn],F[mxn];void dfs(int u,int fa){sz[u]=1;F[u]=fa;dep[u]=dep[fa]+1;In[u]=++idx;for(auto v:G[u]){if(v==fa) continue;dfs(v,u);sz[u]+=sz[v];}
}
bool cmp(int x,int y){return dep[x]<dep[y];
}
bool check(int u,int v){return In[v]>=In[u]&&In[v]<=In[u]+sz[u]-1;
}
void init(){for(int i=0;i<=N;i++){dep[i]=In[i]=sz[i]=F[i]=0;G[i].clear();}
}
void solve(){cin>>N>>M;init();for(int i=1;i<=N-1;i++){cin>>u>>v;G[u].push_back(v);G[v].push_back(u);}dfs(1,0);F[1]=1;while(M--){cin>>K;vector<int> V;for(int i=1;i<=K;i++){cin>>x;V.push_back(F[x]);}//for(int i=0;i<V.size();i++) cout<<V[i]<<" \n"[i==V.size()-1];sort(V.begin(),V.end(),cmp);int ok=1;for(int i=1;i<V.size();i++){if(!check(V[i-1],V[i])){ok=0;break;} }if(ok) cout<<"YES"<<'\n';else cout<<"NO"<<'\n';}
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int __=1;//cin>>__;while(__--)solve();return 0;
}

http://www.lryc.cn/news/102153.html

相关文章:

  • AutoSAR系列讲解(实践篇)10.5-通信管理模块
  • 2023.7.30(epoll实现并发服务器)
  • 小研究 - 基于解析树的 Java Web 灰盒模糊测试(一)
  • SpringBoot接手JSP项目--【JSB项目实战】
  • Python模块psycopg2连接postgresql
  • Kotlin基础(八):泛型
  • Java学习笔记——(10)环境变量path配置及其作用
  • 【图像去噪】基于进化算法——自组织迁移算法(SOMA)的图像去噪研究(Matlab代码实现)
  • TMS WEB Core Crack,TMS软件Delphi组件RADical Web
  • PHP使用Redis实战实录4:单例模式和面向过程操作redis的语法
  • 解决:移动端H5的<video>初始化拿不到总时长
  • 百度云上传身份证获取身份信息封装
  • vscode 上cmake 版本过低
  • OS-08-事件驱动:C10M是如何实现的?
  • mysql 主从同步排查和处理 Slave_IO、Slave_SQL
  • 基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)
  • 07mysql查询语句之子查询
  • 笙默考试管理系统-MyExamTest(22)
  • Windows 不同方式打开的cmd/dos窗口属性配置不同
  • 性能优化-webpack配置gzip
  • RabbitMQ 教程 | 第3章 客户端开发向导
  • 基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)
  • input元素中的form属性有什么用?
  • 【数据结构篇C++实现】- 特殊的线性表 - 串
  • DevOps系列文章 之 Springboot单元测试
  • 04 linux之C 语言高级编程
  • 深入学习 Redis - Stream、Geospatial、HyperLogLog、Bitmap、Bitfields 类型扩展
  • Windows11+Opencv+Clion编译源码
  • 【机器学习】Cost Function
  • 【黑马头条之内容安全第三方接口】