题目大意:给定一个 N 个点,M 条边的无向图,保证图中每个节点的度数大于等于 K,求图中一条长度至少大于 K 的简单路径,输出长度和路径包含的点。

题解:依旧采用记录父节点的方式进行找环,不过需要记录一下节点的深度,即:只有当环的大小满足需要的大小,再进行操作,否则忽略那些环即可。

代码如下

  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. #define mp make_pair
  4. #define all(x) x.begin(),x.end()
  5. using namespace std;
  6. typedef long long ll;
  7. typedef pair<int,int> P;
  8. const int mod=1e9+7;
  9. const int inf=0x3f3f3f3f;
  10. const int maxn=1e5+10;
  11. inline ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
  12. inline ll sqr(ll x){return x*x;}
  13. inline ll read(){
  14. ll x=0,f=1;char ch;
  15. do{ch=getchar();if(ch=='-')f=-1;}while(!isdigit(ch));
  16. do{x=x*10+ch-'0';ch=getchar();}while(isdigit(ch));
  17. return f*x;
  18. }
  19. vector<int> G[maxn],cyc;
  20. int n,m,k,ans;
  21. int dep[maxn],fa[maxn];
  22. void read_and_parse(){
  23. n=read(),m=read(),k=read();
  24. for(int i=1;i<=m;i++){
  25. int a=read(),b=read();
  26. G[a].pb(b),G[b].pb(a);
  27. }
  28. }
  29. bool dfs(int u){
  30. for(int i=0;i<G[u].size();i++){
  31. int v=G[u][i];if(v==fa[u])continue;
  32. if(!fa[v]){
  33. fa[v]=u,dep[v]=dep[u]+1;
  34. if(dfs(v))return 1;
  35. }else if(dep[u]-dep[v]>=k){
  36. ans=dep[u]-dep[v]+1;
  37. for(int j=u;j!=v;j=fa[j])cyc.pb(j);
  38. return cyc.pb(v),1;
  39. }
  40. }
  41. return 0;
  42. }
  43. void solve(){
  44. fa[1]=1,dfs(1);
  45. printf("%d\n",ans);
  46. for(int i=0;i<cyc.size();i++)printf("%d ",cyc[i]);
  47. }
  48. int main(){
  49. read_and_parse();
  50. solve();
  51. return 0;
  52. }

【CF263D】Cycle in Graph的更多相关文章

  1. 【题解】cycle

    [题解]cycle 题目描述 给定一个无向图,求一个环,使得环内边权\(\div\)环内点数最大. 数据范围 \(n \le 5000\) \(m\le 10000\) \(Solution\) 考虑 ...

  2. 【LeetCode】785. Is Graph Bipartite? 解题报告(Python)

    [LeetCode]785. Is Graph Bipartite? 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu. ...

  3. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  4. 【POJ】【2125】Destroying the Graph

    网络流/二分图最小点权覆盖 果然还是应该先看下胡伯涛的论文…… orz proverbs 题意: N个点M条边的有向图,给出如下两种操作.删除点i的所有出边,代价是Ai.删除点j的所有入边,代价是Bj ...

  5. 【转】使用Boost Graph library(二)

    原文转自:http://shanzhizi.blog.51cto.com/5066308/942972 让我们从一个新的图的开始,定义一些属性,然后加入一些带属性的顶点和边.我们将给出所有的代码,这样 ...

  6. 【转】使用Boost Graph library(一)

    转自:http://shanzhizi.blog.51cto.com/5066308/942970 本文是一篇译文,来自:http://blog.csdn.net/jjqtony/article/de ...

  7. 【POJ】1419:Graph Coloring【普通图最大点独立集】【最大团】

    Graph Coloring Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5775   Accepted: 2678   ...

  8. 【LeetCode】133. Clone Graph (3 solutions)

    Clone Graph Clone an undirected graph. Each node in the graph contains a label and a list of its nei ...

  9. 【CodeChef】Chef and Graph Queries

    Portal --> CC Chef and Graph Queries Solution 快乐数据结构题(然而好像有十分优秀的莫队+可撤销并查集搞法qwq) 首先考虑一种方式来方便一点地..计 ...

随机推荐

  1. 非关系型数据库----MongoDB

    一.什么是MongoDB? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提 ...

  2. Git发生SSL certificate problem: certificate ha错误的解决方法

    这两天,不知道为什么,用Git提交代码到服务器时,总出现SSL certificate problem: unable to get local issuer certificate while ac ...

  3. linux audit审计(7)--读懂audit日志

    让我们先来构造一条audit日志.在home目录下新建一个目录,然后配置一条audit规则,对这个目录的wrax,都记录审计日志: auditctl -w /home/audit_test -p wr ...

  4. 销售合同金额数据从Excel导入

    一.业务需求 1.新增了销售合同金额的字段,但是老数据没有这个字段:所以销售合同金额从销售合同附件的各品种金额之和. 2.制作好excel字段模板,将此模板发送给销售业务部门来统计并完成excel表格 ...

  5. QTP 自动化测试桌面程序--笔记(关闭 启动程序脚本) 、安装

    0 安装qtp .exe 文件 安装 插件文件(如delph) 1 关闭 启动程序: 将要操作的程序-存入localdatatable中 设置 迭代一次 rem SystemUtil.ClosePro ...

  6. css元素选择器

    css的元素选择器就是html的标签名:

  7. vue表單

    使用v-model進行表單雙向數據綁定. 可以根據控件決定數據的類型,可以綁定input.單選.複選.下拉框等 可以使用number和trim等修飾符.

  8. Java常用调试技巧(转)

    调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...

  9. HDU5384-Hotaru's problem-Manacher

    找出紧挨的三个回文串,例如abccbaabc ,形如ABA格式,其中AB为回文串.计算最长的长度. 首先用Manacher处理回文半径.然后就是找到两个点,都是偶数的回文串,并且共享了中间一段. 之后 ...

  10. Android InputType

    转载: http://blog.csdn.net/wei_zhi/article/details/50094503 在Android开发过程中,我们经常使用到EditText控件,并且会根据各种需求设 ...