[HEOI2015]兔子与樱花 树规+贪心
鬼能想到是个贪心。明明觉得是树规啊。。又完美爆零。。
从叶子节点往上更新,能保证最优解(这块想了半天)。
证明:当你的子树上有能删的点而你不删时,可能会对子树的根节点有利,最好的情况是使子树根节点由不可删除变为可删除。但是,既然最终可能删一个点,还不如直接删现成能删的呢。。
#include #include #include #include #include #include using namespace std; #define pos(i,a,b) for(int i=(a);i<=(b);i++) #define N 2000500 int n,m; vector son[N]; int wei[N]; int ji[N]; int ans; bool tmp(const int &a,const int &b) { return wei[a] } void dp(int x) { if(ji[x]==0) return; pos(i,0,ji[x]-1) { dp(son[x][i]); } sort(son[x].begin(),son[x].end(),tmp); pos(i,0,ji[x]-1) { if(wei[x]-1+wei[son[x][i]]<=m) { ans++; wei[x]+=wei[son[x][i]]-1; } } } int main() { freopen("sakura.in","r",stdin); freopen("sakura.out","w",stdout); cin>>n>>m; pos(i,1,n) scanf("%d",&wei[i]); pos(i,1,n) { scanf("%d",&ji[i]); wei[i]+=ji[i]; pos(j,1,ji[i]) { int p; scanf("%d",&p); p++; son[i].push_back(p); } } dp(1); cout<<ans; //while(1); return 0; }
[HEOI2015]兔子与樱花 树规+贪心的更多相关文章
- 【bzoj4027】[HEOI2015]兔子与樱花 树形dp+贪心
题目描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...
- BZOJ4027: [HEOI2015]兔子与樱花 贪心
觉得是贪心,但是一开始不太肯定...然后就A了 一个点对它的父亲的贡献就是自己的权值加儿子的个数 #include<bits/stdc++.h> using namespace std; ...
- 【BZOJ 4027】 4027: [HEOI2015]兔子与樱花 (贪心)
4027: [HEOI2015]兔子与樱花 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号 ...
- [HEOI2015]兔子与樱花[贪心]
4027: [HEOI2015]兔子与樱花 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1043 Solved: 598[Submit][Stat ...
- bzoj4027 [HEOI2015]兔子与樱花 树上贪心
[HEOI2015]兔子与樱花 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1320 Solved: 762[Submit][Status][Di ...
- [HEOI2015]兔子与樱花(贪心)
[HEOI2015]兔子与樱花 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由\(n\)个树枝分叉点组成,编号从\ ...
- 【BZOJ4027】[HEOI2015]兔子与樱花 贪心
[BZOJ4027][HEOI2015]兔子与樱花 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组 ...
- BZOJ 4027: [HEOI2015]兔子与樱花 贪心
4027: [HEOI2015]兔子与樱花 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号 ...
- B20J_4027_[HEOI2015]兔子与樱花_树形DP
B20J_4027_[HEOI2015]兔子与樱花_树形DP 题意: 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编 ...
随机推荐
- 实现AOP功能的封装与配置的小框架
内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...
- 解决发http get请求的时候不成功,出现android.os.NetworkOnMainThreadException的异常
问题描述:在接游戏sdk的时候,由于游戏要求购买的时候是在主线程里面进行的,但是发http请求是不能在主线程里面发,否则就会出现android.os.NetworkOnMainThreadExcept ...
- 【技术解密】SequoiaDB分布式存储原理
分布式架构势在必行 在传统的数据库技术中,为了保证数据的安全与高性能,通常会选择高端的外置存储作为数据库的主要存储源,而本地磁盘则被视为不可靠的性能低下的一种设备.这种观念的产生,主要是由于过去本地磁 ...
- 简析Android 兼容性测试框架CTS使用
一.什么是兼容性测试? 1)为用户提供最好的用户体验,让更多高质量的APP可以顺利的运行在此平台上 2)让程序员能为此平台写更多的高质量的应用程序 3)可以更好的利用Android应用市场 二.CTS ...
- ionic 最简单的路由形式,头部固定,下面tab切换-------一个简单的单页切换起飞了
<ion-header-bar class="bar-dark" align-title="left"> <h1 class="ti ...
- mysql基础之yum安装mysql5.7.18
2017-04-19 一.实验环境 centos7_x64 由于centos7的yum源里默认使用了mariadb替代了mysql,所有我们还得先配置一下yum源.当然mariadb和mysql是兼容 ...
- 【JAVA】配置JAVA环境变量
系统变量新建,添加 变量名JAVA_HOME 变量值为C:\Java\jdk版本号 修改 Path为 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 5个为什么(five-whys)
文章非常好,我认为我们必须实施这一思想. 原文:http://venturehacks.com/articles/five-whys 翻译:http://www.tuicool.com/article ...
- ISO18000-6B和ISO18000-6C(EPC C1G2)标准的区别
ISO18000-6B和ISO18000-6C(EPC C1G2)标准的区别 日期:2009-4-2 22:10:26 目前,有两个标准可供选择.一是ISO18000-6B,另一个是已被ISO接纳为I ...
- 浅谈javascript中的call与apply方法
call方法与apply方法都是为了改变函数体内部this的指向. call方法与apply方法,这二者的作用完全一样,只是接受参数的方式不太一样. apply()方法: Function.apply ...