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

【颜色平衡树 / E】

题目

思路

  • DFS暴力 60分

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
const int M = 5010;
int h[N], e[M], ne[M], idx;
int c[N], f;
int ans;
void add(int a, int b)  // 添加一条边a->b
{e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
bool check(int tmp[])
{int last = 0;for(int i = 1; i <= 5000; i++){if(!last && tmp[i]) last = tmp[i];else if(last && tmp[i]){if(last != tmp[i]) return false;last = tmp[i];}}return true;
}
void dfs(int u, int f[])
{int tmp[N] = {0};//根节点颜色算进子树tmp[c[u]] += 1;bool leaf = true;for(int i = h[u]; ~i; i = ne[i]){int j = e[i];dfs(j, tmp);leaf = false;}//判断平衡性if(leaf) ans++;else{if(check(tmp)) ans++;}//呈递颜色for(int i = 1; i <= 5000; i++)f[i] += tmp[i];
}
int main()
{int n;cin >> n;memset(h, -1, sizeof h);for(int i = 1; i <= n; i++){cin >> c[i] >> f;add(f, i);}int tmp[N] = {0};dfs(1, tmp);cout << ans;
}

相关文章:

【颜色平衡树 / E】

题目 思路 DFS暴力 60分 代码 #include <bits/stdc.h> using namespace std; const int N 5010; const int M 5010; int h[N], e[M], ne[M], idx; int c[N], f; int ans; void add(int a, int b) // 添加一条边a->b {e[idx] b, ne[idx] h[a], h[a] idx ; } …...

滑动窗口--(中篇)

将X减到0的最小操作数 给你一个整数数组 nums 和一个整数 x 。每一次操作时&#xff0c;你应当移除数组 nums 最左边或最右边的元素&#xff0c;然后从 x 中减去该元素的值。请注意&#xff0c;需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 &#xff0c;返…...

Java性能调优:实战技巧与最佳实践

引言 Java作为企业级应用开发的首选语言之一&#xff0c;其性能直接影响到系统的响应速度和用户体验。性能调优是一项复杂的工作&#xff0c;涉及多个层面的知识和技术。本文将通过具体的示例&#xff0c;探讨一些常见的性能调优技巧及最佳实践。 1. 了解你的应用程序 示例&…...

排版套料系统设计说明

先上效果图 项目地址 1.产品介绍 产品名称&#xff1a;StreamFit 智能排版套料系统 主要功能&#xff1a; 智能排版优化 功能描述&#xff1a;StreamFit 利用先进的算法技术&#xff0c;自动对各类材料&#xff08;如布料、金属板材、纸张等&#xff09;进行高效排版布局&am…...

算法修炼之路之二分查找

目录 一:三大二分介绍及模板 1.普通二分 2.查找左右边界的二分及模板 二:LeetCode OJ练习 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 一:三大二分介绍及模板 1.普通二分 这里通过一道题来引出普通二分及模板 LeetCode_704 二分查找 画图分析: 具体代…...

OpenAI预计明年将推出“代理”系统

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

每日OJ题_牛客_重排字符串_贪心_C++_Java

目录 牛客_重排字符串_贪心 题目解析 C代码 Java代码 牛客_重排字符串_贪心 重排字符串 (nowcoder.com) 描述&#xff1a; 小红拿到了一个只由小写字母组成的字符串。她准备把这个字符串重排&#xff08;只改变字母的顺序&#xff0c;不改变数量&#xff09; …...

Python 进阶部分详细整理

1. 面向对象编程&#xff08;OOP&#xff09; 面向对象编程 (OOP) 是一种通过将程序中的数据和功能封装为对象的编程范式。OOP 基于四个核心概念&#xff1a;类与对象、继承、封装与多态。 类与对象 类&#xff08;Class&#xff09;&#xff1a;类是创建对象的蓝图或模板。它…...

[ RK3566-Android11 ] 关于移植 RK628F 驱动以及后HDMI-IN图像延迟/无声等问题

问题描述 由前一篇文章https://blog.csdn.net/jay547063443/article/details/142059700?fromshareblogdetail&sharetypeblogdetail&sharerId142059700&sharereferPC&sharesourcejay547063443&sharefromfrom_link&#xff0c;移植HDMI-IN部分驱动后出现&a…...

【黑马点评】 使用RabbitMQ实现消息队列——2.使用RabbitMQ监听秒杀下单

2 使用RabbitMQ实现消息队列 2.1 修改\hm-dianping\pom.xmlpom.xml文件 添加RabbitMQ的环境 <!-- RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </depe…...

业务封装与映射 -- OTUk/ODUk/OPUk开销帧结构

开销是为了保证净荷正常、灵活传送所必须附加的供网络运行、管理和维护&#xff08;OAM&#xff09;使用的字节。 OTN电层开销包括OTUk开销、ODUk开销、OPUk开销、OTUCn开销、ODUCn开销、OPUCn开销和帧对齐开销。 SM开销属于OTU开销&#xff0c;占用3个字节&#xff1b;PM开销…...

Vim基本用法

Vim用法 一、基本模式 1. 普通模式&#xff08;Normal Mode&#xff09; 移动光标 基本移动&#xff1a;使用方向键&#xff08;h左移、j下移、k上移、l右移&#xff09;&#xff0c;也可以使用 H&#xff08;移到屏幕顶部&#xff09;、M&#xff08;移到屏幕中间&#xff…...

python 实现Tarjan 用于在有向图中查找强连通分量的算法

Tarjan 用于在有向图中查找强连通分量的算法介绍 Tarjan算法是一种用于在有向图中查找强连通分量的高效算法&#xff0c;由Robert Tarjan在1972年提出。强连通分量是指在有向图中&#xff0c;如果从顶点u到顶点v以及从顶点v到顶点u都存在一条路径&#xff0c;那么顶点u和顶点v…...

Qt开发技巧(十五)字符串去除空格,跨网段搜索不生效,设置图片显示失败问题,表格视图的批量删除,主动判断字串编码,开启向前查询的属性,画家类载入html来绘制

继续讲一些Qt开发中的技巧操作&#xff1a; 1.字符串去除空格 我们经常会遇到字符串重去除空格的情况&#xff0c;对于QString去除空格&#xff0c;有多种场景&#xff0c;可能需要去除左侧、右侧、所有等位置的空格&#xff1b; //字符串去空格 -1移除左侧空格 0移除所有空格…...

【机器学习】智驭未来:探索机器学习在食品生产中的革新之路

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#xff1a;探索机器学习在食品生产中的革新之路&#x1f4d2;2. 机器学习在食品质量控制中的应用&#x1f31e;实…...

Ubuntu 安装CUDA并使用Docker配置Pytorch环境

文章目录 参考安装顺序Nvidia GPU driverDockerNvidia Container ToolkitDocker PyTorch 1. Nvidia GPU Driver2. Docker 安装&#xff08;使用apt存储库进行安装&#xff09;3. Nvidia Container Toolkit3.1 Docker测试GPU 参考 安装顺序 Nvidia GPU driver Docker Nvidia…...

【论文阅读】Simulating 500 million years of evolution with a language model

Simulating 500 million years of evolution with a language model 1、概述 展示了语言模型在蛋白质设计和进化模拟方面的能力。通过对 ESM3 模型的研究,发现其能够生成与自然蛋白质差异较大且具有功能的新蛋白质,如新型绿色荧光蛋白(GFP),表明语言模型可以达到自然进化…...

detectron2/layers源码笔记

from .wrappers import ( BatchNorm2d, Conv2d, #在torch.conv2d的基础上集成了norm层和activation层 ConvTranspose2d, cat, interpolate, Linear, nonzero_tuple, #nonzero_tuple(x)得到tuple of 每个维度的索引 cross_entropy, empty_input_loss_func…...

LLM+知识图谱新工具! iText2KG:使用大型语言模型构建增量知识图谱

iText2KG是一个基于大型语言模型的增量知识图谱构建工具&#xff0c;通过从文本文档中提取实体和关系来逐步构建知识图谱。该工具具有零样本学习能力&#xff0c;能够在无需特定训练的情况下&#xff0c;在多个领域中进行知识提取。它包括文档提炼、实体提取和关系提取模块&…...

React基础-快速梳理

React介绍 React由Meta公司开发&#xff0c;是一个用于构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式不错的性能 相较于其它前端框架的优势 丰富的生态跨平台支持 开发环境创建 create-react-app是一个快速创建React开发环境的…...

深入解析C++中获取进程模块基址的高效实现方法

1. 为什么需要获取进程模块基址 在Windows系统编程中&#xff0c;获取进程模块基址是一个基础但极其重要的操作。简单来说&#xff0c;模块基址就是某个DLL或EXE文件被加载到内存中的起始地址。这个地址就像是模块在内存中的"门牌号"&#xff0c;有了它我们才能找到模…...

从拒稿到录用:我的TOMM投稿实战复盘与经验分享

1. 从TMM拒稿到TOMM录用的心路历程 第一次收到TMM的拒稿邮件时&#xff0c;我正在实验室熬夜改代码。邮件弹出来的那一刻&#xff0c;整个人就像被泼了一盆冷水。那篇论文已经经历了三轮大修&#xff0c;每次都是几十条审稿意见&#xff0c;我们团队前前后后修改了上百个细节。…...

内容营销对 SEO 有什么影响

<h3 id"seo">内容营销对 SEO 有什么影响</h3> <h4 id"">引言</h4> <p>在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;和内容营销被广泛认为是网站流量和业务增长的关键驱动因素。许多企业在网站建设…...

uniapp 雪花算法封装类

1. uniapp 雪花算法封装类 雪花算法(SnowFlake)生成64位整数ID,具有全局唯一、趋势递增、高性能等特点,适合分布式系统。 1.1. 解决分布式全局唯一ID的方法 1.1.1. UUID UUID做全局ID的弊端:UUID是由数字加字母的形式组成,无法保持递增,它使得聚簇索引(主键值和行数据…...

uView Input前后槽实战:5分钟搞定搜索框+验证码组合

uView Input前后槽实战&#xff1a;5分钟搞定搜索框验证码组合 在移动端开发中&#xff0c;输入框(Input)是最基础也是最常用的UI组件之一。无论是用户登录、搜索功能还是表单填写&#xff0c;都离不开它。但你是否遇到过这样的困扰&#xff1a;想要在输入框左侧添加一个搜索图…...

【算法实战】分支限界法解电路布线:从理论到代码实现

1. 电路布线问题与分支限界法初探 电路布线问题就像是在一个布满障碍物的迷宫中寻找最短路径。想象一下&#xff0c;你手里拿着一根电线&#xff0c;需要在布满元件的电路板上找到一条最短的路径连接两个点&#xff0c;而且电线只能走直线或者直角转弯。这就是电路布线问题的现…...

Iggy架构深度解析:从零构建的高性能消息流系统

Iggy架构深度解析&#xff1a;从零构建的高性能消息流系统 【免费下载链接】iggy Iggy is the persistent message streaming platform written in Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing millions of messages per second. 项目地…...

单片机抢答器项目避坑指南:从按键抖动处理到中断优先级设置

单片机抢答器项目避坑指南&#xff1a;从按键抖动处理到中断优先级设置 在嵌入式系统开发中&#xff0c;抢答器是一个经典的教学项目&#xff0c;但看似简单的功能背后却隐藏着许多技术细节。很多开发者在实现基本功能后&#xff0c;往往会忽略一些关键优化点&#xff0c;导致系…...

保姆级避坑指南:在Windows上用VirtualBox 6.0.24跑Ubuntu,从开机报错到完美显示的完整流程

从开机报错到完美显示&#xff1a;VirtualBox 6.0.24运行Ubuntu全流程实战手册 当你第一次在Windows上用VirtualBox启动Ubuntu虚拟机时&#xff0c;那个刺眼的报错提示可能会让你措手不及。别担心&#xff0c;这几乎是每个虚拟化新手都会经历的"成人礼"。本文将带你完…...

千问3.5-2B实战教程:将网页交互结果接入企业微信机器人,实现图片秒级响应

千问3.5-2B实战教程&#xff1a;将网页交互结果接入企业微信机器人&#xff0c;实现图片秒级响应 1. 项目背景与价值 在日常工作中&#xff0c;我们经常需要快速处理大量图片信息。比如电商团队需要审核商品主图&#xff0c;市场部门需要分析竞品海报&#xff0c;客服团队要识…...