2021 icpc 南京 h 树形dp

2021acm-icpc区域赛(南京)补题笔记 2021南京,号称最卷的icpc区域赛。 上周末训练赛和队友打了一下,争取多补几道题。 阅读详情

代码中第55行那个位置我没想到,导致wa了几发。
这个题被卡在了t=3的讨论上面,其实把式子推出来发现只和最大值有关系,最大值必选。
子节点的选择和子节点为头节点的子树的选择无关。

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

const int N = 1e5+10, M = 2*N;

int n;
int h[N], ne[M], e[M], idx;
ll a[N], t[N];
ll sum[N], f[N];

void init() {
    idx = 0;
    for(int i = 1;i <= n;i ++) {
        h[i] = -1;
        sum[i] = 0;
        f[i] = 0;
    }
}

void add(int l, int r) {
    e[idx] = r, ne[idx] = h[l], h[l] = idx ++;
}

void dfs(int u, int fa) {
    for(int i = h[u];i != -1;i = ne[i]) {
        int j = e[i];
        if(j != fa) dfs(j, u);
    }
    for(int i = h[u];i != -1;i = ne[i]) {
        int j = e[i];
        if(j == fa) continue;
        sum[u] += f[j];
    }

    ll maxl = 0, id;
    for(int i = h[u];i != -1;i = ne[i]) {//第一种情况 只选择一个
        int j = e[i];
        if(j == fa) continue;
        if(t[j] == 3 && a[j] > maxl) {
            maxl = a[j];
            id = j;
        }
        f[u] = max(f[u], sum[u] + a[j]);
    }

    if(maxl == 0) return ;

    for(int i = h[u];i != -1;i = ne[i]) {//任意选择一个,然后选择t为3的最大值
        int j = e[i];
        if(j == fa || j == id) continue;
        f[u] = max(f[u], sum[u] - f[j] + a[j] + sum[j] + a[id]);
    }    
    for(int i = h[u];i != -1;i = ne[i]) {//先选择t为3的最大值,然后再选一个t为3的值
        int j = e[i];
        if(j == fa || j == id || t[j] != 3) continue;
        f[u] = max(f[u], sum[u] - f[id] + a[id] + sum[id] + a[j]);
    }
    return ;
}

int main() {
    int Case, l, r;
    scanf("%d", &Case);
    while(Case --) {
        scanf("%d", &n);
        init();
        for(int i = 1;i <= n;i ++) scanf("%lld", &a[i]);
        for(int i = 1;i <= n;i ++) scanf("%lld", &t[i]);
        for(int i = 1;i < n;i ++) {
            scanf("%d%d", &l,&r);
            add(l, r); add(r, l);
        }
        dfs(1, 0);
        printf("%lld\n", f[1] + a[1]);
    }
    return 0;
}
分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件 阅读详情

相关推荐

无法找到来自源 nvlddmkm 的事件 ID 14 的描述

具体错误是: 无法找到来自源 nvlddmkm 的事件 ID 14 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。 出现这样错误的原因有很多了,有可能是硬件有可能是软件。由于我是刚配置的电脑,起初非常怀疑是自己组装的问题,折腾了好久,心态爆炸!!!先说我报这样错误的情况,以及解决办法,供后面人参考。 ...

SeventhBlue 6万+

【题目记录】——ICPC南京2021

文章目录A Oops, It's Yesterday Twice More 签到C Klee in Solitary Confinement 思维题D Paimon Sorting 思维题HIJM Windblume Festival 思维 题目集地址ICPC南京2021 参考博客第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(南京) CDH 2021 46届icpc 南京 A Oops, It’s Yesterday Twice More 签到 A 题目大意:略 思路:判断离哪个角近,先走到角上

气派飞鹰的博客 5071

树莓派5外接RTX显卡:从PCIe到驱动的完整踩坑指南

在ARM架构与GPU加速的交汇点,树莓派5凭借其PCIe接口为DIY爱好者打开了外接独立显卡的大门。然而,PCIe x1的带宽限制、供电差异以及NVIDIA驱动在ARM Linux上的兼容性,使得这一组合成为一场高强度的系统底层排错训练。从理解PCIe总线原理、驱动加载机制到CUDA环境配置,每一步都充满挑战。本文以工程实践视角,梳理外接RTX显卡的完整流程、常见故障与性能瓶颈,并探讨其在边缘计算、AI推理等场景下的真实价值,帮助你理性评估这一实验性方案的可行性与替代路径。

