题目大意:
  给你一棵带点权的树,找出一个最长的树链满足链上点权的最大公因数不为1。

思路:
  暴力DP。
  对于每个点,记录一下以这个点为一个端点的所有链的最大公因数及长度。
  然后暴力转移一下,时间复杂度O(n^2logn),不过中间有一些情况是可以舍掉的,做不满。
  本来是想试试这样暴力能拿多少分的,没想到直接A掉了。

 1 #include<cstdio>
 2 #include<cctype>
 3 #include<vector>
 4 #include<hash_map>
 5 inline int getint() {
 6     register char ch;
 7     while(!isdigit(ch=getchar()));
 8     register int x=ch^'0';
 9     while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
10     return x;
11 }
12 const int N=100001;
13 int w[N],ans;
14 std::vector<int> e[N];
15 inline void add_edge(const int &u,const int &v) {
16     e[u].push_back(v);
17     e[v].push_back(u);
18 }
19 int gcd(const int &a,const int &b) {
20     return b?gcd(b,a%b):a;
21 }
22 __gnu_cxx::hash_map<int,int> dfs(const int &x,const int &par) {
23     __gnu_cxx::hash_map<int,int> map,tmp;
24     map[w[x]]=1;
25     for(unsigned i=0;i<e[x].size();i++) {
26         const int &y=e[x][i];
27         if(y==par) continue;
28         tmp=dfs(y,x);
29         for(register __gnu_cxx::hash_map<int,int>::iterator i=map.begin();i!=map.end();i++) {
30             for(register __gnu_cxx::hash_map<int,int>::iterator j=tmp.begin();j!=tmp.end();j++) {
31                 if(gcd(i->first,j->first)!=1) {
32                     ans=std::max(ans,i->second+j->second);
33                 }
34             }
35         }
36         for(register __gnu_cxx::hash_map<int,int>::iterator i=tmp.begin();i!=tmp.end();i++) {
37             const int tmp=gcd(w[x],i->first);
38             if(tmp!=1) {
39                 map[tmp]=std::max(map[tmp],i->second+1);
40             }
41         }
42     }
43     return map;
44 }
45 int main() {
46     const int n=getint();
47     for(register int i=1;i<n;i++) {
48         add_edge(getint(),getint());
49     }
50     for(register int i=1;i<=n;i++) {
51         w[i]=getint();
52     }
53     dfs(1,0);
54     printf("%d\n",ans);
55     return 0;
56 }

转载于:https://www.cnblogs.com/skylee03/p/8078469.html

[美团 CodeM 初赛 Round A]最长树链相关推荐

  1. CodeM资格赛 Round A 最长树链

    按照题解的做法,对于每一个质约数分别进行讨论最长链就行 对于每一个数的质约数可是比logn还要小的 比赛的时候没人写,我也没看 = =,可惜了,不过我当时对于复杂度的把握也不大啊 #include & ...

  2. #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队

    #6164. 「美团 CodeM 初赛 Round A」数列互质 思路 : 对这个题来言,莫队可以 n*根号n 离线处理出各个数出现个的次数 ,同时可以得到每个次数出现的次数 , 但是还要处理有多少 ...

  3. LibreOJ #6177. 「美团 CodeM 初赛 Round B」送外卖2【状压DP】

    「美团 CodeM 初赛 Round B」送外卖2 内存限制:32 MiB 时间限制:200 ms 题目描述 一 张 n 个 点 m 条 有 向 边 的 图 上 , 有 q 个 配 送 需 求 , 需 ...

  4. 「美团 CodeM 初赛 Round B」送外卖2

    题目描述: 一张n个点m条有向边的图上,有q个配送需求,需求的描述形式为(si,ti,li,ri),即需要从点si送到ti,在时刻li之后(包括li)可以在si领取货物,需要在时刻ri之前(包括ri) ...

  5. 【LOJ6178】 「美团 CodeM 初赛 Round B」景区路线规划 期望概率DP

    题目链接 LOJ 题解 考虑进行Dp,我们设 f[i][j] f [ i ] [ j ] f[i][j]表示到达节点 i i i消耗了j" role="presentation&q ...

  6. CodeM美团2018初赛A轮 题目一

    CodeM美团2018初赛A轮 题目一 描述 小美想要在电视上看电影,我们知道在电视上搜索电影可以通过搜索电影名字首字母缩写得到,通过首字母搜索电影的界面由一个九宫格组成,如下图: 光标初始在这个九宫 ...

  7. 【CodeM初赛B轮】A 贪心

    [CodeM初赛B轮]A 题目大意:给你一棵树,起初所有点都是白色的,你每次都能选择一个白点i,将这个点i到根路径上的所有到i的距离<k[i]的点都染成黑色(根和i也算,已经被染成黑色的点还是黑 ...

  8. 曹长树:江湖小虾米的侠客行——我的大数据能力修炼得道之路 | 提升之路系列...

    导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的"π"型人才,由清华大学研究生院.清华大学大数据研究中心及相关院系共 ...

  9. 2018美团codeM资格赛——python代码

    2018美团codeM资格赛--python代码 第一题:下单 题目描述 美团在吃喝玩乐等很多方面都给大家提供了便利.最近又增加了一项新业务:小象生鲜.这是新零售超市,你既可以在线下超市门店选购生鲜食 ...

最新文章

  1. iOS之Block总结以及内存管理
  2. androidstudio表格中填充 宽跟长一样_Excel表格的基本操作教程,覆盖表格制作的10大知识!...
  3. OpenGL Viewport Array视口阵列的实例
  4. c51单片机有几个终端语言,吃过大亏,才知道要从51单片机入手
  5. 计算机图形学考试题及答案_计算机图形学考试题及答案
  6. python用一行代码编写一个回声程序_使用Python的多回声测验
  7. 即时通讯飞鸽传书民意soft需求
  8. 中小企业如何搭建数据分析平台?
  9. 点击微信网页的a标签直接跳转到淘宝APP打开怎么实现的?附:动图演示效果
  10. Oracle使用技巧及PL/SQL Developer配置
  11. VLAN Mapping实现同一网段不同VLAN的主机通信
  12. plsql链接oracle64位报错,PLSQL developer 连接不上64位Oracle 的解决方法
  13. AutoCAD2000软件学习心得
  14. 【ISO9126】软件质量模型的介绍(软件质量管理的六大特征和二十七个子特征)
  15. 一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计
  16. 关于连接数据库出现时差问题的解决方法
  17. C语言实现双人五子棋
  18. 我为什么既支持又反对接口用Map来传输数据?
  19. win10 sublime text3配置c++
  20. Windows系统近年漏洞概况及攻击教程防御

热门文章

  1. thinkPHP仿QQ飞车手游模拟抽奖源码
  2. 机器码合集开源易语言源码-市场上带多数的
  3. 电子商务企业整站模板
  4. 苹果电脑 html5 视频,苹果Mac系统看HTML5视频教程介绍
  5. RIPRO主题美化-首页全屏动态幻灯片美化模块 WordPress主题美化
  6. 组织管理插件-代码自动补全-语法检查等特性-SpaceVim v1.5.0
  7. 苹果cms V10模板 手机端模板粉红色模板带会员中心
  8. MNews 1.9 – 干净的新闻自媒体博客wordpress主题
  9. CSS单位 px pt em和rem 之间的区别
  10. Shell编程:shell script 的追踪与 debug