码迷,mamicode.com
首页 > 其他好文 > 详细

【bzoj4027】 [HEOI2015]兔子与樱花

时间:2016-07-12 17:23:02      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

自底向上贪心。

每次给儿子排序,贪心地从小到大删,直到不能删。

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
using namespace std;

#define N 2000010

int n,m;

struct edge
{
	int to,next;
}e[N];
int head[N<<1];
int cnt;

int a[N],c[N];

int ans;
int x,xx;

void link(int u,int v)
{
	e[++cnt]=(edge){v,head[u]};
	head[u]=cnt;
}

void dfs(int x)
{
	for (int i=head[x];i;i=e[i].next)
		dfs(e[i].to);
	cnt=0;
	for (int i=head[x];i;i=e[i].next)
		c[++cnt]=a[e[i].to];
	sort(c+1,c+cnt+1);
	for (int i=1;i<=cnt;i++)
	{
		if (a[x]+c[i]-1>m)
			break;
		a[x]+=(c[i]-1),ans++;
	}
}

int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for (int i=1;i<=n;i++)
	{
		scanf("%d",&x);
		a[i]+=x;
		for (int j=1;j<=x;j++)
			scanf("%d",&xx),link(i,xx+1);
	}
	dfs(1);
	printf("%d\n",ans);
	return 0;
}

  

【bzoj4027】 [HEOI2015]兔子与樱花

标签:

原文地址:http://www.cnblogs.com/yangjiyuan/p/5664115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!