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;
}
爬虫风控实战:当你的代理IP被数美滑块盯上时,如何优雅破解? 本文深入探讨了爬虫风控对抗中数美滑块验证码的破解与防御策略。通过分析数美滑块的多层防御机制,提出了代理IP池精细化管理、请求特征拟人化改造以及工程化滑块验证解决方案等系统性方法,帮助开发者有效降低验证码触发率,提升爬虫效率。 阅读详情

相关推荐

基于STM32的RS485土壤氮磷钾与PH传感器数据采集与OLED显示实战(附完整代码)

本文详细介绍了基于STM32单片机通过RS485协议采集土壤氮磷钾与PH传感器数据的实战项目。涵盖硬件选型、连接方法、Modbus-RTU通信协议解析、STM32程序实现及OLED显示,提供完整代码和调试技巧,适用于农业物联网环境监测系统。

kotlin6android的博客 334

【题目记录】——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

MS建模mmt

一、流程:1.定义好每个原子力场类型:Edit Sets(分组) 2.加H(一般是仅与Al-O八面体中的Al相连的O原子)、给H分组 3.“make P1”、校核化学式(正确与否) 4.扩成超晶胞(Na-mmt:4*1*1,Ca-mmt:4*2*1,illite:2*1*1,由化学式而定) 5.置换阳离子: mmt:模型中每 32 个 Si 4+有 1 个被 Al 3+ 取...

weixin_30721899的博客 2174

2021icpc南京站

2021icpc南京站

AC__dream的博客 1499

TensorFlow GPU版本安装步骤-Windows系统

本文由在Windows下安装TensorFlow GPU版本教程-优快云等整理得到。 目录 1、确认显卡是否支持CUDA 1.1 查看显卡信息 打开“设备管理器”,查看显卡信息,如下图所示: 由上图知,本电脑的显卡为NVIDIA Quadro P400. 1.2 查看支持CUDA的显卡 网址:https://developer.nvidia.com/cuda-gpus 经查询可知,该显卡支持CUDA,如下图所示: 2、安装CUDA 2.1 下载CUDA 网址:https://developer.nvi

x_lingyun的专栏 764

51单片机入门指南-基于STC89C52(持续更新)

一、环境介绍 编程IDE: keil5 单片机型号: STC89C51/52 开发板: 普中科技的开发板 完整PDF资源下载地址:https://download.youkuaiyun.com/download/xiaolong1126626497/19785856 二、51单片机开发手册介绍 2.1 前言 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最.

8797

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

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

佛系更新 4732

PCL 使用点云创建数字高程模型DEM【2025最新版】

使用点云创建数字高程模型DEM,并将结果保存为高程图像。博客长期更新,本文最近更新时间为:2025年9月15日。

点云侠的博客 2294

2021南京icpc J

数论

stdforces的博客 562

一层一责,一聚合一包:DDD分层架构下的微服务代码模型、三重边界与服务数据协作

领域模型画得再清楚,落不进代码也是空谈。本文以一个可运行的客户中心微服务为线索,先对比整洁架构、六边形架构与DDD分层架构,指出三者共同守护的那条隔离核心业务的红线;再把DDD分层落成四个一级目录、以聚合为单位分包、一个聚合一个仓储的代码模型,拆解实体、聚合根、值对象、领域事件、领域服务与仓储的设计要点;随后厘清逻辑、物理、代码三重边界,并用检查器实测:干净代码零越界,拆出积分聚合时领域代码无需改动;注入九处越界后,必须先重构才能拆分。最后梳理服务调用三场景与PO、DO、DTO、VO的协作。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 177万+

使用MATLAB的COMSOL LiveLink:实时连接和数据传输

COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。使用COMSOL LiveLink,你可以进行更复杂的模型设置和数据传输使用MATLAB的COMSOL LiveLink:实时连接和数据传输。

PixelNinja的博客 2088

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

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

Cloth的博客 688

深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)

最近在学习《强化学习原理与Python实现》,肖智清著。参考第十二章的自动驾驶案例,写一篇总结,尽量做到简单可行,让有志于自动驾驶的小伙伴可以通过此篇博客可以管中窥豹,初步了解自动驾驶的强化学习训练过程。 本篇将自动驾驶问题转化为回合制的强化学习任务,设计以车辆观察图像和运行状态为输入的自动驾驶算法,并在AirSim仿真环境中进行训练和测试。本篇使用带经验回放和目标网络的基于深度Q网络算法设计并实现智能体,对经验回放、目标网络和深度Q学习算法进行简单介绍,并用代码实现。

shao918516的博客 8599

2021icpc南京训练总结

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

飞向更远的博客 1185

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

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

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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
上一篇: 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、付费专栏及课程。

余额充值