算法课程笔记——路径相关树形DP

算法课程笔记——路径相关树形DP

#include<bits/stdc++.h>usingnamespacestd;
usingLL = longlong;
constintN = 2005;
vector<int>e[N],t;
structasdf{vector<int> vec;
    LL val;
};
vector<asdf>w[N];
LL dp[N];
intn,m,k,dep[N]={1},f[N];
voiddfs(intu){
    for(autov:e[u])
    {
        dfs(v);
        dp[u]+=dp[v];
    }
    for(autot:w[u])
    {
        LL sum=dp[u];
        for(autonw:t.vec)
        {
            sum-=dp[nw];
            for(autov:e[nw]) sum+=dp[v];
        }
        dp[u]=max(dp[u],sum+t.val);
    }
}
intmain(){
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);
    cin>>n>>m;
    for(inti=2;i<=n;++i)
    {
        cin>>f[i];
        e[f[i]].push_back(i);
        dep[i]=dep[f[i]]+1;
    }
    for(inti=1,x,y;i<=m;++i)
    {
        LL val;
        cin>>x>>y>>val;
        t.clear();
        while(x!=y)
            if(dep[x]>dep[y]) t.push_back(x),x=f[x];
            elset.push_back(y),y=f[y];
        t.push_back(x);
        w[x].push_back({t,val});
    }
    dfs(1);
    cout<<dp[1];
    return0;
}

