[LOJ#6159][美团 CodeM 初赛 Round A][暴力即正解]最长树链

SQL 通过sum() over(order by ,rownum)实现财务现金日记账实例 SELECT 类型,to_char(发生日期,'yyyy-MM-dd') 发生日期,期初余额,借方金额,贷方金额, (CASE WHEN 借方金额>0 THEN '借' WHEN 贷方金额>0 THEN '贷' ELSE '平' END) 方向, sum(收支金额) over(order by 发生日期, rownum) 余额 FROM( SELECT LX 类型,账户,账号,摘要,发生日期,单据ID, ... 阅读详情

枚举每一个质数,权值是这个质数的倍数的节点设为1,否则为0,那么最长长链的长度就是点权为1的点构成的最长的链。

当然不用枚举所以质数,因为每个数最多有log个不同的质因数,所以只要把所有点权质因数分解,枚举出现的质数就可以了。

枚举质数后dfs,复杂度是nlogn的,因为每个点有log个不同的质因数,也就是说最多枚举到log个质数要dfs这个节点,所以复杂度是对的

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#define pb push_back

using namespace std;

const int N=100010;

int n,u,v,cnt,L,ans;
int p[N],vis[N],a[N],pnt;

map<int,vector<int> > M;
vector<int> e[N];

inline char nc(){
  static char buf[100000],*p1=buf,*p2=buf;
  return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}

inline void rea(int &x){
  char c=nc(); x=0;
  for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());
}

inline void Pre(int n){
  for(int i=2;i<=n;i++){
    if(!p[i]) p[++pnt]=i;
    for(int j=1;j<=pnt&&1LL*i*p[j]<=n;j++){
      p[p[j]*i]=1;
      if(i%p[j]==0) break;
    }
  }
}

void dfs(int u,int f,int p){
  L++; vis[u]=p;
  for(int v : e[u])
    if(v!=f&&a[v]%p==0) dfs(v,u,p);
}

int main(){
  rea(n); Pre(100000);
  for(int i=1;i<n;i++)
    rea(u),rea(v),e[u].pb(v),e[v].pb(u);
  for(int i=1;i<=n;i++){
    int x; rea(x); a[i]=x;
    for(int j=1;j<=pnt&&1LL*p[j]*p[j]<=x;j++)
      if(x%p[j]==0){
    while(x%p[j]==0) x/=p[j];
    M[p[j]].pb(i);
    if(x==1) break;
      }
    if(x!=1) M[x].pb(i);
  }
  for(auto s : M){
    int p=s.first;
    vector<int> v=s.second;
    for(int u : v)
      if(vis[u]!=p){
    L=0; dfs(u,0,p);
    ans=max(ans,L);
      }
  }
  printf("%d\n",ans); return 0;
}
使用 MATLAB/Simulink 来构建一个基于多能互补的微电网储能系统模型 【摘要】本文详细介绍了基于MATLAB/Simulink的多能互补微电网储能系统建模方法。教程涵盖光伏发电、风力发电、电池储能和负荷模块的搭建,重点讲解了能量管理系统(EMS)的调度策略实现。通过设置传感器监测关键参数,并采用固定步长离散求解器进行仿真,分析了系统在动态工况下的响应特性,包括发电-负荷平衡、储能状态变化及系统稳定性等指标。该建模方法为多能互补微电网的设计与优化提供了有效工具,对提升可再生能源利用效率具有实践指导意义。 阅读详情

相关推荐

TI Sitara PRU可编程实时单元:工业自动化中的硬实时协处理器解析

在嵌入式系统与工业自动化领域,实时性和确定性是核心需求。实时性指系统对外部事件做出响应的可预测时间,确定性则要求响应时间严格一致,不受其他任务干扰。其技术原理通常通过专用硬件或实时操作系统实现,例如采用独立于主CPU的协处理器来处理高精度时序任务。这种设计的技术价值在于,它能将主CPU从高实时性要求的任务中解放出来,专注于复杂业务逻辑,同时确保关键IO操作达到纳秒级延迟和极低抖动。应用场景广泛覆盖伺服电机控制、工业通信协议加速和多接口扩展等。本文聚焦的TI Sitara系列PRU(可编程实时单元),正是此类

weixin_42526068的博客 284

【loj6159】「美团 CodeM 初赛 Round A」最长树链

题目描述 Mr. Walker\text{Mr. Walker}Mr. Walker最近在研究树,尤其是最长树链问题。现在树中的每个点都有一个值,他想在树中找出最长的链,使得这条链上对应点的值的最大公约数不等于111。请求出这条最长的树链的长度。 输入格式 第一行一个整数 nnn,表示点的个数。接下来n−1n-1n−1行,每行两个整数x,yx,yx,y表示x,yx,yx,y之间有边。数据保证给

wang_sj的博客 746

CiteSpace基础操作(CNKI数据的导入分析)(一)

1 Cite Space简单介绍 2 文献导入 2.1 打开知网,选择高级检索

m0_50990607的博客 5万+

[美团 CodeM 初赛 Round A]最长树链

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

weixin_34204057的博客 261

微信聊天记录丢失原因与恢复方案详解

SQLite数据库作为移动应用常见的本地存储方案,其加密机制和存储结构直接影响数据安全性。以微信为例,聊天记录存储在EnMicroMsg.db等SQLite文件中,采用AES加密保护。当手机清理工具误删这些文件时,会导致特定时间段记录丢失。理解数据恢复原理需要掌握文件系统删除机制和闪存特性,其中关键点包括TRIM指令的影响和数据块覆盖风险。通过专业工具如DiskDigger或iMyFone D-Back,配合ADB调试和SQLite数据重组技术,可在黄金时间窗口内恢复记录。日常维护建议结合自动化备份方案和存

weixin_32612263的博客 386

人工智能在高中教育中的应用现状剖析与挑战应对

人工智能在高中教育中的应用现状剖析与挑战应对

燕鹏 1338

【填坑】loj6159. 「美团 CodeM 初赛 Round A」最长树链

水一水 枚举各个质数,把是这个数倍数的点留下,跑直径,没了 1 #include <bits/stdc++.h> 2 using namespace std; 3 int h,t,n,p,q,M,N; 4 int dis[200001],lis[200001],fir[200001],nex[400001],to[400001]; 5 vector<in...

weixin_30251587的博客 190

药物对接仿真软件:HADDOCK_(5).HADDOCK中蛋白质-配体对接流程

半柔性能量最小化阶段是在刚体能量最小化的基础上,允许配体的部分柔性,通过优化配体的构象来进一步提高对接的准确性。半柔性能量最小化阶段是在刚体能量最小化的基础上,允许配体的部分柔性,通过优化配体的构象来进一步提高对接的准确性。如果是PDB格式,确保文件包含所有必要的原子信息。对接完成后,HADDOCK会生成一系列的输出文件,包括对接后的蛋白质-配体复合物结构文件、能量评分文件和统计分析文件。对接完成后,HADDOCK会生成一系列的输出文件,包括对接后的蛋白质-配体复合物结构文件、能量评分文件和统计分析文件。

kkchenjj的博客 1079

美团CodeM 初赛 A伦 最长树链 xjb枚举+dfs

[编程题] 最长树链 时间限制:1秒 空间限制:32768K 树链是指树里的一条路径。美团外卖的形象代言人袋鼠先生最近在研究一个特殊的最长树链问题。现在树中的每个点都有一个正整数值,他想在树中找出最长的树链,使得这条树链上所有对应点的值的最大公约数大于1。请求出这条树链的长度。  输入描述: 第1行:整数n(1 ≤ n ≤ 100000),表示点的个数。 第2~n

我们做的队 1017

Unity 横版游戏开发天花板?状态机、联机同步与横版动作游戏架构全都有

在 Unity 横版动作游戏开发领域,最耗时间的往往不是角色移动,而是整套“可扩展架构”的搭建。包括角色状态管理、敌人 AI、武器系统、关卡编辑器、联机同步、输入适配、UI 与存档系统等。2D Action Platformer Kit 的核心价值,并不只是“提供素材”,而是它已经帮开发者搭好了一整套适用于横版动作游戏的底层框架。

2403_88403568的博客 424

【人工智能】OpenClaw网关API速率限制报错全解析 API rate limit reached. Please try again later.

对应HTTP标准状态码为429(请求过多)。该报错集中出现在OpenClaw GATEWAY DASHBOARD的聊天会话界面,核心特征为:用户最初以为是单一模型服务商的问题,先后更换OpenAI、Gemini、Ollama、Moonshot、Mercury-2等多个主流大模型API后,该报错仍稳定触发,尤其在执行复杂任务时高频出现。

奶爸的编程之路,也就一周冷个三天 6458

最长树链(dfs 树)

最长树链 题目描述 树链是指树里的一条路径。美团外卖的形象代言人袋鼠先生最近在研究一个特殊的最长树链问题。现在树中的每个点都有一个正整数值,他想在树中找出最长的树链,使得这条树链上所有对应点的值的最大公约数大于1。请求出这条树链的长度。 输入描述: 第1行:整数n(1 ≤ n ≤ 100000),表示点的个数。 第2~n行:每行两个整数x,y表示xy之间有边,数据保证给出的是一棵树。 第n+1行:...

百般回首曾经的相遇,留下的只是一缕残忆 694

uniapp | 基于高德地图实现位置选择功能(安卓端)

在uni-app项目中实现地图位置选择功能的解决方案。由于uni.chooseLocation功能受限,采用高德地图API自主开发。系统由父组件poiMap.vue(负责展示和跳转)和子组件poiBox.vue(核心地图逻辑)构成,通过父子组件通信传递位置数据。关键技术包括:1)使用AMapLoader动态加载地图SDK;2)集成PositionPicker实现拖拽选点;3)异步加载AMapUI插件;4)通过事件监听获取位置详情(地址/经纬度)。

