Jzoj5455【NOIP2017提高A组冲刺11.6】拆网线

NOIP基础知识分类全解 NOIP复习必备,很好用的,覆盖面广。 立即下载

企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。
所以他们想知道,最少需要保留多少根网线?

今天考场上又zz了,只切了第二题qwq

第一题打了一个很显然不对的贪心,35pts   QwQ

后来一交流发现:树上二分图匹配啊!

怎么明明想到了要尽量多选没有公共端点的边但是没有想到匹配啊(这样下去我可能今年就要退役了)

好了正题开始

上面已经说出正解了,但是很显然我们不能真的去跑匈牙利

设f[i][0]表示在x的子树中,x没有被选择的情况下最多有多少对点是两两配对的

f[i][1]表示x被选择的情况,显然f[i][0]=Σf[v][1] ,f[i][1]=max{f[i][0]-f[v][1]+f[v][0]+2} {v∈son[i]}

让后,我们令ans=max(f[1][0],f[1][1])

若2ans>=k 那么答案就是(k+1)/2

否则就是ans+(k-2ans)(显然没有两两配对的点,可以通过加一条边来增加一个点(一换一))

#include<vector>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,k,f[100010][2],ans=0; 
vector<int> G[100010];
void dp(int x,int p){
	f[x][0]=f[x][1]=0;
	for(int v,i=0,z=G[x].size();i<z;++i)
		if((v=G[x][i])!=p){
			dp(v,x);
			f[x][0]+=f[v][1];
		}
	for(int v,i=0,z=G[x].size();i<z;++i)
		if((v=G[x][i])!=p) f[x][1]=max(f[x][1],f[x][0]-f[v][1]+f[v][0]+1);
}
int vvv(){
	G[1].clear();
	scanf("%d%d",&n,&k);
	for(int x,i=2;i<=n;++i){
		G[i].clear();
		scanf("%d",&x);
		G[x].push_back(i);
	}
	dp(1,0); ans=max(f[1][0],f[1][1]);
	if(ans*2>=k) printf("%d\n",k+1>>1);
	else printf("%d\n",ans+(k-ans*2));
}
int main(){
	freopen("tree.in","r",stdin);
	freopen("tree.out","w",stdout);
	int T; for(scanf("%d",&T);T--;vvv());
}

爆炸特效unity 支持unity 的爆炸特效,可以在各种环境中使用,效果非常棒 立即下载

相关推荐

NOIP基础算法综合-91页 PPT PDF版.pdf

NOIP基础算法综合-91页 PPT PDF版.pdf

【gdgzezoi】Problem C: 拆网线

【问题描述】 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线? 【输入格式】 第一行...

Brute♂force 445

windows打雷游戏代码

这是一个很好的windows打雷游戏代码

[NOIP2017模拟]拆网线

题目描述 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有 K 只企鹅要上网和别人联机游戏,所以他们需要把这 K 只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。所以他们想知道,最少需要保留多少根网线?输入格式 第一行一

g19zwk的博客 1124

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3347

JZOJ 5455. 【NOIP2017提高A组冲刺11.6】拆网线

JZOJ 5455. 【NOIP2017提高A组冲刺11.6】拆网线 Description企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。

Felix-Lee的博客 473

【算力网络】算力知识

尽管算力这个词在近年来很“火”,但其背后的含义,却很少有人真正了解

qq_42809645的博客 1万+

jzoj_5455. 【NOIP2017提高A组冲刺11.6】拆网线

Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线...

peter_zhu01的博客 291

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 349

【Python基础】FastAPI 从入门到项目实战操作详解

【Python基础】FastAPI从入门到使用实战操作详解

congge_study的博客 435

JZOJ5455. 【NOIP2017提高A组冲刺11.6】拆网线

Description企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线?Input第一

lijf2001的博客 590

C#调用企业微信JS-Sdk实现扫描二维码

企业微信JS-SDK是企业微信面向网页开发者提供的基于企业微信内的网页开发工具包。通过使用企业微信JS-SDK,网页开发者可借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验提示:生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是H5应用调用企业微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。

清浅 937

JZOJ 5455【NOIP2017提高A组冲刺11.6】拆网线

目录: 题目: 分析: 代码: 题目: 传送门 分析: 设f[i][0]f[i][0]f[i][0]表示在xxx的子树中,xxx没有被选择的情况下最多有多少对点是两两配对的 f[i][1]f[i][1]f[i][1]表示xxx被选择的情况 显然: f[i][0]=Σf[v][1]f[i][0]=Σf[v][1]f[i][0]=Σf[v][1],f[i][...

qq_35786326的博客 168

YOLOv12改进前必看 - YAML模型配置文件详细解读(再也不用担心通道数不匹配) 附网络结构图

YOLOv12的模型配置文件在中,里面包含yolov12的以及的不同大小的模型,本文将详细介绍一下YOLOv12模型文件中各参数的含义。

Limiiiing的博客 3275

jre9下载 jdk9

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

[JZOJ5455]【NOIP2017提高A组冲刺11.6】拆网线

Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。所以他们想知道,最少需要保留多少根网线? ...

weixin_30807779的博客 145

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[NOIP模拟][拓扑排序][贪心]拆网线

题目描述 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有 K 只企鹅要上网和别人联机游戏,所以他们需要把这 K 只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线? 输入格式:

千古的博客 533

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

nssl1149,jzoj5455-拆网线【贪心】

正题 jzoj题目链接:https://jzoj.net/senior/#main/show/5455 题目大意 一棵树中选k个点要求留下最小边使每个点都至少有一个点连接。 解题思路 我们先不考虑树的限制,那么k个点满足要求的话最小边数为(k+1)/2(k+1)/2(k+1)/2,然后我们考虑一颗树上有多少个这样的点对满足。也就是选择最多的边数使得每条边两边的点都不重复。...

QuantAsk 449

备战NOIP——模板复习10

这里只有模板,并不作讲解,仅为路过的各位做一个参考以及用做自己复习的资料,转载注明出处。 最短路算法 Dijkstra + 堆优化 /*Copyright: Copyright (c) 2018 *Created on 2018-11-1 *Author: 十甫 *Version 1.0 *Title: Dijkstra + heap *Time: 10 mins */ #inclu...

十甫-Blogs 201
上一篇: Jzoj5452【NOIP2017提高A组冲刺11.5】轰炸
下一篇: Jzoj5456【NOIP2017提高A组冲刺11.6】奇怪的队列
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值