CF1676G
题目简化和分析:
求一颗子树的黑白两数是否相等。
我们设黑 \(1\),白 \(-1\),若某一棵子树的权值为 \(0\),说明此刻的黑白个数相等,贡献加一。
从根搜索,每次将值传递给父亲,判断父亲此时的权值。
Solution:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const int N=4e3+50;
const int M=1e5+50;
const int Mod=1e9+7;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int t,n;
int ans;
int c[N],si[N];
vector<int>tree[N];
void dfs(int u,int p){
si[u]=c[u];
for(int v=0;v<(int)tree[u].size();++v){
if(tree[u][v]==p) continue;
dfs(tree[u][v],u);
si[u]+=si[tree[u][v]];
}
if(si[u]==0) ans++;
}
int main()
{
scanf("%d",&t);
while(t--){
ans=0;
n=read();
for(int i=2;i<=n;++i){
int x;
x=read();
tree[x].push_back(i);
tree[i].push_back(x);
}
string s;
cin>>s;
for(int i=0;i<n;++i){
if(s[i]=='W') c[i+1]=-1; else c[i+1]=1;
}
dfs(1,0);
printf("%d\n",ans);
for(int i=1;i<=n;++i) tree[i].clear();
}
return 0;
}
随机推荐
- Educational Codeforces Round 150 (Rated for Div. 2) A-E
比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...
- C# 实现 Linux 视频聊天、远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS)
园子里的有朋友在下载并了解了<C# 实现 Linux 视频会议(源码,支持信创环境,银河麒麟,统信UOS)>中提供的源码后,留言给我说,这个视频会议有点复杂了,代码比较多,看得有些费劲.问 ...
- Mybatis-plus自定义Sql注入器
最近在学习mybatis-plus,知道了在mp中通过AbstractSqlInjector将BaseMapper中的方法注入到了Mybatis容器,这样这些方法才可以正常执行. 下面是一个关系图 那 ...
- C#中数组=out参数?
- 结论 先上结论,答案是yes,C#中数组确实具有out参数的特性. - 疑问 最近开发一个上位机的功能,有段代码看得我一直很迷糊,我的认识,函数的执行结果,要么在函数中通过return返回,要么通 ...
- 园子的商业化努力:欢迎参加DataFun联合行行AI举办的数据智能创新与实践人工智能大会
大家好,今年是园子商业化生死攸关的一年,正在艰难而努力地向前推进,今天在首页发布一篇大会推广博文,望谅解. DataFun联合行行AI举办第四届"数据智能创新与实践人工智能大会", ...
- Hexo博客Next主题建立标签云hexo-tag-cloud及效果展示
hexo-tag-cloud插件介绍 hexo-tag-cloud插件是作者写的一个Hexo博客的标签云插件,旨在直观的展示标签的种类,美观大方且非常优雅. 插件地址: 插件的GitHub地址 插件说 ...
- C#中DataTable的一些使用(后续继续补充)
C#中DataTable的一些使用 新建一个DataTable DataTable table = new DataTable(); table.Columns.Add("姓名", ...
- Element-ui源码解析(一):项目目录解析
开始看原码了,我们要开始一些准备工作, 既然是拆代码,那么我们要先把代码搞到手 1.如何下载原码 随便开个项目 npm i element-ui -S 将源码下载到本地 随后在node_module ...
- grafana Variables 变量的使用
概念澄清 A variable is a placeholder for a value. # 变量是值的占位符. # 参考文档:https://grafana.com/docs/grafana/la ...
- sqli笔记
MySQL数据库自带的数据库information_schema 里面有三个比较重要的表 SCHEMATA .TABLES . COLUMNS 保存数据库所有的数据库名 表名 字段名 SCHEM ...