大胆尝试,小心实践 731

[LOJ]#6159. 「美团 CodeM 初赛 Round A」最长树链 点分治

Description: Mr. Walker 最近在研究树,尤其是最长树链问题。现在树中的每个点都有一个值,他想在树中找出最长的链,使得这条链上对应点的值的最大公约数不等于1。请求出这条最长的树链的长度。 题解: 我的做法大概是最差的……不过是我自己想的。 点分治,对于每个重心找经过它的路径答案,设fif_ifi​表示最大公约数为iii倍数的最大深度,由于每个数不同的质因数不会超过101010个...

TYB的博客 508

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Loj #6164. 「美团 CodeM 初赛 Round A」数列互质

link :https://loj.ac/problem/6164 莫队傻题,直接容斥做。 #include<bits/stdc++.h> #define maxn 100005 #define pb push_back using namespace std; vector<int> g[maxn]; struct ask{ int l...

weixin_30492047的博客 168

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

最长树链(树形dp)

题目链接: 最长树链 大致题意: 这个题应该默认树链的一段必须是根节点 解题思路: 建立单向边,找到根开始dfs,如果对于某个结点使得gcd值大于1就将其加入树链,记录深度的最大值最后输出即可 AC代码: #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n, root; vector<int>e[N]; int w[N], du[N]; int gcd(int a, int b)

