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

app下载网站模板俱乐部网站方案

app下载网站模板,俱乐部网站方案,线上投票怎么做,网站开发工作流程正题 题目大意 一棵树上每个节点有不同的颜色#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.zqtcl.cn/news/993392/

相关文章:

  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻
  • 招聘信息网搜索引擎优化代理
  • 免费的企业网站cms纯文字logo在线制作
  • 深圳电器公司官网网站建设 网站优化
  • 大连 网站建设昆明建设网站哪家好
  • 网站首页设计及运行效果网站建设与管理任务分工
  • 自己建设论坛网站家用电脑搭建服务器
  • 做网站上海公司企业网站内页
  • 手机网站seo山东网站建设网
  • 溧阳 招网站开发wordpress 占内存
  • 网站seo 工具做网站建设公司排名
  • 丹阳网站建设企业建设网站管理制度
  • 怎样审请网站集成装修全屋定制
  • 好看响应式网站模板下载可以访问的国外网站
  • 做电脑网站宽度网站建立安全连接失败
  • 西安网站设计哪家公司好my12777域名查询
  • 西宁网站建设排名网站设计对网站建设有哪些意义?
  • 北京平台网站建设价位怎样做网站卖网站
  • 网站建设与维护试题a卷建设银行官方网站买五粮液酒
  • 安装网站源码做文艺文创产品的网站
  • 软件公司网站设计与制作电子商务成功网站的案例