首页 > 其他分享 >代码(待加解释) hdu2196

代码(待加解释) hdu2196

时间:2023-09-04 22:24:03浏览次数:56  
标签:nxt head int rx 代码 hdu2196 待加 tot maxn

#include<bits/stdc++.h> using namespace std; const int maxn=3e4+10; #define ll long long int head[maxn],ver[maxn],nxt[maxn],edge[maxn]; int tot; ll f[maxn][3]; int rx[maxn];
void dfs1(int x,int fa) {     for(int i=head[x]; i; i=nxt[i])     {         int y=ver[i];         int w=edge[i];         if(y==fa) continue;         dfs1(y,x);         if(f[x][0]<=f[y][0]+w)         {             f[x][1]=f[x][0];             f[x][0]=f[y][0]+w;             rx[x]=y;
        }         else if(f[y][0]+w>f[x][1])             f[x][1]=f[y][0]+w;         else if(f[y][1]+w>f[x][1])             f[x][1]=f[y][1]+w;     } }
void dfs2(int x,int fa) {
    for(int i=head[x]; i; i=nxt[i])     {         int y=ver[i];         if(y==fa) continue;         int w=edge[i];         if(rx[x]==y)             f[y][2]=max(f[x][1]+w,f[x][2]+w);         else             f[y][2]=max(f[x][0]+w,f[x][2]+w);         dfs2(y,x);     } } void add(int u,int v,int w) {     edge[++tot]=w;     ver[tot]=v;     nxt[tot]=head[u];     head[u]=tot; } int main() {     int n;     while(~scanf("%d",&n))     {         tot=0;         memset(f,0,sizeof(f));         memset(rx,0,sizeof(rx));         memset(head,0,sizeof(head));         for(int i=2; i<=n; i++)         {             int v,w;             scanf("%d%d",&v,&w);             add(i,v,w);             add(v,i,w);         }         dfs1(1,1);         dfs2(1,1);         for(int i=1; i<=n; i++)         {             printf("%lld\n",max(f[i][0],f[i][2]));         }     } }

标签:nxt,head,int,rx,代码,hdu2196,待加,tot,maxn
From: https://www.cnblogs.com/mingloch/p/17678247.html

相关文章

  • Git代码管理规范
    Git代码管理规范分支命名master分支master为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。master分支一般由release以及hotfix分支合并,任何时间都不能直接修改代码。develop分支develop为开发环境分支,始终保持最新完成以及bug修复后的代码,用于前......
  • 动手实践-XA模式代码
             ......
  • csgo如何显示帧数(含代码示例)
    CSGO可以通过控制台命令来显示帧数,代码如下:打开CSGO游戏,按下“~”键打开控制台;CSGO可以通过控制台命令来显示帧数,代码如下:1.打开CSGO游戏,按下“~”键打开控制台;2.在控制台输入“cl_showfps1”,即可开启帧数显示;3.若要关闭帧数显示,只需在控制台输入“cl_showfps0”即可。......
  • 解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
    最近用MASM32编程更新SysInfo,增加对IPv6连接信息的收集,使用到了typedefstruct_MIB_TCP6ROW_OWNER_MODULE{UCHARucLocalAddr[16];DWORDdwLocalScopeId;DWORDdwLocalPort;UCHARucRemoteAddr[16];DWORDdwRemoteScopeI......
  • 如何利用好 IntelliJ IDEA 的调试功能辅助代码调试
    文章目录调试的重要性配置断点启动调试利用IntelliJIDEA的调试功能观察变量和表达式单步执行和逐级跳转查看调用栈条件断点监视变量远程调试使用断点条件和日志调试最佳实践总结......
  • 如何利用FuncGPT告别繁琐的开源代码调试
    作为一名开发人员,您是否曾经在浩如烟海的开源社区中搜索代码,然后花费大量时间测试、调试,最后才发现这些代码并不符合您的需求?专注Java生成AI函数的FuncGPT(慧函数)就像您的私人编程助手,只需输入你的需求,就能提供符合要求的函数,让你告别繁琐的搜索、测试和调试,迈向高效的开发之旅。一......
  • 一个可读性高的代码对程序员有多重要
    人们都以为编写任何程序员都能够阅读和理解的代码是软件开发人员的固有技能。事实上只有20%的程序员具备这种能力。你所写的代码不仅要被机器理解,而且还要被人类理解。在软件开发中,代码质量应该是每个开发人员的重中之重。因此,在整个开发过程中,交付高质量的工作代码应该是每个开......
  • 用 XDoclet 减少代码膨胀[摘]
    文章来源:http://www-900.ibm.com/developerWorks/cn/java/j-xdoclet/index.shtml发现多功能的模板驱动的代码生成器SingLi作者,WroxPress2004年11月开放源代码的XDoclet代码生成引擎,是许多领先的Java框架不可缺少......
  • iOS代码加固与保护方法详解 - 提升iOS应用安全性的关键步骤
    摘要:作为一名从事iOS开发多年的技术博主,长期以来我都没有重视代码加密和加固。然而,最近了解到使用IPAGuard工具可以对iOS应用进行混淆保护,我开始重新审视iOS应用的安全性问题。本文将详细介绍如何使用IPAGuard工具进行代码加固和保护,以提高iOS应用的安全性和抵御逆向分析的风险。......
  • 已知16进制和透明度,使用JS语法求他们在一起的rgba。可以参考下面代码:
    事件起因:最近做的一个大转盘游戏页面样式编辑,背景透明度调整的时候,会导致字体一起变动,于是需要将背景演示的16进制和透明度一起转换成rgba。 functionhexToRgba(hex,alpha){//去掉可能包含的"#"符号if(hex.startsWith("#")){hex=hex.slice(1);}//解析1......