POJ 1330 (LCA)
2024-08-30 07:14:33
http://poj.org/problem?id=1330
题意:给出一个图,求两个点的最近公共祖先。
sl :水题,贴个模板试试代码。本来是再敲HDU4757的中间发现要用LCA, 操蛋只好用这个题目试试自己写的对不对。 下面是个倍增的写法,挺实用的。
好了,继续。。。
;
][MAX],dep[MAX];
G[ G[to].push_back( }
dep[u]=d; parent[][u]=pre;
;i<G[u].size();i++) {
);
}
}
;i<=n;i++) {
x=i; }
}
dfs(x,-,);
;k<;k++) {
;v<=n;v++) {
) parent[k+][v]=-;
][v]=parent[k][parent[k][v]];
}
}
}
;k<;k++) {
) v=parent[k][v];
}
;k>=;k--) {
u=parent[k][u]; v=parent[k][v];
}
}
][u];
}
;i<MAX;i++) G[i].clear();
}
scanf( CLEAR();
scanf( memset(is_root, ;i<=n-;i++) {
scanf( add_edge(a,b);
is_root[b]= }
init();
scanf( printf( }
;
}
][MAX],dep[MAX];
G[ G[to].push_back( }
dep[u]=d; parent[][u]=pre;
;i<G[u].size();i++) {
);
}
}
;i<=n;i++) {
x=i; }
}
dfs(x,-,);
;k<;k++) {
;v<=n;v++) {
) parent[k+][v]=-;
][v]=parent[k][parent[k][v]];
}
}
}
;k<;k++) {
) v=parent[k][v];
}
;k>=;k--) {
u=parent[k][u]; v=parent[k][v];
}
}
][u];
}
;i<MAX;i++) G[i].clear();
}
scanf( CLEAR();
scanf( memset(is_root, ;i<=n-;i++) {
scanf( add_edge(a,b);
is_root[b]= }
init();
scanf( printf( }
;
}
SB CODE
最新文章
- Linux 基础命令-CURL 表单上传文件
- swift基础:第四部分:对函数和闭包的深入
- JQery判断checkbox是否被选三种方式
- 【Alpha版本】冲刺阶段——Day 6
- blade用法
- Java --计算百分比
- SQLHelper 简介
- swift-03-数据类型转换
- RT: np - new sbt project generation made simple(r)
- J2EE基础总结(4)——JSP
- 部署LAMP+NFS实现双Web服务器负载均衡
- 4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块
- asp.net mvc或者其他程序无法打开excel——解决方案,C#处理Excel文件
- maven更新项目版本
- @+id/和android:id有什么区别?
- mysql系列十、mysql索引结构的实现B+树/B-树原理
- MySQL插入,更新,删除数据
- BeagleBone Black教程之BeagleBone Black使用到的Linux基础
- c#去除字符串中的空格,回车,换行符,制表符
- websocket使用