codeforces 1153D Serval and Rooted Tree(树形dp+贪心)

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建 本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。 阅读详情

https://codeforces.com/contest/1153/problem/D

题意

给出一颗树,有k个叶子结点,每个叶子结点的权值为1~k中的一个,除叶子结点外,每个结点都有min或者max操作,表示取其儿子的最小值或最大值,求根结点最大值是多少。

题解

dp[i]: 表示以i为根的这个子树中叶子结点里第dp[i]大的值。
对于max和min操作贪心的选取。

max: dp[u] = min{dp[v]}
min: dp[u] += dp[v]

要使dp尽量小

  1. 如果是max操作,有一个儿子为第2大,一个儿子为第3大,这两个儿子都是相对于他们自己的子树而言的,当他们合并的时候,那么相当于叶子结点中,我们对5个数作比较,而传上来的只有左边第2大,右边第3大,那么就取左边第2大。即5个数中第2大的。
  2. 如果是min操作,同理,这时候也是对5个数作比较,这显然取最后的数,即第5大的。

总结:这种1~k的问题一般都转化为第几大来解决。

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
const int maxn = 3e5+5;

int a[maxn],cnt;
int dp[maxn]; // 以x为根的值为其叶子结点中第dp[x]大的值
vector<int> G[maxn];

void dfs(int u) {
	if(G[u].size() == 0) {
		dp[u] = 1;
		cnt++;
		return;
	}
	if(a[u]) dp[u] = 100000000;
	else dp[u] = 0;
	for(int i = 0; i < G[u].size(); ++i) {
		int v = G[u][i];
		dfs(v);
		if(a[u])
			dp[u] = min(dp[u],dp[v]);
		else dp[u] += dp[v];
	}
}
int main() {
	int n;
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		scanf("%d", &a[i]);
	}
	for(int i = 2; i <= n; ++i) {
		int u;
		scanf("%d", &u);
		G[u].push_back(i);
	}
	dfs(1);
	cout << cnt-dp[1]+1 << endl;
	return 0;
}
CPA-7-资产减值 摘要:本文系统梳理了资产减值会计处理规范,涵盖六大要点:1)不同资产适用的减值准则(存货、长期资产、金融资产);2)减值测试触发条件与例外情形(商誉等需年度强制测试);3)存货可变现净值计算方法及特殊考量;4)可收回金额的双重判定标准(公允价值净额与现值孰高);5)资产组认定标准及减值分摊顺序(先商誉后按比例);6)含少数股东商誉的减值测试方法(需调整包含完全商誉的账面价值)。文中通过具体案例演示了合并报表中商誉减值的计算过程,强调比较基准应包含少数股东权益对应的商誉价值。 阅读详情

相关推荐

基于python+mediapipe的手势拖动识别(无gpu)

手势点方块拖动

weixin_38029956的博客 5982

CodeForces - 1153D(树型dp + 传递名次)

题目链接:https://www.cnblogs.com/FrankChen831X/p/10706038.html 思路: 正着想不太好想,因为我们不知道要在那个位置上放坐标能得到最小的值。显然是要将树根上的信息不断向上传递, 传到根节点才能知道根节点的最终信息。但是又不知道叶子节点的信息,要我们自己去确定叶子节点的信息。 所以可以考虑将名次不断上传,得到根节点的名次,就知道了根节...

积少成多,水滴石穿 248

2025.06.20【pacbio】|PB甲基化分析结果的统计与可视化介绍

本文介绍了PacBio甲基化数据的统计分析与可视化方法。主要内容包括:1) 分析甲基化位点分布、比例及染色体分布;2) 修饰基序(Motif)的统计与热图展示;3) 全基因组和局部区域测序深度可视化;4) 使用IGV查看单个reads修饰情况。文章提供了R代码示例,涵盖柱状图、分布图、热图等多种可视化形式,并建议了差异甲基化分析等进阶方法,帮助科研人员深入挖掘甲基化数据。

2065

CodeForces 1153D : Serval and Rooted Tree 树形DP

传送门 题目描述 nnn个节点以111为根的一棵树,每个非叶子节点都有一个操作maxmaxmax或minminmin(000表示minminmin,111表示maxmaxmax),表示这个节点中的值应该分别等于其子节点中所有值的最大值或最小值。假设树上有kkk个叶节点,你可以将每个叶节点填上[1,k][1,k][1,k]的数字,且每个数字只使用一次,求根节点的最大值 分析 这个题目非常的有意思,容易想到二分那方面去 首先我们想要值最大,那么就需要子节点中大于这个节点的数尽可能的少,我们去给每个叶节点赋值为1

tlyzxc的博客 241

华为防火墙NAT避坑指南:当双ISP出口遇到服务器发布,这些细节不注意会翻车

