博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DFS/BFS+思维 HDOJ 5325 Crazy Bobo
阅读量:6899 次
发布时间:2019-06-27

本文共 1368 字,大约阅读时间需要 4 分钟。

 

1 /* 2     题意:给一个树,节点上有权值,问最多能找出多少个点满足在树上是连通的并且按照权值排序后相邻的点 3         在树上的路径权值都小于这两个点 4     DFS/BFS+思维:按照权值的大小,从小的到大的连有向边,搜索最多连接点数即是答案。因为排序后,他们之间的路径, 5         可定都是从当前节点u连过去的,那么都是小于这两个节点的。DFS需手动加栈,BFS类似拓扑排序的思路 6 */ 7 #pragma comment (linker, "/STACK:1024000000,1024000000")  8 #include 
9 #include
10 #include
11 #include
12 using namespace std;13 14 const int MAXN = 5e5 + 10;15 const int INF = 0x3f3f3f3f;16 int w[MAXN];17 int cnt[MAXN];18 vector
G[MAXN];19 int n;20 21 void DFS(int u) {22 cnt[u] = 1;23 for (int i=0; i
1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int MAXN = 5e5 + 10; 9 const int INF = 0x3f3f3f3f;10 int w[MAXN];11 int cnt[MAXN];12 int deg[MAXN];13 vector
G[MAXN];14 int n;15 16 int BFS(void) {17 queue
Q; int ret = 0;18 for (int i=1; i<=n; ++i) cnt[i] = 1;19 for (int i=1; i<=n; ++i) {20 if (!deg[i]) Q.push (i);21 }22 while (!Q.empty ()) {23 int u = Q.front (); Q.pop ();24 ret = max (ret, cnt[u]);25 for (int i=0; i
BFS 标程做法

 

转载于:https://www.cnblogs.com/Running-Time/p/4685195.html

你可能感兴趣的文章
[Twitter] Fibonacci Sequence
查看>>
我的友情链接
查看>>
那些不加班的开发团队,都看透了持续集成的四大好处
查看>>
iOS开发之CALayer
查看>>
无人值守安装Linux系统
查看>>
启动VMware虚拟机 内部错误
查看>>
解决CentOS7控制台中文显示乱码
查看>>
我的友情链接
查看>>
关于应用交付设备的使用及云计算结构之我见
查看>>
nodejs实现cas客户端
查看>>
简略CPU发展史
查看>>
Rad Studio 10.1 UP1 移动开发 关于模拟器
查看>>
区块链开发教程分享【201904】
查看>>
TextView实现打印机效果
查看>>
我的友情链接
查看>>
将数据快速读入R—readr和readxl包
查看>>
.user.ini文件权限操作
查看>>
菜鸟学Linux 第097篇笔记 nginx配置文件
查看>>
新浪微博收网捕鱼 免费午餐也需要成本
查看>>
Kickstart无人值守批量部署CentOS6
查看>>