#include<bits/stdc++.h>usingnamespacestd;
usingLL=longlong;
intn,m;
constintN=2005;
structasdf{intx;
    LL val;
};
vector<asdf> w[N];
vector<int>e[N];
intdep[N];
LL dp[N][N];
voiddfs(intu){
    LL sum=0;
    for(inti=1;i<=dep[u];++i) dp[u][i]=1e18;
    for(autov:e[u])
    {
        dfs(v);
        sum+=dp[v][dep[u]+1];
        if(sum>=1e18)
        {
            cout<<-1;
            exit(0);
        }
        for(inti=1;i<=dep[u];++i)
            dp[u][i]=min(dp[u][i],dp[v][i]-dp[v][dep[u]+1]);
    }
    for(inti=1;i<=dep[u];++i) dp[u][i]+=sum;
    for(autov:w[u])
        dp[u][dep[v.x]]=min(dp[u][dep[v.x]],sum+v.val);
    for(inti=2;i<=dep[u];++i) dp[u][i]=min(dp[u][i],dp[u][i-1]);
}
intmain(){
    cin>>n>>m;
    dep[1]=1;
    for(inti=2;i<=n;++i)
    {
        intf;
        cin>>f;
        e[f].push_back(i);
        dep[i]=dep[f]+1;
    }
    for(inti=1;i<=m;++i)
    {
        intx,y;
        LL val;
        cin>>x>>y>>val;
        if(dep[x]>dep[y]) swap(x,y);
        w[y].push_back({x,val});
    }
    dfs(1);
    cout<<dp[1][1];
    return0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过GRE隧道实现OSPF、BGP、IS-IS的套接使用

正文共&#xff1a;999 字 9 图&#xff0c;预估阅读时间&#xff1a;1 分钟 书接上文&#xff08;专线入云场景能否配置动态路由协议&#xff1f;&#xff09;&#xff0c;我们发现通过一定的配置&#xff0c;具体就是组合使用IBGP和静态路由&#xff0c;在使用云专线接入到资…

国内验签DV单域名SSL证书怎么购买?

JoySSL所签发的专业版单域名SSL证书可以做到国内验签&#xff0c;数据不出境&#xff0c;安全等级为业内最高。 JoySSL 专业版国际算法DV单域名证书-JoySSLJoySSL专业版国际算法DV单域名证书通过交叉授信方式&#xff0c;实现国产根与欧美根相互验证&#xff0c;完美兼容且自主…

Xmind Pro 2024 24安装教程

Xmind 应该是目前最好用的一款思维导图软件了。拥有优秀的用户体验&#xff0c;凭借简单易用&#xff0c;功能强大的特点&#xff0c;XMind在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软件。 Xmind 具有如下优点 ①、用心打磨16年的思维导图软件 ②、评…

[智能AI摄像头]RV1126适配3inch mipi屏幕

3寸屏幕 硬件平台 3寸屏&#xff1a;ST7701S驱动芯片&#xff0c;mipi接口&#xff0c;2lane rv1126&#xff1a;易佰纳38板、正点原子rv1126开发板 所需资料 《屏幕规格书》、《开发板原理图》、《屏幕初始化序列》、《ST7701S数据手册》《rk屏幕相关文档》 驱动板绘制 …

文件怎么转成二维码图片?长期使用的文件活码的制作方法

文件二维码是现在很常用的一种展现分享文件的方式&#xff0c;采用这种方式可以快速通过扫码的方式来查看文件内容&#xff0c;比如excel、word、ppt、pdf等文件格式都可以生成二维码之后在手机上预览内容。那么文件制作二维码的步骤是什么样的呢&#xff1f;下面就来教大家一招…

男士内裤一般什么价位?五款爆品无广测评,人气榜单推荐

不少男性朋友在选男士内裤的时候&#xff0c;都觉得品牌众多和各种不同材质&#xff0c;让大家款得眼花缭乱不知道怎么选。选择男士内裤时要综合考虑多种因素&#xff0c;才能够让舒适感和透气性大大提升&#xff0c;而且抗菌效果更好能够减少细菌滋生。 今天就给大家分享五款…

祝贺誉天杨峰老师率先通过HCIE-openEuler认证!

热烈祝贺誉天教育杨峰老师4月29日成功通过HCIE-openEuler认证&#xff01; 杨峰老师HCIE-openEuler证书 作为HCIP-openEuler全国首位通过者&#xff0c;杨峰老师凭借他深厚的专业知识、丰富的实践经验和不懈的努力&#xff0c;成功通过了华为认证的HCIE-openEuler专家级认证&a…

VB6连接各种类型的数据库

VB6连接各种类型的数据库 一、连接VFP数据库 Dim CNN As New ADODB.Connection Dim rssys As New ADODB.Recordset If CNN.state 1 Then CNN.Close CNN.ConnectionString "Driver{Microsoft Visual FoxPro Driver};SourceType.DBc;SourceDb" Trim(Text1) CNN…

代码随想录 打卡day23,24,25

1 二叉搜索树的最小绝对差 注意审题&#xff0c;题目当值说到是一个二叉搜索树&#xff0c;因此我们只需进行中序遍历即可&#xff0c;然后得到一个有序数组之后进行编辑&#xff0c;统计出来最小差。 class solution{ private:vector<int> vec;void traversal(TreeNode…

【数据结构】线性表----链表详解

数据结构—-链表详解 目录 文章目录 链表的定义链表的构成链表的分类双向和单向带头和不带头循环和不循环 链表的命名基本操作的实现初始化打印取值查找插入指定位置插入删除删除销毁 部分其他链表的代码实现循环链表双向链表 优点/缺点&#xff08;对比顺序表&#xff09;优点…

基于ssm学生档案管理系统论文

系统简介 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提升&#xff0c;而读书就是人们获得精神享受非常重要的途径。…

linux性能监控之free

free&#xff1a;linux系统自带命令&#xff0c;显示内存状态&#xff0c;命令查询来源于/proc/meminfo 文件 [rootk8s-master ~]# free --helpUsage:free [options]Options:-b, --bytes show output in bytes-k, --kilo show output in kilobytes-m, --mega…

flutter开发实战-compute将工作交由isolate处理

flutter开发实战-compute将工作交由isolate处理 最近查看flutter文档时候&#xff0c;看到了compute可以将工作交由isolate处理。通过 Flutter 提供的 compute() 方法将解析和转换的工作移交到一个后台 isolate 中。这个 compute() 函数可以在后台 isolate 中运行复杂的函数并…

利用阿里国际站和eBay平台销售数据提升产品销售额的有效方法。

作为全球知名的跨境电商平台&#xff0c;阿里国际站和eBay汇聚了众多跨境电商商家。为了提升业务效率和优化经营策略&#xff0c;商家们需要时刻关注自家店铺中产品的销售情况。通过深入了解销售数据&#xff0c;商家们能够准确把握店铺的经营状态&#xff0c;及时识别潜在问题…

Android XML的使用详解

一、布局文件&#xff1a; 在layout目录下&#xff0c;使用比较广泛&#xff1b;我们可以为应用定义两套或多套布局&#xff0c;例如&#xff1a;可以新建目录layout_land(代表手机横屏布局)&#xff0c;layout_port(代表手机竖屏布局)&#xff0c;系统会根据不同情况自动找到…

OpenAI 今日(北京时间 5 月 14 日凌晨两点)将发布的大更新,不是 GPT-5,也不是搜索引擎

&#x1f989; AI新闻 &#x1f680; OpenAI 今日&#xff08;5月13日&#xff09;将发布的大更新&#xff0c;不是 GPT-5&#xff0c;也不是搜索引擎 摘要&#xff1a;OpenAI 预计即将推出一款新的 AI 语音助手&#xff0c;该助手不仅可以进行语音和文字交流&#xff0c;还能…

Hashmap详细解析,原理及使用方法分析

hashmap基本原理 根据的hashCode值存储数据。由数组链表组成的&#xff0c;Entnr数组是HashMap的主体&#xff0c;数组中每个元素是一个单向链表。链表则是1/1解哈希冲突而存在的。在lava8中&#xff0c;使用红黑树优化。当链表长度大于8并且元素个数大于64&#xff0c;转为红…

常见加解密算法02 - RC4算法分析

RC4是一种广泛使用的流密码&#xff0c;它以其简洁和速度而闻名。区别于块密码&#xff0c;流密码特点在于按位或按字节来进行加密。 RC4由Ron Rivest在1987年设计&#xff0c;尽管它的命名看起来是第四版&#xff0c;实际上它是第一个对外发布的版本。 RC4算法的实施过程简洁…

centos7.8 迁移为 TencentOS Server 2.4(TK4) 报错解决

文章目录 一 问题二 解决三 注意 一 问题 CentOS 官方计划停止维护 CentOS Linux 项目&#xff0c;公司某台腾讯云的centos7.8服务器计划迁移为 TencentOS Server 2.4(TK4) 。在下载rpm包执行迁移命令后报错&#xff0c;场景还原如下。 首先 安装 Python 3 yum install -y p…

什么?免费使用GPT-4o?

⭐简单说两句⭐ ✨ 正在努力的小叮当~ &#x1f496; 超级爱分享&#xff0c;分享各种有趣干货&#xff01; &#x1f469;‍&#x1f4bb; 提供&#xff1a;模拟面试 | 简历诊断 | 独家简历模板 &#x1f308; 感谢关注&#xff0c;关注了你就是我的超级粉丝啦&#xff01; &a…