chubaisheng8627的博客 351

2021icpc南京站

2021icpc南京站

AC__dream的博客 1499

用PyTorch手把手搭建液态神经网络(LNN):从微分方程到无人机避障实战

本文详细介绍了如何使用PyTorch搭建液态神经网络(LNN),从微分方程基础到无人机避障实战应用。LNN通过动态时序建模和微分方程实现高效计算,特别适合多传感器数据融合场景。文章包含完整的代码实现、训练技巧及性能优化方案,帮助开发者快速掌握这一前沿技术。

uber9的博客 438

【YOLO26实战全攻略】08——YOLO26模型导出与部署全攻略:从训练权重到生产环境(含5种格式+INT8量化+实战案例)

本文聚焦YOLO26模型从训练权重到生产环境的全流程部署,针对“训练精度高、部署效果差”的行业痛点,详解其无NMS端到端推理、量化友好架构、全格式导出三大核心优势。内容涵盖ONNX、TensorRT、OpenVINO、TFLite、CoreML五种主流格式的导出原理与实操步骤,深入剖析INT8量化、混合量化等边缘优化技术,并通过智慧园区车辆检测虚拟案例,完整演示从模型准备、格式导出、引擎适配到性能验证的全流程。文中提供可直接复制运行的代码、详细执行结果及避坑指南,兼顾新手入门与进阶读者提升,更好的帮助读者。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 500

2021 ICPC 南京站总结以及真题PDF

记第一次ICPC 2021/12/4,参加了第一次 ICPC 比赛,说实话,比赛前的心态已经觉得无所谓了,抱着摆烂的心思去参加的

佛系更新 4732

热力学仿真软件:ANSYS CFX_(15).旋转机械仿真

创建旋转域在中选择需要设置为旋转域的区域。选择选项。设置旋转速度在设置中,指定旋转速度(单位为弧度/秒)。也可以选择选项,并输入具体值。设置旋转轴在设置中,指定旋转轴的方向和位置。通常旋转轴的方向可以使用单位向量来表示,例如[0, 0, 1]表示沿Z轴旋转。旋转轴的位置可以通过指定一个点的坐标来确定,例如[0, 0, 0]表示旋转轴通过原点。旋转机械的仿真在ANSYS CFX中是一个复杂但重要的过程。

kkchenjj的博客 1157

2021南京icpc J

数论

stdforces的博客 562

168、运动控制中的标定:编码器零点标定

文章摘要 运动控制系统中的编码器零点标定是确保精确控制的关键基础步骤。文章通过实际案例说明,即使0.3度的零点偏移也会导致电机异常抖动。详细介绍了三种标定方法:反电动势法(需示波器)、电流注入法(适合量产)和霍尔传感器法(粗标定),并指出常见陷阱如忽略极对数、Z脉冲重复性问题和温度漂移。提供了基于STM32的嵌入式实现代码片段,强调标定后的静态、动态和负载验证的重要性。作者建议量产产品设置自动标定工位,研发样机采用更精确的方法,并强调标定数据应与电机序列号绑定。

m0_50546716的博客 135

(王道408考研操作系统)第三章内存管理-第一节1:内存基础知识、程序编译运行原理

注意:本节内容和《计算机组成原理》“存储器”那一部分内容相关性很强,组成原理是从硬件角度,操作系统是从软件角度。因此如果没有学习过这部分的同学,强烈建议先看这一部分 王道计算机组成原理笔记 本文主要会涉及以下必要的内存知识 文章目录一:内存及其作用 一:内存及其作用 内存:内存又称之为主存。是一种硬件设备,作为CPU和硬盘的缓冲区,用于解决其速度不匹配的问题,提高整机性能。程序执行前需要放入内存才能运行 ...

快乐江湖的博客 2791

[树形dp]Crystalfly 2021年ICPC南京站H

之后遍历树一遍,自底向上更新dp值。如果当前点存在3秒点,那么可以先遍历第一步向哪个子节点走,最后所有情况取最大值,当确定第一步走到哪个子节点后,第二步肯定要返回父节点,第三步选择哪个3秒点其实也是固定的,肯定选择具有最大点权的那个3秒点,这里把不同3秒点的贡献列出来就很容易发现了。给出一棵有n个点的树,树上每点权值为ai,每个点还有一个暂存时间ti,当走到某点i时,其所有相邻结点开始计时,当时间达到相邻点的暂存时间后,相邻点的权值就会消失变成0,问从点1出发,能够获得的最大权值。

