Codeforces 842C - Ilya And The Tree 【树上DFS】

1991-2020年气候背景数据集 2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。 阅读详情

**【题意】

给出一棵生成树,每个节点都有一个值,现在要求出每个节点的美丽值的最大值,美丽值的定义为从根节点到该节点(包含)路径上所有点的值的gcd,求解每个点时可以把路径上某一个点的值变为0。你可以认为每个点美丽值的求解是独立的。**

别人的代码ac。。

#include <bits/stdc++.h>
using namespace std;

const int maxn=2e5;

int n;
int A[maxn+10],dp[maxn+10][2],fa[maxn+10];
vector<int>g[maxn+10];
set<int>s[maxn+10];

void dfs(int v,int p,int b){
    for(int w:s[p])s[v].insert(__gcd(w,A[v]));
    s[v].insert(b);
    b=__gcd(b,A[v]);
    s[v].insert(b);
    for(int w:g[v])if(w!=p)dfs(w,v,b);
}

int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",A+i);
    int u,v;
    for(int i=1;i<n;i++){
        scanf("%d%d",&u,&v);
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(1,0,0);
    for(int i=1;i<=n;i++)
        printf("%d ",*s[i].rbegin());
    return 0;
}

我的代码wa4

int val[N];
const int maxn=2e5;
int fst[N],nxt[N<<1],to[N<<1],e;
vector<int>g[maxn+10];
set<int>s[maxn+10];
set<int>::iterator it;
void dfs(int u,int fa,int c){
    for(it=s[u].begin();it!=s[u].end();++it)s[u].insert(__gcd(*it,val[u]));
    s[u].insert(c);
    c=__gcd(c,val[u]);
    s[u].insert(c);
    for(int i=0;i<g[u].size();++i)if(g[u][i]!=fa)dfs(g[u][i],u,c);
}
int main(){
    int n;sf("%d",&n);
    mem(fst,-1);e=0;
    rep(i,1,n)sf("%d",&val[i]);
    rep(i,1,n-1){ int u,v;sf("%d%d",&u,&v);g[u].push_back(v);g[v].push_back(u);}
    dfs(1,0,0);
    rep(i,1,n)pf("%d%c",*s[i].rbegin(),i==n?'\n':' ');

}

原本以为可以dp ,但其实是不可以的。。。谢谢提醒

int gcd(int a,int b){ if(b>a)swap(a,b);return b==0?a:gcd(b,a%b); }
int dp[N][2],ans[N];
void add(int u,int v){
    to[e]=v;nxt[e]=fst[u];fst[u]=e++;
}
void dfs(int u,int fa){
    dp[u][0]=gcd(dp[fa][0],val[u]);
    dp[u][1]=max(dp[fa][0],gcd(dp[fa][1],val[u]));
    ans[u]=max(dp[u][0],dp[u][1]);
    for(int i=fst[u];~i;i=nxt[i]){
        int v=to[i];
        if(v==fa)continue;
        dfs(v,u);
    }
}
int main(){
    int n;sf("%d",&n);
    mem(fst,-1);e=0;
    rep(i,1,n)sf("%d",&val[i]);
    mem(dp,0);
    rep(i,1,n-1){ int u,v;sf("%d%d",&u,&v);add(u,v);add(v,u); }
    dp[1][0]=val[1];
    dfs(1,1);
    //rep(i,1,n)pf("%d %d\n",dp[i][0],dp[i][1]);
    rep(i,1,n)pf("%d%c",ans[i],i==n?'\n':' ');
}
EXCEL VBA从入门到精通 前言 本书通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程,同时也介绍了常用的工具、资源、社区和协作平台等,方便读者进行进一步的学习和开发。我强烈推荐这本书给所有希望学习和掌握Excel VBA编程的读者。多样化的资源和工具介绍:本书介绍了丰富的工具和资源,包括官方文档、在线教程、代码库、论坛、博客等,方便读者进行进一步的学习和开发。详细的讲解和丰富的示例:本书从语法和对象开始讲解,通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程。第一节:什么是VBA 5。 阅读详情

相关推荐

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码)

本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。

root9的博客 497

codeforces842C

codeforces842C 爆力 树上DFS

清澈不在远方 1254

5分钟快速验证lvgl界面:VScode模拟器极简配置法(免环境变量版)

本文介绍了一种5分钟快速验证LVGL界面的极简配置方法,使用VSCode模拟器免环境变量配置,适合UI设计师和产品经理快速预览界面效果。通过预编译的SDL2库和配置好的VSCode工程模板,实现开箱即用的LVGL界面验证,大幅提升工作效率。

weixin_30790841的博客 314

Codeforces 842C - Ilya And The Tree 【树上DFS】