本文深入解析华为防火墙在双ISP出口环境下服务器发布的实战配置,重点探讨no-reverse参数对Server-Map表的影响、源进源出功能的实现及线路切换时的会话保持问题。通过策略路由和智能选路技术,确保HTTP/FTP服务在多运营商链路中的高可用性,避免路径不对称和NAT映射冲突等常见陷阱。

weixin_30897233的博客 548

单片机课程设计——交通灯

单片机课程设计——交通灯一、课程设计主要内容1.1 题目1.2摘要1.3关键词二、设计要求三、设计方案四、参考电路设计4.1.1数码管的设计4.1.2对应程序4.2.1独立按键的设计4.2.2对应程序4.2.3 使用逻辑4.3.1LED模块的设置4.3.2 LED实物图4.3.3 LED显示程序五、调试要点5.1 单片机最小系统5.2 数码管模块5.3 LED模块5.4 独立按键六、总结七、成品图完整程序 一、课程设计主要内容 1.1 题目 交通灯设计 1.2摘要 近年来,随着我国国民经济的快速发展,我国机

PKPROTEUS的博客 3万+

Codeforces-1153D:Serval and Rooted Tree(DP)

D. Serval and Rooted Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Now Serval is a junior high school student in Japari Middle Scho...

Mitsuha_的博客 867

Windows10 搭建 FTP 服务器

问题: 有这么一个需求,博主需要对班级同学的信息进行收集,同学的信息是一个个的文件, 正常是每个同学将自己的信息打包压缩通过 QQ 或者邮箱方式发送给博主, 博主一个个接收这些压缩包,然后进行解压,再统一放到一个文件夹下, 但是博主觉得这样子实在是太麻烦了,如果某一个同学的信息来回变动,就需要接收很多次,更改很多次, 另外如果消息过多还会产生漏掉某个同学的信息的问题。 解决方法: 如果可以使...

assiduous_me的博客 3965

【CodeForces - 1153D】Serval and Rooted Tree(树形dp)

题干: Now Serval is a junior high school student in Japari Middle School, and he is still thrilled on math as before. As a talented boy in mathematics, he likes to play with numbers. This time, he wan...

xuanweiace的博客 804

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络

本文详细讲解了如何在RouterOS上利用网桥和VLAN功能,从零开始构建安全隔离的二层虚拟网络。通过分步实战演示,涵盖核心概念、网桥创建、PVID设置、VLAN规则配置及安全过滤,帮助网络管理员实现办公、访客与服务器网络的逻辑隔离与灵活管理,提升网络安全性。

u9v0w的博客 504

codeforces1153D. Serval and Rooted Tree 贪心

题目传送门: 戳这里 每个叶节点任意赋值,根据节点的特性求根节点的最大值 对于任意一个节点,如果使他的子节点都尽量大,那么该节点的值就是最大的。 每个节点记当前的最大值,是1-k中的第几大值,根据max和min的特性推算 #include <stdio.h> #include <climits> #include <cstring> #include &l...

突破吧!次元壁 275

rk3588 适配以太网(百兆)

虽然 RK3588 的 GMAC 控制器原生支持千兆速率(10/100/1000 Mbps),但在某些工业控制、物联网网关或成本敏感型硬件设计中,开发者会选择将其配置为 百兆以太网(Fast Ethernet) 模式。

weixin_35723192的博客 218

codeforces 1153 D. Serval and Rooted Tree(树形DP)

http://codeforces.com/contest/1153/problem/D 题意:给出一棵树,1位根节点,有k个叶子节点,叶子节点标号1-k(不重复) ,每个节点有两种操作 1 取子节点最大值,0 取子节点最小值,问根节点最大为多少。 自己做的时候想到dp这个方向,但是具体还是不知道怎么操作,看了题解还是自闭了好久,不知道自己是英语不好还是语文不好… 我的思考:题目要求最大的根结点的...

- 回忆゛ 263

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

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Codeforces1153D-Serval and Rooted Tree(树形dp)

原题链接:http://codeforces.com/problemset/problem/1153/D 题目原文: D. Serval and Rooted Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard o...

Lancetop的博客 370

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Codeforces Round #551 (Div. 2)D D. Serval and Rooted Tree(树形DP+贪心)*

题目链接:http://codeforces.com/problemset/problem/1153/D 题目大意 给定一颗树结构,每个节点上设置了 max和min标志,意味着该节点的值取其son的最大/最小值, 而叶节点上的数取值为1到叶节点总个数并且各不相同. 要求根节点值最大是多少. 题目分析 思考dp值,那么毫无疑问dp转移关系核心在min和max 函数之间,考虑到...

满月照亮的路 198

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

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

Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree (树形dp)

