题目描述

Recently, Miss Huang want to receive a Tree as her birthday gift! (What a interesting person!)  As a interesting person, Miss Huang likes interesting tree.

The interesting tree is a tree with the Max interesting degree. The interesting degree equals LCM(H(1),H(2), .. , H(N)), H(x) means the height of node x in the tree and LCM means least common multiple.

Now Mr Chen has some non-rooted tree, he wants you to choose a root of the non-rooted tree and make the strange degree of tree be maximum;

The answer may be very large please print the answer mod 10^9+7.

输入

Your program will be tested on one or more test cases. In each test case:

First line a number N(1<=N<=10^5) represent the number of node.

The next N-1 line has two number u, v indicates that there is a edge between u, v.

输出

For every test case,  print the following line:

answer

where answer is the maximum LCM.(mod 10^9+7)

样例输入

41 21 31 421 2

样例输出

62

题解:问题分两步:

1.求树的直径:即树种距离最长的两个点之间的距离

2.求从1到n这n个数的最小公倍数.

先说第一个问题,有两种方法:深搜和广搜.

先说深搜:对于树的某个节点,它的最深的两个儿子m1,m2.

那么很显然m1+m2+1有可能是树的直径.用这个数更新树的直径

再说广搜:1.随机选取一个节点A进行广搜,从而找到距离它最远的结点B.当然B可能不唯一.

2.B必然是此树某个直径的一个端点(树的直径可能不唯一).

从B开始广搜找到离B最远的C结点.BC极为直径.

再说第二个问题:有两种方法,其中一种是错的.

先说正确的:比如从1到9.既然有8,那么4,2就没法说话了,山上有老虎,猴子怎能称大王.

既然有9,那么3就没法说话了.

规律出来了:全体质数打表求出来,2,3,5,7.

再说错误的: 对于任意一个序列a[],求其全部元素的最小公倍数.怎么求?

求其全部元素的最大公约数怎么求?这个你会.两两求,从头扫描到尾.

但是这道题里不行,必须进行质因数分解,因为有取模运算!!!!!!!!!! 取模之后就没法再求最大公倍数了!!!!!!!!!!!!!!!!

比赛的时候,我就错在了这里,我真傻真的

#include<iostream>
#include<list>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
const int maxn = 1e5 + 7;
const int big = 1e9 + 7;
int N;
struct Edge{int to, next;
}e[maxn*2];
int g[maxn],ei;
bool vis[maxn];
int maxLen;
int prime[maxn / 5], psize;
void init(){bool is[maxn];psize = 0;memset(is, 1, sizeof(is));for (int i = 2; i < maxn; i++){if (is[i]){prime[psize++] = i;}for (int j = 0; i*prime[j] < maxn; j++){is[i*prime[j]] = 0;if (i%prime[j] == 0)break;}}
}
void push_back(int from, int to){ e[ei].next = g[from];e[ei].to = to;g[from] = ei++;
}
int deep(int x){int m1, m2;vis[x] = 1, m1 = m2 = 0;for (int i = g[x]; i; i = e[i].next){int t = e[i].to;if (vis[t] == false){int d = deep(t);if (m2<d){if (m1<d){ m2 = m1, m1 = d; }else m2 = d;}}}int len = m1 + m2 + 1;if (len > maxLen)maxLen = len;return m1 + 1;
}
int main(){//freopen("in.txt", "r", stdin);init();while (~scanf("%d", &N)){ ei = 1, memset(g, 0, sizeof(int)*(N + 1));int x, y; for (int i = 1; i < N; i++)scanf("%d%d", &x, &y), push_back(x, y), push_back(y, x); memset(vis, 0, sizeof(bool)*(N + 1));  maxLen = 0;deep(1);long long int ans = 1;for (int i = 0; i < psize; i++){int mi = floor(log(maxLen) / log(prime[i]));if (mi == 0)break;ans *= pow(prime[i], mi);ans %= big;}cout << ans << endl; }return 0;
}
/**************************************************************Problem: 1578User: 20124003Language: C++Result: 正确Time:181 msMemory:9568 kb
****************************************************************/

转载于:https://www.cnblogs.com/weiyinfu/p/5013884.html

