D. Cycle in Graph_找环
D. Cycle in Graph_找环
题目大意
给一个图,每个点至少和其他k个点连接,现要求找出一个含有至少k+1个点的环。
思路和代码
每个点都和其他至少k个点连接,图十分稠密。所以从任意点出发都可以搜索到题目要求的环。
int n , m , k ;
int path[N] , cnt ;
int idx[N] ;
vct<int> eg[N] ;
bool f ;
vct<int> ans ;
void dfs(int now , int pre){
path[ ++ cnt ] = now ;
idx[now] = cnt ;
for(int nxt : eg[now]){
if(f) return ;
if(nxt == pre) continue ;
if(idx[nxt] > 0){
int ln = cnt - idx[nxt] + 1 ;
if(ln > k){
f = 1 ;
int i = cnt ;
while(i >= 1 && path[i] != nxt)
ans.pb(path[i -- ]) ;
ans.pb(nxt) ;
return ;
}
continue ;
}
dfs(nxt , now) ;
}
cnt -- ;
idx[now] = 0 ;
}
void solve(){
cin >> n >> m >> k ;
rep(i , 1 , m){
int u , v ;
cin >> u >> v ;
eg[u].pb(v) ;
eg[v].pb(u) ;
}
dfs(1 , 0) ;
cout << ans.size() << "\n" ;
for(int x : ans) cout << x << " " ;
}
小结
模板题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端