qq_49494204的博客 394

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LOj #6164. 「美团 CodeM 初赛 Round A」数列互质 (莫队算法)

题目链接: LOj 6164题意: 给出一个长度为n n 的数列,a1,a2,a3,...,ana_1,a_2,a_3,...,a_n以及 mm 组询问 (li,ri,ki)(l_i,r_i,k_i),求区间[li,ri] [l_i,r_i]中有多少数在该区间中的出现次数与 kik_i互质。题解: 莫队算法。时间复杂度:O(n∗n√)O(n*\sqrt{n})。AC代码:#include <b

LzyRapX 1131

最长树链 ( dfs + 质因数分解 )

题目链接 解题报告: 我们不妨枚举最长树链 gcdgcdgcd , 那么该条树链上所有的点的权值可表示成 k∗gcdk*gcdk∗gcd 同样也可表示成 k∗gcd′(gcdk*gcd'(gcdk∗gcd′(gcd%gcd′==0)gcd'==0)gcd′==0) ,因此我们可以用质因子对这些点分类。对属于同一类质因子的点跑最长链,不断更新最长链即可。 每个点被访问的次数就是其质因子种类数。 代码展示: #include<bits/stdc++.h> #define LL long long

qhq889的博客 491

CodeM资格赛 Round A 最长树链

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

