2809: [Apio2012]dispatching 可并堆 左偏树
2024-09-13 18:30:51
https://www.lydsy.com/JudgeOnline/problem.php?id=2809
板子题wa了一下因为输出ans没有lld
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
const int maxn=;
int n,m;
int ch[maxn][]={},siz[maxn]={},sum[maxn]={},cnt[maxn]={},rt[maxn]={};
int fa[maxn]={},val[maxn]={},l[maxn]={};
int y[maxn],nex[maxn]={},head[maxn]={},tot=;
long long ans=;
void init(int x,int yi){
y[++tot]=yi;nex[tot]=head[x];head[x]=tot;
}
void updata(int x){
siz[x]=siz[ch[x][]]+siz[ch[x][]]+;
sum[x]=sum[ch[x][]]+sum[ch[x][]]+val[x];
}
int merge(int x,int y){
if(x==)return y;if(y==)return x;
if(val[x]<val[y])swap(x,y);
ch[x][]=merge(ch[x][],y);
if(cnt[ch[x][]]>cnt[ch[x][]])
swap(ch[x][],ch[x][]);
cnt[x]=cnt[ch[x][]]+;
updata(x);
return x;
}
void dfs(int x){
for(int i=head[x];i;i=nex[i]){
dfs(y[i]);
rt[x]=merge(rt[x],rt[y[i]]);
while(sum[rt[x]]>m){rt[x]=merge(ch[rt[x]][],ch[rt[x]][]);}
}ans=max(ans,(long long)l[x]*(long long)siz[rt[x]]);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d%d%d",&fa[i],&val[i],&l[i]);
sum[i]=val[i];rt[i]=i;siz[i]=;
if(fa[i])init(fa[i],i);
}
dfs();
printf("%lld\n",ans);
return ;
}
最新文章
- TCP/IP知识点汇总
- [游戏学习29] Win32 图像处理1
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
- Untiy 接入 移动MM 详解
- 图论(网络流):UVa 1659 - Help Little Laura
- 【好程序员笔记分享】——iOS开发之纯代码键盘退出
- 从汇编角度来理解linux下多层函数调用堆栈执行状态
- 一个IT人士的个人经历,给迷失方向的朋友(转)
- Python3 多线程的两种实现方式
- 使用Filebeat和Logstash集中归档日志
- PA 创建项目
- UVA - 11427 Expect the Expected (概率dp)
- maven启动tomcat访问报404(url中没有项目名)
- Angularjs 学习笔记
- CentOS7下用firewall-cmd控制端口与端口转发
- kubernetes发布tomcat服务,通过deployment,service布署
- MySQL库中表名忽略大小写设置的影响
- vue-cli初始化一个项目
- Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again错误解决
- LCD RGB 控制技术讲解 — 时钟篇(上)
热门文章
- ==和equals区别
- 可能是最漂亮的Spring事务管理详解
- jQuery插件之ajaxFileUpload(异步上传图片并实时显示,并解决onchange后ajaxFileUpload失效问题)
- 03 Editor plugins and IDEs 编辑器插件和 ide
- Web Api - HttpMessageHandler 学习
- 【前端vue开发架构】vue开发单页项目架构总结
- three.js是什么,能干嘛,和webgl什么关系
- Spring cloud Feign 调用端不生效
- Writing a Kernel in C++
- CF GYM100548 (相邻格子颜色不同的方案数 2014西安现场赛F题 容斥原理)