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

宿迁做网站 宿迁网站建设/seo是什么职业做什么的

宿迁做网站 宿迁网站建设,seo是什么职业做什么的,网站 公众号 建设方案,广州手机网站开发报价题目 n(n<2e5)个点的树&#xff0c;点i有点权ai(1<ai<1e9) "不同根"定义为&#xff0c;从该点出发&#xff0c;到任意点的路径上都不会经历两个相同的值 求图中"不同根"的个数 思路来源 凡神代码 题解 考虑到对于树上任意两个相同的值来说…

题目

n(n<=2e5)个点的树,点i有点权ai(1<=ai<=1e9)

"不同根"定义为,从该点出发,到任意点的路径上都不会经历两个相同的值

求图中"不同根"的个数

思路来源

凡神代码

题解

考虑到对于树上任意两个相同的值来说,

这两个点之外的点,都是不合法的点,

所以检查每两两个点即可,但是复杂度不符合要求

画画图发现,对于每个点来说,检查离它最近的相同的值的点即可

任选树根,对树进行dfs,记录dfs序,

对于点u来说,如果子树v里面存在和u相同的值,则需要对v子树以外的区间打+1标记

对于点u来说,如果子树u外存在和u相同的值,则需要对u子树内的区间打+1标记

一个点被打了多个标记是没关系的,只要保证合法的点没被打上标记即可

最后求一遍前缀和,统计没有标记的点的个数

对于判断u子树外和v子树内有没有和a[u]相同的值,

也可以启发式合并上来做,但感觉背离了这个思维题的初衷

代码

#include<bits/stdc++.h>
using namespace std;
#define pb push_back
const int N=2e5+10;
map<int,int>to;
vector<int>e[N];
int n,a[N],u,v,x,ans;
int in[N],out[N],c;
int add,sum[N];
int up[N],cnt[N];
void dfs(int u,int fa){in[u]=++c;int pre=cnt[a[u]];for(auto &v:e[u]){if(v==fa)continue;int ppre=cnt[a[u]];dfs(v,u);int nnow=cnt[a[u]];if(nnow-ppre>0){//v子树有a[u] 对区间[in[v],out[v]]以外的区间打标 sum[1]++;sum[in[v]]--;sum[out[v]+1]++; }}out[u]=c;cnt[a[u]]++;int now=cnt[a[u]];if(now-pre<up[a[u]]){//子树外有a[u] 对区间[in[u],out[u]]打标 sum[in[u]]++;sum[out[u]+1]--;}	
}
int main(){scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%d",&a[i]);if(!to.count(a[i])){to[a[i]]=++x;}}for(int i=1;i<=n;++i){a[i]=to[a[i]];up[a[i]]++;}for(int i=1;i<n;++i){scanf("%d%d",&u,&v);e[u].pb(v);e[v].pb(u);}dfs(1,-1);for(int i=1;i<=n;++i){add+=sum[i];if(!add){ans++;} }printf("%d\n",ans);return 0;
}

http://www.lbrq.cn/news/796933.html

相关文章:

  • 网站建设创作思路怎么写/360竞价推广登录入口
  • 电子商务网站建设书籍/域名
  • 酒店网站建设描述/chrome浏览器
  • 上海品牌型网站建设靠谱/汕头网站建设公司
  • 公司网站怎么做才能吸引人/免费行情软件网站下载大全
  • 山东省环保厅官方网站建设项目/百度前三推广
  • 时时彩 网站开发/郑州网站制作公司哪家好
  • 网站建设的设备/杭州企业seo
  • 万网主机网站建设数据库怎么弄/seo排名优化教程
  • 数据库做网站/广东短视频seo搜索哪家好
  • 局网站建设进入前十名/有免费推广平台
  • c 网站开发 调试/seo排名的影响因素有哪些
  • 电子商务他们的代表网站/济南网站建设方案
  • 域名访问网站应该怎么做/seo专业技术培训
  • 做拍卖的网站有哪些/品牌宣传方式
  • 鲜花网站建设项目概述/衡阳有实力seo优化
  • 网页网站导读怎么做/太原seo公司
  • 常见c2c网站有哪些/谷歌sem服务商
  • 昆明做网站建设技巧公司/网络宣传渠道有哪些
  • wordpress的配置文件/好搜自然seo
  • 上海徽与章网站建设宗旨/网站如何快速被百度收录
  • 杭州本地网站有哪些/下载百度软件
  • 自学python的网站/代做seo排名
  • 做网站具体步骤/天津百度seo代理
  • 代做电大网站ui作业/店铺推广怎么做
  • 上市公司做家具网站/百度官网认证免费
  • 郑州做网站报价/上海广告公司排名
  • 江西省做网站/seo技术分享
  • 商标设计大全/seo黑帽培训骗局
  • 行业网站域名选择/seo交流论坛seo顾问
  • 使用AndroidStudio调试Framework源码
  • Hertzbeat如何配置redis?保存在redis的数据是可读数据
  • 兴达餐饮 酒店 进销存管理系统软件
  • SmartCLIP:具有识别保证的模块化视觉-语言对齐
  • 解决 InputStream 只能读取一次问题
  • LVGL + ESP-Brookesia 在Windows下的编译和运行