Codeforces 842C - Ilya And The Tree 【树上DFS】 Ilya is very fond of graphs, especially trees. During his lasttrip to the forest Ilya found a very interesting tree rooted at vertex 1. There is an integer number written oneach vertex of the tree; the number w

Dust_heart的博客 1789

【NVIDIA Jetson Orin系列 - 安装NVIDIA SDK Manager】

NVIDIA Jetson Orin - 安装NVIDIA SDK Manager

dally2的博客 2691

最全卷积总结篇(分组、深度可分离、空洞、转置等)

分组卷积(Group Convolution)是一种卷积操作方式,它最早在AlexNet中引入,并在深度学习中被广泛使用,尤其是在高效模型设计(如MobileNet和ResNeXt)中。分组卷积通过将输入特征通道分为若干组,并在每组内单独进行卷积操作,可以减少计算复杂度和参数量,同时有效利用模型的结构特性。分组卷积的工作原理通道分组:输入特征图的通道图为C_in,输出特征图的通道数为C_out,将每组的C_in和C_out分为G组,每组的通道数为C_in/G和C_out/G。组内卷积。

qq_44815135的博客 4218

Codeforces 842C Ilya And The Tree(树上DP+因子个数估计)

C. Ilya And The Tree time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Ilya is very fond of graphs, especially trees. During his last trip t

yasolx的博客 1577

DeepSeek高阶应用:DeepSeek+Coze构建智能文献综述与趋势分析自动化系统

本文详细介绍了如何利用DeepSeek与Coze构建智能文献综述与趋势分析自动化系统。通过DeepSeek的深度语义理解和结构化信息提取能力,结合Coze的可视化工作流编排,实现学术论文的自动解析、分类整理与知识入库。该系统能7x24小时自动追踪领域前沿,将研究人员从繁琐的文献处理中解放出来,专注于更高层次的思考与创新。

weixin_29050271的博客 179

Codeforces 842C Ilya And The Tree

Codeforces 842C Ilya And The Tree树上gcd题目有一棵根节点为1的树,每个结点都有权值。求每个结点从根节点到它的路径上的点的最大gcd(最多可以把一个路径上的一个点权值变成0)。思路关于区间gcd。。有个结论:就是可以‘暴力’,因为区间gcd收敛非常快,无论是在线段树搞,还是这次这题。都是暴力。线段树处理区间gcd的一题开始写树形dp,dp开两个记录当前节点的路径最大

P.H.S 520

展锐双摄帧同步实战:从配置到调试的完整避坑指南

本文深入剖析了在展锐平台上实现双摄帧同步的完整流程与核心技术。详细对比了硬件帧同步与软件帧同步的差异、应用场景及核心挑战,提供了从XML配置、驱动层适配到调试验证的实战指南。重点强调了硬件帧同步必须与固定帧率强绑定这一关键避坑点,并分享了针对景深虚化等场景的同步质量验证方法及长稳测试策略。

kiwi8的博客 401

飞书云文档API操作详细介绍

开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、

Brother_ning的博客 1万+

Codeforces 842C(思维)

题意:一棵树,求出每一个点到1的路径上的最大gcd,可以使一个变成0; 思路:保存一个数组为都取,然后每一个点维持一个vector数组,保存的是上一个的结果。 #include using namespace std; typedef long long ll; typedef pair P; #define fi first #define se second #defin

Everything can be done! 713

34、Text2KGBench与GeoQuestions1089:知识图谱生成与地理空间问答的新进展

本文介绍了Text2KGBench和GeoQuestions1089在知识图谱生成与地理空间问答领域的最新进展。Text2KGBench提供了一个开放且可复现的基准,用于从文本生成知识图谱,并结合多个LLM模型和评估工具推动研究。GeoQuestions1089是目前最大的地理空间问答数据集,与GeoQA2系统结合,推动了地理空间问答系统的发展。文章还探讨了技术挑战和未来研究方向,包括多模态知识图谱生成和深度学习优化的地理空间问答系统。

css33的专栏 114

CodeForces - 842C Ilya And The Tree 树上DFS

树上的 DFS , 已知根结点,从根结点往下递归,dp 数组保存不对结点清零时的 gcd ,然后用 ok 数组保存每个结点的可能的情况,最后进行比较,得到 res 答案数组 #include #include #include #include #include #include #include #include #include #include #includ

床前明月光 358

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Codeforces 842C Ilya And The Tree 树上gcd

题目链接 题意 给定一棵根为\(1\)的树。定义每个点的美丽值为根节点到它的路径上所有点的\(gcd\)值。但是对于每个点,在计算它的美丽值时,可以将这条路径上某个点的值变为\(0\)来最大化它的美丽值。现问每个点的美丽值最大是多少。 注意,每个点的美丽值计算是独立的,即每次可以选择变为\(0\)的点可以是不同的。 思路 对于某一条路径,考虑上面变化的点。 如果变为\(0\)的是, 根节...

