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

呼市建设官方网站湖南企业名录大全

呼市建设官方网站,湖南企业名录大全,网站设计师英文,wordpress二次元动漫主题传送门 文章目录题意#xff1a;思路#xff1a;题意#xff1a; 给你两棵树#xff0c;让你在第一棵树选一条最长的深度递增的链#xff0c;链上每一个点在第二棵树上都不互为祖先。 n≤3e5n\le3e5n≤3e5 思路#xff1a; 之前做过差不多的题传送门。 之前哪个题是不…传送门 文章目录题意思路题意 给你两棵树让你在第一棵树选一条最长的深度递增的链链上每一个点在第二棵树上都不互为祖先。 n≤3e5n\le3e5n≤3e5 思路 之前做过差不多的题传送门。 之前哪个题是不需要连续的所以比较好写这个题要求连续即为一条链所以能难点。 比赛的时候写了个滑动窗口假算法貌似还挺容易就能卡死的。。 直接来说正解吧考虑dfsdfsdfs序的区间要么某个区间全部包含某个区间要不就是两个区间没有交集。利用这个性质我们考虑在第二棵树上跑一个dfsdfsdfs序在第一棵树上dfsdfsdfs的时候维护根到当前点的一条链建立一颗线段树当到某个点的时候就将这个点的dfsdfsdfs序的区间全部赋值为depth[u]depth[u]depth[u]查询的时候只需要查询一下当前点的dfsdfsdfs序区间[l,r][l,r][l,r]内的最大值即可因为加入当前区间之后只会和[l,r][l,r][l,r]内的区间冲突所以只需要取区间最大值后就代表向上最多能跑到的深度111直接与当前深度做差即可。注意还需要满足之前的深度所以dfsdfsdfs的时候取一个maxmaxmax深度即可。 // Problem: xay loves trees // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/11258/F // Memory Limit: 1048576 MB // Time Limit: 4000 ms // // Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize(Ofast,no-stack-protector,unroll-loops,fast-math) //#pragma GCC target(sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tunenative) //#pragma GCC optimize(2) #includecstdio #includeiostream #includestring #includecstring #includemap #includecmath #includecctype #includevector #includeset #includequeue #includealgorithm #includesstream #includectime #includecstdlib #includerandom #includecassert #define X first #define Y second #define L (u1) #define R (u1|1) #define pb push_back #define mk make_pair #define Mid ((tr[u].ltr[u].r)1) #define Len(u) (tr[u].r-tr[u].l1) #define random(a,b) ((a)rand()%((b)-(a)1)) #define db puts(---) using namespace std;//void rd_cre() { freopen(d://dp//data.txt,w,stdout); srand(time(NULL)); } //void rd_ac() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//AC.txt,w,stdout); } //void rd_wa() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//WA.txt,w,stdout); }typedef long long LL; typedef unsigned long long ULL; typedef pairint,int PII;const int N300010,mod1e97,INF0x3f3f3f3f; const double eps1e-6;int n; vectorintv1[N],v2[N]; int l[N],r[N],tot; int root[N],depth[N]; int ans0; struct Node {int l,r;int mx,lazy; }tr[N*40];void dfs_dfn(int u,int fa) {l[u]tot;for(auto x:v2[u]) {if(xfa) continue;dfs_dfn(x,u);}r[u]tot; }void insert(int p,int q,int l,int r,int ql,int qr,int x) {qtot; tr[q]tr[p]; tr[q].mxx;if(lqlrqr) {tr[q].lazyx;return;}int mid(lr)1;if(qlmid) insert(tr[p].l,tr[q].l,l,mid,ql,qr,x);if(qrmid) insert(tr[p].r,tr[q].r,mid1,r,ql,qr,x); }int query(int u,int l,int r,int ql,int qr) {if(!u) return 0;int anstr[u].lazy;if(lqlrqr) return max(ans,tr[u].mx);int mid(lr)1;if(qlmid) ansmax(ans,query(tr[u].l,l,mid,ql,qr));if(qrmid) ansmax(ans,query(tr[u].r,mid1,r,ql,qr));return ans; }void dfs(int u,int fa,int d) {depth[u]depth[fa]1; int nowmax(d,query(root[fa],1,n,l[u],r[u]));ansmax(ans,depth[u]-now);insert(root[fa],root[u],1,n,l[u],r[u],depth[u]);for(auto x:v1[u]) {if(xfa) continue;dfs(x,u,now);} }int main() { // ios::sync_with_stdio(false); // cin.tie(0);int _; cin_;while(_--) { tot0;scanf(%d,n);for(int i1;in-1;i) {int a,b; scanf(%d%d,a,b);v1[a].pb(b); v1[b].pb(a);}for(int i1;in-1;i) {int a,b; scanf(%d%d,a,b);v2[a].pb(b); v2[b].pb(a);}dfs_dfn(1,0); tot0; ans0;dfs(1,0,0);printf(%d\n,ans);for(int i1;in;i) v1[i].clear(),v2[i].clear(),root[i]0;for(int i1;itot;i) tr[i].ltr[i].rtr[i].lazytr[i].mx0;}return 0; } /**/
http://www.yutouwan.com/news/434850/

相关文章:

  • 高端大气上档次的网站多种郑州网站建设
  • 如何在微信平台做购买网站c2c网站怎么做
  • 做网站的规范网站开发成本预算价目表
  • 建立个人网站的目的长沙网络工程学院
  • wordpress建好站了打不开首页亳州网站网站建设
  • 做百科需要用什么网站做参考做网站买域名就行了吗
  • 腾云网站建设设计师 推荐 网站
  • wordpress设置站点地址网站建设推广和网络推广
  • 怎么让网站快速被收录网页设计师培训宣传语
  • 开发公司调研汇报材料怎么写成都seo公司排名
  • 网站改版需求说明潍城营销型网站建设
  • 太仓seo网站优化软件本地工程招标网
  • 如何收集网站建设资料芜湖seo网站优化
  • 代做淘宝联盟网站网站开发诺亚科技
  • 珠海公司网站制作wordpress mysql_query
  • 有什么字体设计网站如何去做网络推广
  • 做平面常用的网站微商城怎么开
  • 旅游类网站开发开题报告范文做个电商网站和app
  • 网站怎么做跳转创建网站需要什么
  • 域名备案好了怎么建设网站wordpress中文标题转换拼音插件
  • 聊城手机网站建设电话徐州招聘网最新招聘
  • 网站建设外包公司网站建设平台有哪些
  • 东莞培训网站建设小广告文案
  • 网站工作室设计蜂聘原360建筑网
  • 网站备案人授权公司策划方案怎么做
  • 关于旅游的网站建设目的做动漫主题的网站
  • 平台网站很难做住建部禾建设部是一个网站吗
  • 昆明市建设厅网站宿迁做网站的公司
  • 网站注册地址查询常州哪些网站公司做的好处
  • 网站怎么做端口映射企业品牌网站建设的关键事项