[bzoj1369][Baltic2003]Gem_树形dp_结论题
Gem bzoj-1369 Baltic-2003
题目大意:给你一棵树,让你往节点上添自然数,使得任意相邻节点的数不同且使得权值最小。
注释:n为结点个数,$1\le n\le 10^3$。
想法:呵呵,学长一直在骂结论题,我一直觉得没啥.. ...
知道tm碰见这玩意儿,卧槽?!
树上相邻节点不同色,颜色个数最小值至多为logn。
最后,附上丑陋的代码... ...
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#define ll long long
#define inf 1000000000
using namespace std;
ll read()
{
ll x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int n,cnt;
int last[10005],f[10005][25];
struct edge
{
int to,next;
}e[20005];
void insert(int u,int v)
{
e[++cnt].to=v;e[cnt].next=last[u];last[u]=cnt;
e[++cnt].to=u;e[cnt].next=last[v];last[v]=cnt;
}
void dp(int x,int fa)
{
for(int j=1;j<=20;j++)
f[x][j]=j;
for(int i=last[x];i;i=e[i].next)
if(e[i].to!=fa)
dp(e[i].to,x);
for(int j=1;j<=20;j++)
{
for(int i=last[x];i;i=e[i].next)
if(e[i].to!=fa)
{
int mn=inf;
for(int k=1;k<=20;k++)
if(j!=k)mn=min(mn,f[e[i].to][k]);
f[x][j]+=mn;
}
}
}
int main()
{
n=read();
for(int i=1;i<n;i++)
{
int u=read(),v=read();
insert(u,v);
}
dp(1,0);
int ans=inf;
for(int i=1;i<=20;i++)
ans=min(ans,f[1][i]);
printf("%d\n",ans);
return 0;
}
小结:多做一些结论题吧... ...
[bzoj1369][Baltic2003]Gem_树形dp_结论题的更多相关文章
- BZOJ_1369_[Baltic2003]Gem_树形DP
BZOJ_1369_[Baltic2003]Gem_树形DP Description 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值, ...
- BZOJ1369:[Baltic2003]Gem(树形DP)
Description 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小. Input 先给出一个 ...
- [bzoj2443][Usaco2011 Open]奇数度数_树形dp_生成树_并查集
奇数度数 bzoj-2443 Usaco-2011 Open 题目大意:给定一个n个点m条便有向图,问是否有一种选出一些边的方式使得所有点的度数都是奇数. 注释:$1\le n \le 5\cdot ...
- [codevs5578][咸鱼]tarjan/结论题
5578 咸鱼 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都 ...
- [bzoj1369] [Baltic2003]Gem
结论题...一棵树里用到的颜色数不超过logn.. f[i][j]表示以i为根的子树里,i的颜色是j的方案数. g[i][j]表示max{f[i][k]},(k!=j #include<cstd ...
- BZOJ_1367_[Baltic2004]sequence_结论题+可并堆
BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...
- [BZOJ3609][Heoi2014]人人尽说江南好 结论题
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要 ...
- 【uoj#282】长度测量鸡 结论题
题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...
- 【uoj#175】新年的网警 结论题+Hash
题目描述 给出一张 $n$ 个点 $m$ 条边的无向连通图,每条边的边权为1.对于每个点 $i$ ,问是否存在另一个点 $j$ ,使得对于任意一个不为 $i$ 或 $j$ 的点 $k$ ,$i$ 到 ...
随机推荐
- 2018GDOI记
今年居然是主场.就没有游了. 向死而生.发现最近生活就是印证了我blog的那句话:就算是修罗,也会被生活玩弄于股掌间 想了很久,还是决定要继续写,然后公诸于众. ------------------- ...
- Android定时任务
前言 我们在平常的开发中可能会遇到一些需求,比如说,每日定时提醒,定时更新数据等等,反正就是周期性任务,碰到这类需求,我们就可以叫做定时任务.以前我们可以通过使用线程Handler来实现,现在既然是在 ...
- openStack enscaption
- git的使用(转)
git 配置文件 git的配置文件位置针对所有用户:/etc/gitconfig针对当前用户: -/.gitconfig 查看配置的方法 git config --list 修改配置的方法 git c ...
- XHprof 使用 (转)
原文地址:http://blog.csdn.net/maitiandaozi/article/details/8896293 XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟 ...
- 基于移动Web的视图引擎实现
第一步:移动视图引擎实现 using System.Web.Mvc; /// <summary> /// 移动版View引擎 /// </summary> public cla ...
- python 4:str.lstrip()、str.rstrip()、str.strip()(分别去除首空格,尾空格,首尾空格;不改变原有变量,除非赋给)
name = " Hello,World! Hello,Python! " print(name + "检测行末空格的") print(name.lstrip( ...
- html body中的标签
HTML中的标签有两类 一.字体标签 字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup> ...
- dotnet core 发布配置(测试数据库和正式数据库自动切换)
一.起源 在进行项目开发时,常常要求开发环境,测试环境及正式环境的分离,并且不同环境运行的参数都是不一样的,比如监听地址,数据库连接信息等.当然我们把配置信息保存到一个文件中,每次发布的时候,可以先修 ...
- js基础---数组方法
数组数据的排序及去重 sort无形参的排序方式 arr1=[2,12,3,15]; var a=arr1.sort();console.log(arr1);console.log(a);//排序会改变 ...