当前位置: 首页 > news >正文

《P2585 [ZJOI2006] 三色二叉树》

题目描述

一棵二叉树可以按照如下规则表示成一个由 0、1、2 组成的字符序列,我们称之为“二叉树序列 S”:

S=⎩⎨⎧​01S1​2S1​S2​​表示该树没有子节点表示该树有一个节点,S1​为其子树的二叉树序列表示该树有两个子节点,S1​和S2​分别表示其两个子树的二叉树序列​

例如,下图所表示的二叉树可以用二叉树序列 S=21200110 来表示。

haha.png

你的任务是要对一棵二叉树的节点进行染色。每个节点可以被染成红色、绿色或蓝色。并且,一个节点与其子节点的颜色必须不同,如果该节点有两个子节点,那么这两个子节点的颜色也必须不同。给定一颗二叉树的二叉树序列,请求出这棵树中最多和最少有多少个点能够被染成绿色。

输入格式

输入只有一行一个字符串 s,表示二叉树序列。

输出格式

输出只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色。

输入输出样例

输入 #1复制

1122002010

输出 #1复制

5 2

说明/提示

数据规模与约定

对于全部的测试点,保证 1≤∣s∣≤5×105,s 中只含字符 0 1 2

代码实现:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int n=0,r=1,y=2,w=3;struct nd{int c[3];};nd t[500101];
int mx[500101][4],mn[500101][4];
char s[500101];
int it=0;void dp(int x){mx[x][r]=0;mx[x][y]=0;mx[x][w]=1;mn[x][r]=0;mn[x][y]=0;mn[x][w]=1;for(int i=1;i<=2;i++)if(t[x].c[i])dp(t[x].c[i]);int l=t[x].c[1],rc=t[x].c[2];mx[x][w]+=max(mx[l][r]+mx[rc][y],mx[rc][r]+mx[l][y]);mx[x][r]+=max(mx[l][w]+mx[rc][y],mx[rc][w]+mx[l][y]);mx[x][y]+=max(mx[l][w]+mx[rc][r],mx[rc][w]+mx[l][r]);mn[x][w]+=min(mn[l][r]+mn[rc][y],mn[rc][r]+mn[l][y]);mn[x][r]+=min(mn[l][w]+mn[rc][y],mn[rc][w]+mn[l][y]);mn[x][y]+=min(mn[l][w]+mn[rc][r],mn[rc][w]+mn[l][r]);
}void mk(){int tmp=++it;if(s[tmp]=='1'){t[tmp].c[1]=it+1;mk();return;}if(s[tmp]=='2'){t[tmp].c[1]=it+1;mk();t[tmp].c[2]=it+1;mk();return;}
}int main(){scanf("%s",s+1);mk();dp(1);printf("%d ",max(max(mx[1][r],mx[1][y]),mx[1][w]));printf("%d ",min(min(mn[1][r],mn[1][y]),mn[1][w]));return 0;
}

http://www.dtcms.com/a/574256.html

相关文章:

  • 无需人类标注!Meta提出SPICE:让AI在文档语料库中自我对弈,推理能力持续进化
  • 手机网站制作套餐查企业不要钱的软件
  • 学做吃的网站有哪些php 网站开发流程
  • 金仓数据库提出“三低一平”的迁移理念
  • 网站建设方案书备案网店设计流程图
  • 带地板翻转的网站怎么做网站开发需求评估
  • 免费客户管理系统选型攻略:功能、体验与扩展性
  • 建立公司网站的申请资料查询网站建设
  • wordpress去除首页上海网站关键词优化服务
  • SVD分解后的各个矩阵的深层理解
  • 【ZYNQ杂记】Debug模式下可以运行的程序但固化后运行卡死
  • Spring Boot 响应拦截器(Jackson)实现时间戳自动添加
  • 网站开发与服务合同wordpress 商城系统
  • 郑州企业网站怎么优化保障性租赁住房管理平台
  • 系列文章<十>(从LED显示屏的低灰跳灰(线性度不好)问题问题问题到手机影像):从LED冬奥会、奥运会及春晚等大屏,到手机小屏,快来挖一挖里面都有什么
  • 自动化测试-pytest框架-进阶
  • 学习做网站的网站wordpress 教程 插件
  • (2)pytest+Selenium自动化测试-环境准备
  • 【项目】小型支付商城 MVC/DDD
  • uni-app开发app移动端使用ucharts自定义标签栏Tooltip
  • 《uni-app跨平台开发完全指南》- 03 - Vue.js基础入门
  • uniapp中的静态资源文件,如图片等文件,h5端设置本地与生产测试环境的区别,本地不加前缀,生产测试添加前缀,h5端的已进行测试可行,非h5的未进行测试
  • uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
  • 云南微网站搭建wordpress插件安装不
  • 汽车行业网站设计chrome google
  • 好用的云电脑!手机怎么用UU远程云电脑玩电脑游戏?
  • 网站开发安装网站原型图软件
  • 坑#Spring Cloud Gateway#DataBufferLimitException
  • 15年做哪些网站能致富网页升级访问紧急通知狼
  • ping: baidu.com: 域名解析暂时失败