Cloth的博客 688

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

2021icpc南京训练总结

2021icpc南京训练总结C Klee in Solitary Confinement附上代码 题目集链接 总结 写这种比较新的题目,尤其是里面的思维题真的好多,我们队伍里面还是太欠缺了,这方面还是要好好增强一下。从这套题目里面也看到了很多的不足,心情多少有点小失落QWQ。 这里摆上一个题解链接,后面想起来要再翻开看的时候方便一点。 C Klee in Solitary Confinement 这道题想了很长时间,都是代码写的差不多了才发现原来又原则性的错误,整得整个人都很麻,这点一定要改正,至少心里已经

飞向更远的博客 1185

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

2021 ICPC 南京 H-Crystalfly(树上DP)

2021 ICPC 南京 H-Crystalfly(树上DP) Probelm Statement 你一开始处于111号节点的树, 每个点aia_iai​个蝴蝶, 且如果ithi^{th}ith节点的父节点被扰动时, 这些蝴蝶会在ti(1≤ti≤3)t_i(1\leq t_i\leq 3)ti​(1≤ti​≤3)时刻后消散. 求你可以抓到多少只蝴蝶. Solution 当我们第一次到达节点uuu的时候它的所有儿子都会被激活,对于uuu的子节点vvv, 我们只有两个决策, 要么到达子节点vvv知乎继续向下,

LH_Frank的博客 1473

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2020 ICPC 南京站 M Monster Hunter (树形DP)

题目链接:M-Monster Hunter_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京) 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 There is a rooted tree with vertices and the root vertex is . In each vertex, there is a monster. The hit point

康宇的博客 3199

2021icpc南京 H. Crystalfly

