codeforces 902B(dfs)
时间:2022-07-28
本文章向大家介绍codeforces 902B(dfs),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意描述
给你一棵树,要求给树染色,给树的一个父结点染色时,该父结点的所有子结点也会被染成同样的颜色,给你颜色列表,求将树染成该列表所用的最小的次数
思路
遍历树的层次,依次进行染色并统计染色的次数
AC代码
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#define x first
#define y second
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
typedef pair<long,long> PLL;
typedef pair<char,char> PCC;
typedef long long LL;
const int N=10100;
const int M=150;
const int INF=0x3f3f3f3f;
const int MOD=998244353;
int n;
int c[N],now[N];
bool st[N];
vector<int> g[N];
int dfs(int node){
int res=0;
st[node]=1;
if(now[node]!=c[node]){
res++;
now[node]=c[node];
}
for(auto t : g[node]){
if(!st[t]){
now[t]=now[node];
res+=dfs(t);
}
}
return res;
}
void solve(){
int n;cin>>n;
for(int i=2;i<=n;i++){
int x;cin>>x;
g[x].push_back(i);
g[i].push_back(x);
}
for(int i=1;i<=n;i++) cin>>c[i];
cout<<dfs(1)<<endl;
}
int main(){
IOS;
solve();
return 0;
}
- 2分钟完成30*15页拉勾网职位需求关键词的抓取
- 【专业技术】Linux设备驱动第七篇:高级字符驱动操作之阻塞IO
- Python抓取上海各地区房价平均值
- R语言分析 老九门 到底谁是主角
- 【编程基础】C语言位
- 【专业技术】Android数据保存之文件保存
- 手工创建/删除数据库的步骤
- 用shell帮助解决ORA问题
- 整站40万条房价数据并行抓取,可更换抓取城市
- 大分区表的手工并行优化
- DBMS_STATS收集统计信息的问题及解决
- linux kernel引发的oracle问题及解决
- listener.ora,tnsnames.ora中一个空格的威力
- 【专业技术】Linux设备驱动第六篇:高级字符驱动操作之iotcl
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 纯JS实现在一个字符串b中查找另一个字符串a出现的所有位置,并且不使用字符串的方法(递归)
- 【剑指Offer】替换空格
- 面试汇总(一):针对百度面试总结
- Shell awk命令
- 【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist
- redis学习(十一)
- 互联网软件常见开发方法
- 利用Vue实现简易tab切换效果
- 第3天:最近笔试编程题汇总
- 设计模式学习(四)-UML中的类图及类图之间的关系
- 数据结构与算法(一)——学习工具的推荐
- sparc v8架构的异常处理
- 设计模式(五)-工厂方法模式
- html 的div或其他元素监听 resize事件不生效的解决办法
- 基于docker部署skywalking实现全链路监控