[FZU 1022] 三色二叉树/二叉树染色

P2585 [ZJOI2006]三色二叉树 典型的树上dp。这个问题可以归纳为树上多情况dp,也就是每一个位置的状态不止有一个,而是有多个。比如这题是红蓝绿。 阅读详情

模拟题,当然也可以叫树形dp。

数据结构作业,所以要写一棵树,为了可读性,又手残枚举了三种颜色,所以代码显得长一些,但是整个的思路还是非常的好理解的。而且变量名也尽量取得即使长一些也是很好理解的,呵呵...

亮出15CM-->

/*
	链接http://acm.fzu.edu.cn/problem.php?pid=1022
	187 ms 	2180KB
*/
/*********by JBer********/

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <climits>

/*
	树形dp,定义状态dp[i][j]表示结点i颜色为j(下面枚举对应,记0为绿色) 时可以搞到
	的最大答案
	转移:
		dp[father][0] = max{dp[leftson][1]+1, dp[leftson][2]+1};
		dp[father][1] = max{dp[leftson][0], dp[leftson][2]};
		dp[father[2] = max{dp[leftson][0], dp[leftson][1]};
			---当father只有左孩纸时
		其它情况类似
	初始化孩纸们的dp[][0] = 1, dp[][1] = dp[][2] = 0就可以搞了= = 
*/

const int COLORTYPE = 3;
enum COLOR {GREEN, RED, BLUE, NONE};

struct Node {
	Node* left, *right;
	int maxGreen[COLORTYPE];	//maxGreen[i]该结点颜色为i时可以搞出的最大绿色结点数目 
	int minGreen[COLORTYPE];	//和上面差不多= = 
	//int tag[COLORTYPE];
	Node() {
		left = right = NULL;
		memset(maxGreen, 0, sizeof(int) * COLORTYPE);
		
掌握三色二叉树:C++实现与应用 结构体是面向对象编程的基础,通过结构体的封装,我们能够隐藏节点内部的实现细节,只通过统一的接口进行操作。在实现三色二叉树时,我们需要定义并实现节点结构体,例如:// 定义节点结构体int value;char color;} Node;// 创建一个新节点if (!// 默认为红色在上述代码中,createNode函数创建了一个新节点,并初始化了节点的各个属性。在三色二叉树的实现中,这样的封装能够简化代码的编写,并有助于后续的维护和优化工作。 阅读详情

相关推荐

三色二叉树

用c++实现的三色二叉树,能够输出所有的染色方案并求出最多和最少的节点数以及当前的染色方案

二叉树节点染色问题.docx

二叉树结点染色问题,是数据结构课设的报告,代码全,文档详细

Mplus—随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)

介绍随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)的相关知识,例如模型内容、Mplus语法及对应网址等。

m0_54401011的博客 9532

GAN实战:用Python和TensorFlow打造你的第一个生成对抗网络(附完整代码)

本文是一份详细的GAN实战指南,指导读者使用Python和TensorFlow框架从零开始构建并训练一个生成对抗网络。文章涵盖了环境搭建、MNIST数据预处理、生成器与判别器模型构建、对抗性损失函数定义、训练循环编写以及关键的调试技巧,旨在帮助开发者通过动手实践深入理解GAN的核心原理与实现过程。

php55的博客 479

使用嘉立创绘制STM32F103T8C6最小系统板

使用嘉立创EDA绘制一个属于自己的STM32最小系统板

weixin_67887035的博客 1万+

ADS交叉耦合振荡器VCO相位噪声优化仿真实践

本文详细介绍了在ADS软件中搭建和优化交叉耦合VCO相位噪声的完整仿真实践。通过谐波平衡与瞬态仿真分析电路性能,并重点阐述了通过提升谐振腔Q值、优化晶体管工作点及改善尾电流源来有效降低相位噪声的具体方法,为射频电路设计提供了实用指南。

weixin_29235923的博客 630

CListCtrl控件的自绘操作

1、CListCtrl控件 :OwnerDraw Fixed = True,创建一个CListCtrl类的派生类CMyListCtrl,同时创建一个CMyListCtrl控件类型变量:CMyListCtrl m_cList;。 CListCtrl控件的自绘主要是CMyListCtrl类中重写DrawItem虚函数。 流程: 1.主对话框中CListCtrl的一些初始化操作: BOOL

小米的修行之路 3559

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 145

Python爬虫逆向案例:某云片滑块验证码分析-滑动验证码

今天我们看个滑块。

2201_76125393的博客 1034

操作系统实验一到实验九合集(哈工大李治军)

操作系统实验一到实验九合集(哈工大李治军) 有详细代码及注释,程序已在本地测试,均能跑通

leoabcd12的博客 5万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: [SDUSTOJ 1450]捡石子游戏
下一篇: [toj 1144] Tree Recovery
bit_line
博客等级 码龄12年 33粉丝 150原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值