ahu12345678的博客 156

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

CodeForces - 842C Ilya And The Tree

转自:https://blog.youkuaiyun.com/my_sunshine26/article/details/77696662 题目链接 题意:给出一棵生成树,每个节点都有一个值,现在要求出每个节点的美丽值的最大值,美丽值的定义为从根节点到该节点(包含)路径上所有点的值的gcd,求解每个点时可以把路径上某一个点的值变为0。你可以认为每个点美丽值的求解是独立的。 思路: 显然,我们可以进行树...

flyzer的博客 211

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Codeforces 842 C. Ilya And The Tree 树上dp

给定一颗2e5个节点的数,每个节点有一个权值(2e5),输出每个节点的beauty. 一个节点的beauty定义为它到原点路径上的各个点中删去一个点后权值的gcd. 每个点独立考虑,原点的beauty就是它的权值.

秋叶红于二月花 644

Codeforces 842 C Ilya And The Tree

题目地址 题意:给出一棵生成树,每个节点都有一个值,现在要求出每个节点的美丽值的最大值,美丽值的定义为从根节点到该节点(包含)路径上所有点的值的gcd,求解每个点时可以把路径上某一个点的值变为0(就相当于删除这个节点的数)。你可以认为每个点美丽值的求解是独立的(每次删除的点都不会影响下一次)。 思路:在这个树上进行dfs,然后我们边记录结果,在dp数组中记录的是到这个点的这条路径中一个节点都不删

不要錯過才珍惜 584

Ilya And The Tree——codeforces——842/C

Ilya is very fond of graphs, especially trees. During his last trip to the forest Ilya found a very interesting tree rooted at vertex 1. There is an integer number written on each vertex of the tree; ...

小宫主的博客 351

CodeForces - 842C Ilya And The Tree(树上倍增)

Ilya is very fond of graphs, especially trees. During his last trip to the forest Ilya found a very interesting tree rooted at vertex 1. There is an integer number written on each vertex of the tree;

WZJRJ28 450

codeforce 842C. Ilya And The Tree(dfs用set存储到每种可能)

time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Ilya is very fond of graphs, especially trees. During his last trip to the forest Ilya fou

henuzxy 651

codeforces 842C. Ilya And The Tree(dfs,dp)

题目链接 C. Ilya And The Tree time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Ilya is very fond of graphs, especially trees. During his last trip ...

weixin_30905133的博客 103

Codeforces Round #430 (Div. 2) C. Ilya And The Tree 树dp 统计

地址http://codeforces.com/contest/842/problem/C题意给一颗树,树上每个点都有一个权值,一个节点的beauty是这个点到根节点所有权值去掉一个值(或者一个值都不去掉)的gcd,求每个节点的最大beauty思路考虑树dp的方法,一个节点的最大beauty要么是不算自己的权值计算出的gcd(这个可以通过dfs轻易维护出),要么是算了自己的权值计算出的gcd,如果算

Brassica_的菜园 498

Codeforces Round #430 (Div. 2)C. Ilya And The Tree dfs D - Vitya and Strange Lesson

http://codeforces.com/contest/842/problem/C 树上每个点都有一个权值,求每一个点到根节点路径上所有节点的最大公因子,可以删掉任意一个点,也可以不删 删掉一个点影响的只是这个点的所有孩子节点,所有枚举每个点被删掉的情况,这样复杂度是n^2,加一些剪枝, 1.当到根节点的路径上的最大公因子已经是1,则没必要继续向下搜索了 2.当删掉这个点后得到的gcd

jerans的博客 339

Codeforces Round #430 (Div. 2)-搜索&STL-Ilya And The Tree

http://codeforces.com/contest/842/problem/C 给定一个树,树上每个点有一定价值。 这个点上的魅力值是 从1到这个点的路径 上的所有点价值的gcd。 你有一个操作,可以选择是否要把其中一个点的价值变成0。也就是不影响他的gcd。可以理解为每次求 一个点的魅力值时,都是独立的(也就是你在求一个点的时候,可以把一个点变成0,再求另一个点的魅力值时,可以选择其

天与云与山与水 229

Codeforces 842C - Ilya And The Tree - 树形DP或DFS

链接:  http://codeforces.com/contest/842/problem/C题目:Ilya is very fond of graphs, especially trees. During his last trip to the forest Ilya found a very interesting tree rooted at vertex 1. There is an i

LucienShui 990
上一篇: Codeforces Round #357 (Div. 2) -- D. Gifts by the List(DFS)
下一篇: 个人赛 3 最后一题 联通图概率dp
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值