JZOJ 1752. 无聊的草稿
来源:互联网 发布:越南网络歌 编辑:程序博客网 时间:2024/06/05 10:46
Description
图中有N个点,每两点间只有唯一的路径,对于这样一个给定的图,最大的“毛毛虫”会有多大。毛毛虫包含一条主链,毛毛虫中的节点,要不在主链上,要么和主链上某节点相邻,如下图所示有两只合法的毛毛虫,点数越多,毛毛虫越大。
Input
输入文件第一行两个整数N,M(N≤1000000)
接下来M行,每行两个整数a, b(a, b≤N)
你可以假定没有一对相同的(a, b)会出现一次以上。
Output
一个整数ans,表示最大的毛毛虫的大小。
Sample Input
5 4
1 2
1 3
4 1
5 1
Sample Output
5
Data Constraint
Hint
【数据规模】
1. 对于20%的数据,N≤200
2. 对于40%的数据,N≤5000
3. 对于100%的数据,N≤10^6
分析
其实就是找树的直径。
代码
#include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <queue>#include <cmath>#include <map>#include <set>#define N 1000005#define INF 0x7fffffff#define sqr(x) ((x) * (x))#define pi acos(-1)int read(){ int x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9'){if (ch == '-') f = -1; ch = getchar();} while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();} return x * f;}struct NOTE{ int to,next;}e[N * 2];int next[N];int cnt;int f[N];int d[N];void add(int x,int y){ e[++cnt] = (NOTE){y, next[x]}; next[x] = cnt; e[++cnt] = (NOTE){x, next[y]}; next[y] = cnt;}int n,m;bool vis[N];int ans;int x;void dfs(int p, int sum, int dep){ vis[p] = false; int s; if (dep == 1) s = d[p]; else s = d[p] - 1; for (int i = next[p]; i; i = e[i].next) { if (vis[e[i].to]) dfs(e[i].to, sum + s, 0); } if (sum > ans) ans = sum, x = p;}int main(){ n = read(); m = read(); for (int i = 1; i <= m; i++) { int x = read(), y = read(); add(x,y); d[x]++; d[y]++; } memset(vis, 1, sizeof(vis)); ans = 0; dfs(1,1,1); memset(vis, 1, sizeof(vis)); ans = 0; dfs(x,1,1); printf("%d\n",ans);}
阅读全文
0 0
- JZOJ 1752. 无聊的草稿
- 无聊的草稿
- JZOJ1752. 无聊的草稿
- 【JZOJ 3871】无聊的游戏
- 【JZOJ 3871】 无聊的游戏
- @高三--我的一些语录,一些心情。上课无聊,写在草稿本上的
- 无聊的
- JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- 无聊写的无聊东西
- 我的草稿不见了!
- 我的工作草稿
- 我的草稿本
- 二重积分的性质草稿
- 字符串的排列(草稿)
- 无聊的圣诞节 无聊的周末 无聊的僵尸III
- 无聊的人做着无聊的事,说着无聊的话
- 无聊的工作,无聊的人
- leetcode507: Perfect Number
- Linux-死锁
- unity里面聚光灯(SPOT)光照计算学习!
- 图像的配准——MATLAB实现
- CodeForces
- JZOJ 1752. 无聊的草稿
- Atom-markdown推荐插件
- Android屏幕尺寸详解
- 面试题14 :调整数组顺序使奇数位于偶数前面
- 关于requirejs的用法
- Bash 的若干基本问题
- CodeForces
- 线性代数笔记-6 列空间与向量空间
- 数组转置