bzoj1864,懒得复制,戳我戳我

Solution:

  • 其实想出来了\(dp\)方程推出来了最大值,一直没想到推最小值
  • \(dp[i][1/0]\)表示\(i\)号节点的子树中的绿色染色最大值,\(1\)表示该节点染色,\(0\)表示该节点不染色

\[dp[i][1]=dp[ls][0]+dp[rs][0]+1
\]

\[dp[i][0]=max(dp[ls][1]+dp[rs][0],dp[rs][1]+dp[ls][0])
\]

  • \(f[i][1/0]\)表示存的最小值,状态同上

\[f[i][1]=f[ls][0]+f[rs][0]+1
\]

\[f[i][0]=min(f[ls][1]+f[rs][0],f[rs][1]+f[ls][0])
\]

傻逼dp题卡了我好久

Code:

//It is coded by Ning_Mew on 4.20
#include<bits/stdc++.h>
#define ls(x) node[x].ch[0]
#define rs(x) node[x].ch[1]
using namespace std; const int maxn=5e5+7; int n,cnt=1,pl=-1;
struct Node{
int ch[2];
//Node(){ch[0]=-1;ch[1]=-1;}
}node[maxn];
int dp[maxn][2],f[maxn][2];
string s; void build(int u){
pl++;
if(s[pl]=='0'){dp[u][0]=0;dp[u][1]=1;f[u][0]=0;f[u][1]=1;return;}
if(s[pl]=='2'){
cnt++;node[u].ch[0]=cnt;build(cnt);
cnt++;node[u].ch[1]=cnt;build(cnt);
dp[u][1]=dp[ ls(u) ][0]+dp[ rs(u) ][0]+1;
dp[u][0]=max(dp[ ls(u) ][0]+dp[ rs(u) ][1],dp[ rs(u) ][0]+dp[ ls(u) ][1]);
f[u][1]=f[ ls(u) ][0]+f[ rs(u) ][0]+1;
f[u][0]=min(f[ ls(u) ][0]+f[ rs(u) ][1],f[ ls(u) ][1]+f[ rs(u) ][0]);
}
if(s[pl]=='1'){
cnt++;node[u].ch[0]=cnt;build(cnt);
dp[u][0]=dp[ ls(u) ][1];
dp[u][1]=dp[ ls(u) ][0]+1;
f[u][0]=f[ ls(u) ][0];
f[u][1]=f[ ls(u) ][0]+1;
}return;
}
int main(){
cin>>s;
build(1);
/*for(int i=1;i<=cnt;i++){
cout<<i<<' '<<node[i].ch[0]<<' '<<node[i].ch[1]<<endl;
}*/
printf("%d %d\n",max(dp[1][0],dp[1][1]),min(f[1][0],f[1][1]));
return 0;
}

【题解】 bzoj1864: [Zjoi2006]三色二叉树 (动态规划)的更多相关文章

  1. BZOJ1864[ZJOI2006]三色二叉树[树形DP]

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 773  Solved: 548[Submit][Status] ...

  2. bzoj千题计划212:bzoj1864: [Zjoi2006]三色二叉树

    http://www.lydsy.com/JudgeOnline/problem.php?id=1864 #include<cstdio> #include<cstring> ...

  3. bzoj1864 [Zjoi2006]三色二叉树

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. Sample ...

  4. 【BZOJ1864】三色二叉树(动态规划)

    [BZOJ1864]三色二叉树(动态规划) 题面 BZOJ 题解 首先把树给构出来. 设\(f[i][0/1]\)表示当前节点\(i\),是否是绿色节点的子树中最大/最小的绿色节点的个数和. 转移很显 ...

  5. 【BZOJ1864】[Zjoi2006]三色二叉树 树形DP

    1864: [Zjoi2006]三色二叉树 Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最 ...

  6. 嘴巴题5 「BZOJ1864」[ZJOI2006] 三色二叉树

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1195 Solved: 882 [Submit][Status ...

  7. 【BZOJ-1864】三色二叉树 树形DP

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 659  Solved: 469[Submit][Status] ...

  8. BZOJ 1864: [Zjoi2006]三色二叉树( 树形dp )

    难得的ZJOI水题...DFS一遍就行了... ----------------------------------------------------------------------- #inc ...

  9. BZOJ_1864_[Zjoi2006]三色二叉树_树形DP

    BZOJ_1864_[Zjoi2006]三色二叉树_树形DP 题意: 分析:递归建树,然后DP,从子节点转移. 注意到红色和蓝色没有区别,因为我们可以将红蓝互换而方案是相同的.这样的话我们只需要知道当 ...

随机推荐

  1. linux系统下php通过php_oci8扩展连接oracle数据库 Nginx

    相关版本信息: PHP Version 5.6.30 nginx version: nginx/1.10.3 Linux version 2.6.32-358.el6.x86_64 (mockbuil ...

  2. What's new in XAML of .NET 4.0( .NET 4.0中XAML的新功能 )

    原文 What's new in XAML of .NET 4.0 What's new in XAML of .NET 4.0 Easy Object References with {x:Refe ...

  3. vijos 1641 Vs Snowy

    代码: #include<set> #include<cstdio> #include<cstring> #include<iostream> #inc ...

  4. stl源码剖析 详细学习笔记 hashset hashmap

    //---------------------------15/03/26---------------------------- //hash_set { /* hash_set概述: 1:这是一个 ...

  5. 爬虫利器_you-get

    用Python做爬虫也很久了,今天分享一个轻巧的爬虫库:you-get you-get 是用 Python3写成的视频,图片,音频下载工具,堪称盗链,爬虫神器.其支持的网站,都是直接破解其算法,直接算 ...

  6. supervisor管理进程 superlance对进程状态报警

    supervisor介绍 首先,介绍一下supervisor.Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linu ...

  7. LintCode——旋转字符串

    描述:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例:对于字符串 "abcdefg"     offset=0 => "abcdefg&qu ...

  8. 复习下VLAN的知识

    转载:来自百度百科 VLAN一般指虚拟局域网 VLAN(Virtual Local Area Network)的中文名为"虚拟局域网". 虚拟局域网(VLAN)是一组逻辑上的设备和 ...

  9. 如何使用URLOS进行docker应用开发

    使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完 ...

  10. 右键添加使用Sublime打开

    网上教程大多是教你怎么改注册表,有点麻烦. 我根据教程改完之后导出来供大家使用,更方便快捷. Windows Registry Editor Version 5.00 [HKEY_CLASSES_RO ...