bzoj2060[USACO2010,Nov]Visiting Cows拜访奶牛
题目链接: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拜访奶牛相关推荐
- 【bzoj2060】[Usaco2010 Nov]Visiting Cows拜访奶牛 树形dp
题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...
- [Usaco2010 Nov]Visiting Cows
题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...
- bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料*
bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料 题意: 约翰开车来到镇上,他要带K吨饲料回家.如果他的车上有X吨饲料,每公里就要花费X^2元,开车D公里就需要D* X^ ...
- 【BZOJ3314】 [Usaco2013 Nov]Crowded Cows 单调队列
第一次写单调队列太垃圾... 左右各扫一遍即可. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstrin ...
- bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP: f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数: 所以 ...
- USACO Training Section 5.1 Fencing the Cows 圈奶牛(凸包)
夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏.他建造的围栏必须包括他的奶牛喜欢吃草的所有地点.对于给出的这些地点的坐标,计算最短的能够围住这些点的围栏的长度. 输入 输入数据的第一行包括一个 ...
- [DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料
首先我想吐槽的是题目并没有表明数据范围... 这个题目 DP方程并不难表示. dp[i][j]表示前i个地点携带了j个货物的最小花费 dp[i][j] = dp[i-1][k] + (j-k) * c ...
- bzoj2058: [Usaco2010 Nov]Cow Photographs(逆序对)
题目大意:给出n个数的序列,每次可以交换相邻的两个数,问把序列变成编号i在编号i+1左边,编号1在编号n右边(一个环)最少需要多少步.如:35421最少交换两次变为34512. 一开始看到这题,只会O ...
- BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料
数轴上n<=500个站可以买东西,每个站位置Xi,库存Fi,价格Ci,运东西价格是当前运载重量的平方乘距离,求买K<=10000个东西到达点E的最小代价. f[i,j]--到第i站不买第i ...
最新文章
- 【算法学习笔记】08.数据结构基础 二叉树初步练习1
- iframe内联元素有白边原因_Selenium无法定位元素的几种解决方案
- ubuntu 安装SSH并设置免密码登录
- 关于windows对话框
- python代理爬取存入csv文件
- Demo:基于 Flink SQL 构建流式应用
- mysql 1067 42000_MySQL:ERROR 1067 (42000): Invalid default value for 'end_time'
- dw网页制作入学教程_简单的手机网页制作教程
- 人生致命的八个经典问题
- 模式匹配算法----KMP算法以及next数组的解法
- sqlalchemy query
- python怎么写微分方程_python微分方程
- python从入门到实践答案博客园_《Python从入门到实践》--第八章 函数 课后练习4...
- 计算机教学考核方案,计算机专业技能课教学目标考核方案_图文.pdf
- Android广告图片轮播控件banner
- jzoj 4813. 【NOIP2016提高A组五校联考2】running
- balsamiq mockups 3.0破解教程
- 计算机机房装修效果图,机房装修施工流程是什么? 机房装修效果图
- 前端html-常用分割线
- Nvidia AGX Xavier MAX9286 GMSL 载板
热门文章
- Python模块——_winreg操作注册表
- linux下tree命令详解
- c/c++面试试题(三)
- 解决去除“请输入有效值。两个最接近的有效值分别为1和2“提示
- [react] 在React中你有遇到过安全问题吗?怎么解决?
- React开发(149):ant design控制是否必填
- 前端学习(3298):effect的练习
- Taro+react开发(11)--不能加分号
- 前端学习(2953):idea里面使用vue插件
- [html] 页面上如何显示特殊字符?