2015年辽宁省赛Interesting Tree相关推荐

  1. [ACM]辽宁省赛2010 (HZNU 1081-1089)

    虽然退役了,但偶尔水几题醒醒脑还是不错的=_= 1085 Intermediary 暂时还没做 1081: Dinner 时间限制: 1 Sec   内存限制: 32 MB 提交: 5   解决: 3 ...

  2. 树形DP+并查集+左偏树, HDU-5575,Discover Water Tank,2015上海现场赛D题

    只是ACM/IICPC 2015 上海区域赛的一道题.原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5575 题目描述 N-1个木板把一个水箱划分成了N ...

  3. 职教大赛正热华三通信实训室方案为辽宁省赛“加小灶”

    春暖花开,辽宁省职业院校技能大赛即将拉开帷幕.辽宁省教育厅.辽宁省职业院校技能大赛组委会特意邀请杭州华三通信技术有限公司(简称华三通信)进行高职组"计算机网络应用"赛项的赛前培训. ...

  4. 辽宁计算机专业院校排名2015,liaoning高校排行榜_辽宁高校排名 2015年辽宁省最佳大学排行榜...

    辽宁高校排名 2015年辽宁省最佳大学排行榜 JPG,282x450,231KB,250_399 辽宁省高校排行榜出炉 东北大学列第一名 JPG,634x527,231KB,300_249 2016年 ...

  5. 2014年辽宁省普通高等学校本科大学生计算机设计竞赛,2015年辽宁省普通高等学校本科大学生计算机设计竞赛结果进行公示的通知...

    关于对2015年辽宁省普通高等学校本科大学生计算机设计竞赛结果进行公示的通知 2015-05-25 15:00:43 省内有关普通本科高等学校: 根据<辽宁省教育厅办公室关于开展2015年辽宁省 ...

  6. ACM2021辽宁省赛:CDEFGILM

    ACM2021辽宁省赛:CDEFGILM C-传染病统计_ 问题解析 一开始没注意到n只有8...当1e5的范围来写的. 这题就是说,所有相隔距离小于等于2的是一个集体,然后我们要选一个集体感染病毒, ...

  7. 2020年ICPC辽宁省赛- 最长回文串(Java)

    最长回文串 题目描述 算法分析 代码展示 题目描述 链接:ICPC辽宁省赛复现赛 题目描述: 回文串是反转后与自身完全相同的字符串 比如:"ABA","ACMMCA&qu ...

  8. 电赛综合测评题练习(二)-(与2015年电赛综合测评要求类似)

    2015年电赛综合测评(部分要求有区别) 系列文章 T1:电赛综合测评题练习(一)-(与2013年电赛综合测评要求类似) 点击下载仿真文件1(请使用Multisim 14及以上版本打开) T2:电赛综 ...

  9. 中石油训练赛 - Perfect Tree(dfs)

    题目描述 Given a positive integer k, we define a rooted tree to be k-perfect, if and only if it meets bo ...

最新文章

  1. Struts2中的拦截器
  2. java中自然排序和比较器排序
  3. 使用C#进行Word 2002和Excel 2002编程
  4. 疯狂涨知识!「高并发秒杀」微信抢红包实战案例帮你突破瓶颈
  5. JavaScript 中的函数介绍
  6. Bootstrap显示或隐藏内容
  7. python3 字典合并_python3字典合并怎么做?
  8. python运用列表编写水仙花数_Python 实现找出所有水仙花数的方法
  9. python module错误_修复python的ModuleNotFoundError
  10. 计算机基础(1)——Verilog语法入门
  11. 基于Pytorch源码对Adagrad、Adadelta、RMSProp、Adam等自适应学习率进行学习
  12. 如何编制试算平衡表_试算平衡表的编制步骤是怎样的?
  13. 广义表,广义表的定义和计算
  14. python在线编程免费课程-少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
  15. 安科瑞无线物联网智能电表ADW300指导性技术要求-Susie 周
  16. java查询全国地区
  17. WINDOWS程式设计--窗体和消息机制
  18. javascript复习(更新)
  19. 计算员工合同到期日期
  20. i5 540m vs i5 580m

热门文章

  1. wpf TextBox点击去除下划线
  2. 001 基本的环境的安装
  3. Django安装(for Mac)
  4. condition_variable_any
  5. [Java_kaikeba]java中堆和栈的区别(对象变量的理解)
  6. 【每日Scrum】第三天(4.24) TD学生助手Sprint2站立会议
  7. 【Demo 0015】坐标系
  8. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016,表挂起
  9. SQL注入攻击测试入实战(1)—成功渗透台湾某净化设备公司官网
  10. 抓包分析arp攻击Linux,从抓包分析角度分析arp攻击