当前位置: 首页 > article >正文

P10641 BZOJ3252 攻略

      ~~~~~      P10641 BZOJ3252 攻略       ~~~~~      总题单链接

讲解

      ~~~~~      发现可以贪心,每次选择一条权值最大的路径,记录贡献后将路径上的点权设为 0 0 0

      ~~~~~      又发现其实选择最大路径的过程就是找一条长链使得链上的权值之和最大,所以用长链剖分。

代码

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

ll n,Q,cnt;
vector<ll>eg[200005],v;
ll a[200005],vis[200005];
ll len[200005],son[200005];

void dfs_build(ll p){
	for(ll v:eg[p]){
		dfs_build(v);
		if(len[son[p]]<len[v])son[p]=v;
	}
	len[p]=len[son[p]]+a[p];
}

signed main(){
	ios::sync_with_stdio(false);
	
	cin>>n>>Q;
	for(ll i=1;i<=n;i++)cin>>a[i];
	for(ll i=1;i<n;i++){
		ll x,y;cin>>x>>y;
		eg[x].push_back(y);
	}
	
	dfs_build(1);
	
	for(ll i=1;i<=n;i++)vis[son[i]]=1;
	for(ll i=1;i<=n;i++)if(!vis[i])v.push_back(len[i]);
	sort(v.begin(),v.end());
	ll sum=0;
	for(ll i=v.size()-1;i>=v.size()-Q;i--)
		sum+=v[i];
	cout<<sum;
	
	return 0;
}

http://www.kler.cn/a/281786.html

相关文章:

  • android开发中使用WebView性能优化攻略
  • python从入门到精通:文件操作
  • 企业对个人信息数据的保护 | CCRC-PIPP​ 个人信息保护专业人员
  • uniapp+vue3+setup返回上一页传参
  • cthub-ssrf通关攻略
  • 【有来开源组织】开发规范手册
  • 【系统架构设计师-2016年】综合知识-答案及详解
  • Runtime:源码解析Golang 的map实现原理
  • 《软件工程导论》(第6版)第1章 软件工程学概述 复习笔记
  • 【Qt】QLCDNumber | QProgressBar | QCalendarWidget
  • GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 挑战控制工程的新领域
  • docker——compose容器编排!!!
  • RPC(Remote Procedure Call,远程过程调用)实现跨进程级别调用的原理
  • 数分基础(03-3)客户特征分析--Tableau
  • Java nio Pipe 结合 Select
  • 爆改YOLOv8|利用全新的聚焦式线性注意力模块Focused Linear Attention 改进yolov8(v1)
  • AI的未来已来:GPT-4商业应用带来的无限可能
  • 炫我云渲染系统搭载倍联德液冷工作站,亮相IOTE 2024国际物联网展
  • 8.29T2 国际象棋(构造:棋盘拆分成小方阵)
  • Phenaki——文本描述生成动画或视频,动态视频序列。