题目:http://codeforces.com/contest/1153/problem/D 题意:给你一棵树,每个节点有一个操作,0代表取子节点中最小的那个值,1代表取子节点中最大的值,叶子节点的话就是自己置一个值,有k个子节点,那么每个子节点的值范围 就是1-k,1-k只能用一次 思路:贪心不好取,我肯定是要排列完才知道当前的值是哪个,但是我可以知道当前节点应该是取子节点中排名第几的那...

weixin_30748995的博客 129

思维风暴篇

题目链接:https://cn.vjudge.net/contest/298926 A - Minimum Array CodeForces - 1157E 题意: 两个长度为n的数组,数组a位置不变,改变数组b的位置,构造数组c ci=(ai+bi)%n,使得数组c字典序最小。 题解: 使得数组c的字典序最小,即每次bi使得ai+bi大于n并且最接近n,因此用multiset维护数组b,lowe...

weixin_43918473的博客 692

Codeforces - 1153D - Serval and Rooted Tree

地址 https://codeforces.com/contest/1153/problem/D 原文地址 https://www.lucien.ink/archives/416 代码 https://pasteme.cn/6251 #include <bits/stdc++.h> const int maxn = int(3e5) + 7; std::vector<int&gt...

LucienShui 660

CodeForce 1153D(树上动态规划+贪心)

题目链接 题意:N个节点的树,有K个叶子节点,需要将1,2,3...K,K个数任意填入K个叶子节点,每个叶子节点填一个数,每个数只能填入一个叶子节点。每个节点上有个一个运算,运算有两种Max和Min。若运算为Max,则该节点的值等于所有儿子节点的最大值;若运算为Min,该节点的值等于所有儿子节点的最小值。问,根节点可能出现的最大值? 题解:关于树的问题,可以考虑树上动态规划的方法。 ...

madaidao的专栏 330

codeforces 115D

#include #define N 2010 using namespace std; const int MOD=1e6+3; int n; string s; int dp[N][N]; int sum[N][N]; int w[N]; int z[N]; int main(){ cin>>s; int siz=s.size(); int len=0; if(s[0]=='/'||s

流水的博客 438

[CodeForces-1153D] [Problem A](树形DP)

这类题做的不多,一开始被困扰了很久。 这道题的关键在于叶节点。最后根节点的大小只可能等于其中一个叶节点,而每个子树的父节点的值也都是从叶节点得来的,相当于一个传递过程。 因此令dp[node]叶节点中的第几大的数,则若结点是max,则当然是选取min(dp[node],dp[temp]),(例如最大的叶节点最大,所以dp[node] = 1;若结点是min,假如传到左边是第四大右边第五大,那么合并...

葉子曦 231

codeforces 1153D Serval and Rooted Tree(思维)

题意:给一个n节点的树,有k个叶子结点,给每个叶子结点附上1到k的值,每个节点可以是他所有的子节点的最大值(第二行输入为1)或者最小值(0);问根节点1的最大值是多少; 思路:数组d[i]保存节点i要浪费多少数字,(比如节点i有2个叶子结点,且节点i只能取他的子节点的最小值,则节点i只能取第二大的那个儿子,即浪费了一个数字); 所以如果节点i为取最大值,d[i]=min(d[y])(y为所有i的儿...

ayyyyy_zc的博客 230

Serval and Rooted Tree CodeForces - 1153D(树形dp)

Now Serval is a junior high school student in Japari Middle School, and he is still thrilled on math as before. As a talented boy in mathematics, he likes to play with numbers. This time, he wants to ...

starlet_kiss的博客 360

codeforces 1153D Serval and Rooted Tree

https://codeforces.com/problemset/problem/1153/D 太菜了,1800分的题没点思路。 看了别人代码,我们可以用dp来实现,dp[i]表示第i个点为根节点的子树,他需要消耗的叶子节点是多少个。 一个点需要消耗dp[i]个点,意思也就是说给他分配k个数,只有dp[i]个数会消耗实际数字个数,其他数字随便分。 那么答案就是k-dp[1]+1. 叶子...

binarycopycode 266

Serval and Rooted Tree CodeForces - 1153D 树形dp

题目链接:点击查看 题意:n个节点的树,每个节点可以得到孩子中的最大值或最小值,叶节点的权值分别为1 2 ... 叶节点数量,求节点1的最大值 题解:dp[i] 表示 i节点取最大值时,大于等于他的叶节点有几个,ans[i] 表示i节点取的最大值,当节点 i 取子代的最大值时,当然要从子代中取一个限制最少的,即大于等于他的最少的,取最小值时,就是要把所有的限制加起来了 #include&l...

还我笑颜 346
上一篇: ZOJ 4092 Robot Cleaner I (模拟判重)
下一篇: luogu P2577午餐(动态规划)
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值