题意:有一棵树,每一个节点都有一个值val[i]表示这个点有多少只晶蝶,t[i]表示假设你到达该点连接的点之后,经过多少秒该点的晶蝶都会跑光(从一个点到另一个点花费时间为1).问最多可以抓多少晶蝶。f[x][1]=max(f[x][0]+val[y],f[x][1]),意为假设该节点的子节。temp=f[y][0]-f[y][1]+val[y]的最大值(j表示拐弯后往下那个点,y表。f[x][0]的计算方法很简单,直接Σ(f[j][1]-val[j])即可,意为我们取。弯回到这个j点往下走的情况.

qq_49593247的博客 770

2021 ICPC 南京站 游·寄

前夜 因为疫情原因,今年ICPC全是线上(大二选手想壮年出去旅游!!!。南京名单发下来都惊了,这不是逆十字吗,这不是重生菜狗吗,这不是超长宕机吗,这不是……好家伙,名牌一队都来了啊。好像有人整理过,来的出线队就有40只?那不是金区溢出,原本的金牌队被挤到银牌区,拿银希望−−--−−。网传 今年南京站是 ICPC全明星,心理压力++++++,不过我当然相信自己队伍的实力啦,拿牌还是十拿九稳的。 热身赛 热身赛前半个小时才理好了后缀数组的模板,毕竟今年第一场 ICPC,想着多点一个技能就多一种题目可以做。可是这

qq_52383696的博客 1126

【树DP】2021ICPC南京 H

然后考虑不存在tv = 3的结点,那么就是一次性走到底,再去遍历其他结点,此时贡献为 sum[u] + mx,其中 mx 为所有子节点中最大的 a[v]注意到,对于一个结点 u ,如果它的所有子节点中没有 tv = 3的,那么就肯定是沿着一棵子树走到底,然后去走剩下的子树。因为怎么转移和这些子节点中是否存在 tv = 3的结点有关,那么考虑先去把这些结点遍历一遍,看看是否存在,然后去转移。如果所有子节点中有 tv = 3的,那么可以先走到某个子节点,然后再走到这个 tv = 3的结点。

weixin_62528401的博客 304

2020(ICPC)亚洲区域赛(南京)赛后总结

​ 2020年的ICPC基本结束(还剩下济南站),我们队也打完了2020年的最后一场正式比赛。从最开始的轮流做队(LLZ)(其实就是我们三个人的第一个字母组合起来的)到后面的69岁,是acmer队(Mabaoguo)(队友觉得之前的队名不吉利,每次都轮流改题,场面一度混论,真是队如其名,于是就改名了),从暑假的集训到省赛再到天梯赛最后到ICPC的南京站,我们队2020年的比赛也就全部结束了。 ​ 比赛开始前5min,三个人都不知道该选哪个题下手,随便挑了A、B、G题,看了1min。“这都是些什么题啊?”然后

Phoenix_ZengHao的博客 2925

H. Crystalfly(2021ICPC-南京)(树状dp)

The 2021 ICPC Asia Nanjing Regional Contest 参考题解 比赛题解 Solution Code const int N = 2e5 + 5; ll sum[N], f[N], a[N], t[N]; vector<int> v[N]; void dfs(int x, int fa) { multiset<ll>s;//set中根节点是集合最小值 ll maxn = 0; for (int y : v[x]) { if (y ==

QQ2530063577的博客 1248

2021 icpc南京 H. Crystalfly

题目大意: Paimon 正在树上捕捉水晶蝴蝶,这是提瓦特的一种特殊蝴蝶。树是由 n 个顶点和 (n-1) 个无向边组成的连通图。 在第 i 个顶点上最初有 ai 个晶体。当派蒙到达一个顶点时,她可以立即捕捉到该顶点上所有剩余的水晶蝇。然而,水晶蝇很胆小。当 Paimon 到达一个顶点时,所有相邻顶点上的晶体都会受到干扰。对于第i个顶点,如果顶点上的晶体在第t'秒开始时第一次受到干扰,它们将在第(t'+ti)秒结束时消失。 在第 0 秒开始时,Paimon 到达顶点 1 并在第 1 秒开始之前停留在那

qq_59726581的博客 827

2021南京站 H(树形dp,典中典之不特判)

题目 题意: 给定n个点的树,每个点上有蝴蝶数量a[i],到达一个点i后,所有相邻点j会在对应的t[j]内消散。(t<=3)求从点1出发最多可以获得多少蝴蝶。 思路: 树形dp. 时间复杂度: O(n) 代码: // Problem: H. Crystalfly // Contest: Codeforces - The 2021 ICPC Asia Nanjing Regional Contest (XXII Open Cup, Grand Prix of Nanjing) // URL: htt

xianqiuyigedao的博客 627

2020ICPC南京站 Monster Hunter 树上背包

2020ICPC南京站 Monster Hunter 树上背包题意思路Code 传送门: 题意 给你一棵树,你可以去掉m个点(m∈[0,n]),然后计算剩余结点的贡献。给你一棵树,你可以去掉m个点(m\in [0,n]),然后计算剩余结点的贡献。给你一棵树,你可以去掉m个点(m∈[0,n]),然后计算剩余结点的贡献。 每个结点的贡献为它本身的价值加上它所有直接相连儿子的价值。每个结点的贡献为它本身的价值加上它所有直接相连儿子的价值。每个结点的贡献为它本身的价值加上它所有直接相连儿子的价值。 当然你需要合理安

狙击美佐的博客 386

2021 ICPC 南京站+上海站 部分题解

其实列举出2、4、6……1.对于这样的一棵树来说,t的值只能取1到3,可发现2秒实在是没有价值。如果一个点是3s,那说明可去其他1s或3s的点拿完,再去拿这个点的值。对于x来说,它可由x和x-k得到,而一个区间内的众数可通过枚举不同的区间得到。2.如果从x点出发,走向z点,而y点的值是3s,说明可以去完z点转向去y点,这样势必会放弃z点孩子结点的点数。3.子树结点边的选取情况可能会占用上一层偶数结点层的结点,需要统计的是可以对父节点产生贡献的可分配的边。,减去的那一部分是dp[u][0]包含的重复的部分。

weixin_51934288的博客 1546

2020年ICPC南京站 补题记录

文章目录A - Ah, It's Yesterday Once More(构造)E - Evil Coordinate(构造)F - Fireworks(概率+三分)H - Harmonious Rectangle(打表)K - K Co-prime Permutation(签到)L - Let's Play Curling(贪心+签到)M - Monster Hunter(树形dp) A - Ah, It’s Yesterday Once More(构造) 奇妙构造。。。总的来说就是斜着,下面是出题人给

Texcavator的博客 876

ICPC铜牌算法

【代码】ICPC铜牌算法。

qq_73702550的博客 1968
上一篇: 2019 icpc ecfinal H.King 思维 模拟 随机数
binggui2
博客等级 码龄7年 30粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值