遍历新姿势
2016-01-31 00:00
92 查看
int dfs(int u, int p)
{
int left=2;
for(int i=0; i<vec[u].size(); i++)
{
int v = vec[u][i];
if(v==p) continue;
int x = dfs(v, u);
if(left>0 && x==1)
{
ans++;
left--;
}
}
return left>0 ? 1:0;
}
这是个有向循环图,vec[i][j]表示从i到j;
从完全图中搜索尽可能多的生成树的树枝。这里left有很神奇的功能当存在分叉时节点返回值。
例如
1->2
2->3
3->4
这时 节点3,4返回1.ans=2;
节点2返回 0 使节点1的ans=3;没有增加多余树枝。
{
int left=2;
for(int i=0; i<vec[u].size(); i++)
{
int v = vec[u][i];
if(v==p) continue;
int x = dfs(v, u);
if(left>0 && x==1)
{
ans++;
left--;
}
}
return left>0 ? 1:0;
}
这是个有向循环图,vec[i][j]表示从i到j;
从完全图中搜索尽可能多的生成树的树枝。这里left有很神奇的功能当存在分叉时节点返回值。
例如
1->2
2->3
3->4
这时 节点3,4返回1.ans=2;
节点2返回 0 使节点1的ans=3;没有增加多余树枝。
相关文章推荐
- 名硕选择ATEN矩阵式多人管理KVM方案引起机房管理"化繁为简" 革命
- 微信图片保存时间
- 手动删除部署到Weblogic上的应用
- libvlc设置
- Oracle SGA 、PGA配置规则
- 网卡解析arp协议导致ip address ** is already in ues for...
- Oracle RAC 11R2配置归档、删除策略,闪回配置完整版
- Oracle RAC 11R2归档、闪回删除策略配置完整版
- 天气又转冷了
- RAC 11R2 单表决盘触发的bug(ID 1466639.1)
- 监控oracle系统中未加索引的外键脚本
- iOS推送消息
- xCode - 静态库
- 2015那些书
- springmvc框架提供的封装参数数据的方式
- Springmvc提供的传递数据的方式
- js(Extjs6.0 ) 构建二维数组,用于显示到highchart柱状图中。
- java development
- Linux运维经典问题33则(附赠年薪10W+面试题与答案)
- OC高效率52之理解“类”对象的用意