diankeng5481的博客 224

[两道递推题] 美团 CodeM 初赛 Round A 二分图染色 & OEIS A001499

好久没做过n=107n=10^7这种正常的递推题了二分图染色转化为棋盘模型,即 N×NN\times N 棋盘上放黑白棋子,每个格子至多放一个,同行同列没有相同颜色的棋子。 令bnb_n为只有一种颜色,那么bn=∑ni=0Cin×Pinb_n=\sum_{i=0}^n C_n^i\times P_n^i 然后我们考虑容斥掉两个颜色在同一格,如果一个格子既放黑又放白,那么这一列和这一行不会有其他棋

雯舞 1620

「美团 CodeM 初赛 Round A」身体训练

题目链接:身体训练题目大意:n个人排成一列跑步,前后两人之间相隔 u 米,每个人正常速度均为 v 米/秒。 当某个配送员排在最后的时候,他需要以当时自己的最高速度往前跑,直到超过排头的人 u 米,然后降回到原始速度 v 米/秒。每个人最初的最高速度为 ci米/秒,每轮衰减 di米/秒,也就是说,如果 i 是第 j 个跑的,那么他的速度就是ci−(j−1)×di米/秒。 n个人初始以随机的顺序排列,每

Nemaleswang的博客 792

最长树链--树形结构牛客

链接:题目传送门 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 树链是指树里的一条路径。美团外卖的形象代言人袋鼠先生最近在研究一个特殊的最长树链问题。现在树中的每个点都有一个正整数值,他想在树中找出最长的树链,使得这条树链上所有对应点的值的最大公约数大于1。请求出这条树链的长度。 输入描述: 第1行:整数n(1 ≤ n ≤ 100000),表示点的个数。 第2~n行:每行两个整数x,y表

艾 631

[LOJ 6159] 最长树链

看到要求gcd不为1所以肯定在这条答案链上都是一个质数的倍数,所以就会产生一个很暴力的想法 没错,正解就是这样的暴力 只让走是i(素数)倍数的点,作最长链 最长链可以树形dp或两遍bfs,一遍找端点,一遍过长度即可 复杂度:未证 #include<iostream> #include<cstdio> #include<cstring> #...

weixin_30501857的博客 193

#bzoj2404#最长链(树的直径/树形DP)

2404: 最长链 时间限制: 1 Sec  内存限制: 128 MB 题目描述 给定一棵有n个节点的树,求每个节点到其他节点的最大距离 输入 输入第一行是一个自然数n(n≤10000), 接下来 (n−1) 行描述:  第i行包含两个自然数 , 表示编号为i的节点连接到的节点编号和这条网线的长度..距离总长不会超过10^9. 每行中的两个数字用空格隔开

ElaineZXY的博客 2161

[LOJ]#6164. 「美团 CodeM 初赛 Round A」数列互质 莫队

题解: 这题只需要用到一个性质就行了:不同的出现次数最多只有根号种,因为1+2+...+x=(x−1)x21+2+...+x={{(x-1)x}\over2}1+2+...+x=2(x−1)x​。 然后直接莫队暴力即可。 代码: #include&lt;bits/stdc++.h&gt; using namespace std; #define LL long long #define pa pa...

TYB的博客 381

loj #6164. 「美团 CodeM 初赛 Round A」数列互质(莫队 数据结构 链表hash)

题目链接#6164. 「美团 CodeM 初赛 Round A」数列互质询问 l,r,kl,r,k 中次数的次数与互质的个数.分析维护区间中数的个数,这一眼看过去不就是 莫队吗,可以看到对于次数的次数最多只有n−−√\sqrt n 种因此我们可以暴力处理每次查询,用一个链表维护次数的次数就好复杂度O(nn−−√+Qn−−√logn)O(n\sqrt n+ Q\sqrt nlog n)开始用hash

taotao 的大学墓志 684
上一篇: [BZOJ4504][主席树]K个串
下一篇: [分块][哈希] [Romanian IOI 2017 Selection #6] Jolteon && [LOJ #6187] Odd
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值