【BZOJ1864】三色二叉树(动态规划)
【BZOJ1864】三色二叉树(动态规划)
题面
题解
首先把树给构出来。
设\(f[i][0/1]\)表示当前节点\(i\),是否是绿色节点的子树中最大/最小的绿色节点的个数和。
转移很显然。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
#define ll long long
#define MAX 500500
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
char ch[MAX];
struct Line{int v,next;}e[MAX<<1];
int h[MAX],cnt=1,son[MAX];
inline void Add(int u,int v){e[cnt]=(Line){v,h[u]};h[u]=cnt++;++son[u];}
int pos=1,tot;
void Build(int nw)
{
if(ch[pos]=='0')return;
if(ch[pos]=='1')
{
++pos;Add(nw,++tot);Build(tot);
return;
}
else
{
++pos;Add(nw,++tot);Build(tot);
++pos;Add(nw,++tot);Build(tot);
return;
}
}
int f[MAX][2];
void dfs1(int u)
{
if(!son[u])f[u][0]=0,f[u][1]=1;
else if(son[u]==1)
{
int v=e[h[u]].v;
dfs1(v);
f[u][0]=max(f[v][0],f[v][1]);
f[u][1]=f[v][0]+1;
}
else
{
int v1=e[h[u]].v,v2=e[e[h[u]].next].v;
dfs1(v1);dfs1(v2);
f[u][0]=max(f[v1][0]+f[v2][1],f[v1][1]+f[v2][0]);
f[u][1]=f[v1][0]+f[v2][0]+1;
}
}
void dfs2(int u)
{
if(!son[u])f[u][0]=0,f[u][1]=1;
else if(son[u]==1)
{
int v=e[h[u]].v;
dfs2(v);
f[u][0]=min(f[v][0],f[v][1]);
f[u][1]=f[v][0]+1;
}
else
{
int v1=e[h[u]].v,v2=e[e[h[u]].next].v;
dfs2(v1);dfs2(v2);
f[u][0]=min(f[v1][0]+f[v2][1],f[v1][1]+f[v2][0]);
f[u][1]=f[v1][0]+f[v2][0]+1;
}
}
int main()
{
scanf("%s",ch+1);
Build(tot=1);
memset(f,0,sizeof(f));dfs1(1);printf("%d ",max(f[1][0],f[1][1]));
memset(f,0,sizeof(f));dfs2(1);printf("%d\n",min(f[1][0],f[1][1]));
return 0;
}
【BZOJ1864】三色二叉树(动态规划)的更多相关文章
- bzoj1864 三色二叉树
Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 记录每个节点染 ...
- BZOJ1864[ZJOI2006]三色二叉树[树形DP]
1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 773 Solved: 548[Submit][Status] ...
- 【BZOJ-1864】三色二叉树 树形DP
1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 659 Solved: 469[Submit][Status] ...
- 【BZOJ1864】[Zjoi2006]三色二叉树 树形DP
1864: [Zjoi2006]三色二叉树 Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最 ...
- bzoj千题计划212:bzoj1864: [Zjoi2006]三色二叉树
http://www.lydsy.com/JudgeOnline/problem.php?id=1864 #include<cstdio> #include<cstring> ...
- 嘴巴题5 「BZOJ1864」[ZJOI2006] 三色二叉树
1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1195 Solved: 882 [Submit][Status ...
- BZOJ 1864: [Zjoi2006]三色二叉树( 树形dp )
难得的ZJOI水题...DFS一遍就行了... ----------------------------------------------------------------------- #inc ...
- BZOJ_1864_[Zjoi2006]三色二叉树_树形DP
BZOJ_1864_[Zjoi2006]三色二叉树_树形DP 题意: 分析:递归建树,然后DP,从子节点转移. 注意到红色和蓝色没有区别,因为我们可以将红蓝互换而方案是相同的.这样的话我们只需要知道当 ...
- 【BZOJ】1864: [Zjoi2006]三色二叉树
1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1295 Solved: 961[Submit][Status ...
随机推荐
- HTML学习1-Dom之事件绑定
事件: 1.注册事件 a. <div onxxxx=””></div> b. document .onxxxx= function() //找到这个标签 2.this,触发 ...
- slotting filter笔记
1.slot filling是为了让用户的意图转化为明确的指令而补全信息的过程. 2.准入条件 从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断 ...
- Sublime Text Build System——编译运行Java
今天Google如何在ST中编译运行Java的时候,无意中发现了一个更好的方法. 其实,在ST中是可以编译Java的,但是运行不了,因为没有配置运行命令.那么一般的配置方法都是如下的: http:// ...
- springboot通过http访问——修改访问的端口号
文章转载来于:https://blog.csdn.net/zknxx/article/details/53433592 有时候我们可能需要启动不止一个SpringBoot,而SpringBoot默认的 ...
- 实践lnmpde 的安装
1.先安装apache, yum install httpd 2.安装MySQL rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 ...
- Microsoft Visual Studio 2013 的安装及单元测试
题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...
- Notes of Daily Scrum Meeting(11.10)
Notes of Daily Scrum Meeting(11.10) 今天是周一,虽然仍然在假期里,但是我们仍然要继续我们团队的开发工作了,分工大家已然都很明确,所以接下来 就是认真投入,把自己负责 ...
- Daily Scrumming* 2015.10.25(Day 6)
一.总体情况总结 1.UI今日总结:初步设计了社团详情界面 2.后端今日总结:讨论并设计数据库,表内容,属性和相互联系等,并在rails的activeRecord和activeModel中实现,同时设 ...
- MathExam任务一
小学一二年级数学计算题 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 35 • Es ...
- 【贪心算法】POJ-2393 简单贪心水题
一.题目 Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over ...