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

湛江专业建站联系方式做idc销售怎样建网站

湛江专业建站联系方式,做idc销售怎样建网站,个人网站建设大全,临沂网站开发公司正题 题目大意 一棵树上每个节点有不同的颜色#xff0c;然后每次询问(x,y,a,b)(x,y,a,b)(x,y,a,b)表示将颜色aaa看为颜色bbb的情况下询问xxx到yyy有多少不种的颜色。 解题思路 数颜色#xff0c;显然树上莫队。我们维护一个欧拉序dfndfndfn(进去时记录一次出来时记录一次)…正题 题目大意 一棵树上每个节点有不同的颜色然后每次询问(x,y,a,b)(x,y,a,b)(x,y,a,b)表示将颜色aaa看为颜色bbb的情况下询问xxx到yyy有多少不种的颜色。 解题思路 数颜色显然树上莫队。我们维护一个欧拉序dfndfndfn(进去时记录一次出来时记录一次)然后rfnirfn_irfni​表示点iii进入时在dfndfndfn中的位置rgnirgn_irgni​表示点iii在出去时在iii的位置。 然后每次移动端点时只有在[l,r][l,r][l,r]这个区间中出现一次的点的颜色才会被记录入cntcntcnt让出现两次的相互抵消。那么我们就可以让x,yx,yx,y所在它的LCALCALCA的子树中这个序列让他们中间的相互抵消。 不过要注意若x,yx,yx,y不是他们的LCALCALCA那么他们的LCALCALCA就被计算了两次就重复了统计答案时要减去重复的。 codecodecode #includecstdio #includealgorithm #includequeue #includecmath using namespace std; const int N51000,M110000; struct line{int to,next,w; }a[M]; struct Que_node{int l,r,a,b,id,pos; }que[M]; bool operator(Que_node x,Que_node y) {return x.posy.pos?x.ry.r:x.posy.pos;} int n,m,c[N],dfn[M],rfn[N],rgn[N],v[N],cnt,num,ans[N]; int tot,x,y,ls[N],dep[N],f[N][30],t,T; bool b[N]; queueint q; inline int read() {int X0,w0; char c0;while(c0||c9) {w|c-;cgetchar();}while(c0c9) X(X3)(X1)(c^48),cgetchar();return w?-X:X; } inline void addl(int x,int y,int w) {a[tot].toy;a[tot].nextls[x];a[tot].ww;ls[x]tot; } void dfs(int x,int fa) {dfn[cnt]x;rfn[x]cnt;for(int ils[x];i;ia[i].next){int ya[i].to;if(yfa) continue;dfs(y,x);}dfn[cnt]x;rgn[x]cnt; } inline void bfs(int s) {q.push(s);dep[s]1;while(!q.empty()){int xq.front();q.pop();for (int ils[x];i;ia[i].next){int ya[i].to;if (dep[y]) continue;q.push(y);f[y][0]x;dep[y]dep[x]1;}}T(int)(log(n)/log(2))1;for (int j1;jT;j)for (int i1;in;i)f[i][j]f[f[i][j-1]][j-1]; } inline int LCA(int x,int y) {if (dep[x]dep[y]) swap(x,y);for (int iT;i0;i--)if (dep[f[y][i]]dep[x]) yf[y][i];if (xy) return x;for (int iT;i0;i--)if (f[y][i]!f[x][i]) {xf[x][i];yf[y][i];}return f[x][0]; } void rev(int x) {if(b[x]) v[c[x]]--,num-(v[c[x]]0);else num(v[c[x]]0),v[c[x]];b[x]^1; } void Keep_zzy(int l,int r,int L,int R) {while(lL) rev(dfn[l]),l;while(lL) l--,rev(dfn[l]);while(rR) r,rev(dfn[r]);while(rR) rev(dfn[r]),r--; } int main() {freopen(apple.in,r,stdin);freopen(apple.out,w,stdout);nread();mread();for(int i1;in;i)c[i]read();for(int i1;in;i){addl(xread(),yread(),1);addl(y,x,1);}dfs(0,0);bfs(0);t(int)sqrt((double)cnt);for(int i1;im;i){scanf(%d%d%d%d,que[i].l,que[i].r,que[i].a,que[i].b);if(rfn[que[i].l]rfn[que[i].r])swap(que[i].l,que[i].r);que[i].lrgn[que[i].l];que[i].rrfn[que[i].r];if(que[i].lque[i].r) que[i].lrfn[dfn[que[i].l]];que[i].idi;que[i].pos(que[i].l-1)/t1;}sort(que1,que1m);int l1,r0;v[0]1; for(int i1;im;i){int xque[i].l,yque[i].r;Keep_zzy(l,r,x,y);int lcaLCA(dfn[x],dfn[y]);bool flag0;if(dfn[x]!lcadfn[y]!lca)rev(lca),flag1;ans[que[i].id]num;if(v[que[i].a]v[que[i].b]que[i].a!que[i].b)ans[que[i].id]--;if(flag) rev(lca);}for(int i1;im;i)printf(%d\n,ans[i]); }
http://www.yutouwan.com/news/497699/

相关文章:

  • 微信外链网站开发重庆汉沙科技做网站怎么样
  • 发帖秒收录的网站游戏创业项目
  • 自网站EXCel数据导入怎么做品牌推广理论
  • 网站突然掉排名登录器显的窗口网站怎么做
  • 制作一个网站的成本html页面添加wordpress
  • 郑州做营销型网站的公司辽宁城乡建设集团网站
  • 政务系统网站百度搜索公司网站展现图片
  • 同一个域名两个网站互联网精准营销
  • 做的网站名海洋网络
  • dedecms做手机网站装修工人找活平台
  • 网站后台html模板网站建设ftp
  • 网站建设方案书 下载运营怎么自学
  • 可以做一键拨号和导航的网站2022搜索引擎
  • 宁阳县住房和城乡建设局网站云营销网站建设电话咨询
  • com网站注册域名泉州建站平台
  • 顺义企业建站深圳公司网站
  • 图片网站怎么做排名网站推广过程叙述
  • 足球做网站首页格局怎么看自己网站的空间
  • 安丘网站建设报价个人网站seo
  • 网站开发设计需求福田庆三鞠婧祎
  • 德州市平原县建设局网站怎样用织梦做淘宝客网站
  • 小说网站如何赚钱深圳企业贷款需要什么手续和条件
  • 阿里云服务器网站备案vps服务器怎么创建多个网站
  • 做美食网站的意义宣传部网站建设计划书
  • wordpress免费主题插件下载网站建设和seo的工作好不好
  • 北京大学php培训网站源码(dede黄骅港务局
  • 网站建设总体上可划分为两个阶段wordpress禁止postid
  • 做网站工作描述电子商务网站建设详细策划书
  • 长子网站建设导购网站模板免费下载
  • 设计网站免费大全做彩票网站代理违法吗