题目链接:bzoj上是权限题~

题目大意:

题解:

树型DP

f[i][0]表示不选i,f[i][1]表示选i。(因为很水..就不详写了)

可列出方程:

f[i][0]=sigama(max(f[y][1],f[y][0]));

f[i][1]=sigama(f[y][0]); y为i的孩子

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 51000struct node
{int x,y,next;
}a[maxn*2];int len,first[maxn];
int f[maxn][2];//0-不选自己 1-选
int mymax(int x,int y){return (x>y)?x:y;}
void ins(int x,int y)
{len++;a[len].x=x;a[len].y=y;a[len].next=first[x];first[x]=len;
}
void dp(int x,int fa)
{int f0=0,f1=0;for (int k=first[x];k!=-1;k=a[k].next){int y=a[k].y;if (y==fa) continue;dp(y,x);f1+=f[y][0];f0+=mymax(f[y][0],f[y][1]);}f[x][0]=f0;f[x][1]=1+f1;
}
int main()
{//freopen("vacation.in","r",stdin);//freopen("vacation.out","w",stdout);int n,i,x,y;scanf("%d",&n);len=0;memset(first,-1,sizeof(first));for(i=1;i<n;i++){scanf("%d%d",&x,&y);ins(x,y);ins(y,x);}dp(1,0);printf("%d\n",mymax(f[1][0],f[1][1]));return 0;
}

转载于:https://www.cnblogs.com/Euryale-Rose/p/6527853.html

bzoj2060[USACO2010,Nov]Visiting Cows拜访奶牛相关推荐

  1. 【bzoj2060】[Usaco2010 Nov]Visiting Cows拜访奶牛 树形dp

    题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...

  2. [Usaco2010 Nov]Visiting Cows

    题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...

  3. bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料*

    bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料 题意: 约翰开车来到镇上,他要带K吨饲料回家.如果他的车上有X吨饲料,每公里就要花费X^2元,开车D公里就需要D* X^ ...

  4. 【BZOJ3314】 [Usaco2013 Nov]Crowded Cows 单调队列

    第一次写单调队列太垃圾... 左右各扫一遍即可. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstrin ...

  5. bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP: f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数: 所以 ...

  6. USACO Training Section 5.1 Fencing the Cows 圈奶牛(凸包)

    夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏.他建造的围栏必须包括他的奶牛喜欢吃草的所有地点.对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度. 输入 输入数据的第一行包括一个 ...

  7. [DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料

    首先我想吐槽的是题目并没有表明数据范围... 这个题目 DP方程并不难表示. dp[i][j]表示前i个地点携带了j个货物的最小花费 dp[i][j] = dp[i-1][k] + (j-k) * c ...

  8. bzoj2058: [Usaco2010 Nov]Cow Photographs(逆序对)

    题目大意:给出n个数的序列,每次可以交换相邻的两个数,问把序列变成编号i在编号i+1左边,编号1在编号n右边(一个环)最少需要多少步.如:35421最少交换两次变为34512. 一开始看到这题,只会O ...

  9. BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料

    数轴上n<=500个站可以买东西,每个站位置Xi,库存Fi,价格Ci,运东西价格是当前运载重量的平方乘距离,求买K<=10000个东西到达点E的最小代价. f[i,j]--到第i站不买第i ...

最新文章

  1. 【算法学习笔记】08.数据结构基础 二叉树初步练习1
  2. iframe内联元素有白边原因_Selenium无法定位元素的几种解决方案
  3. ubuntu 安装SSH并设置免密码登录
  4. 关于windows对话框
  5. python代理爬取存入csv文件
  6. Demo:基于 Flink SQL 构建流式应用
  7. mysql 1067 42000_MySQL:ERROR 1067 (42000): Invalid default value for 'end_time'
  8. dw网页制作入学教程_简单的手机网页制作教程
  9. 人生致命的八个经典问题
  10. 模式匹配算法----KMP算法以及next数组的解法
  11. sqlalchemy query
  12. python怎么写微分方程_python微分方程
  13. python从入门到实践答案博客园_《Python从入门到实践》--第八章 函数 课后练习4...
  14. 计算机教学考核方案,计算机专业技能课教学目标考核方案_图文.pdf
  15. Android广告图片轮播控件banner
  16. jzoj 4813. 【NOIP2016提高A组五校联考2】running
  17. balsamiq mockups 3.0破解教程
  18. 计算机机房装修效果图,机房装修施工流程是什么? 机房装修效果图
  19. 前端html-常用分割线
  20. Nvidia AGX Xavier MAX9286 GMSL 载板

热门文章

  1. Python模块——_winreg操作注册表
  2. linux下tree命令详解
  3. c/c++面试试题(三)
  4. 解决去除“请输入有效值。两个最接近的有效值分别为1和2“提示
  5. [react] 在React中你有遇到过安全问题吗?怎么解决?
  6. React开发(149):ant design控制是否必填
  7. 前端学习(3298):effect的练习
  8. Taro+react开发(11)--不能加分号
  9. 前端学习(2953):idea里面使用vue插件
  10. [html] 页面上如何显示特殊字符?