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

网站维护中是怎么回事2023网页游戏排行榜

网站维护中是怎么回事,2023网页游戏排行榜,小程序开发公司谁知道,北京网站设计网站公司考虑到路径是有向的#xff0c;不是很好维护。 如果路径无向的话#xff0c;可以直接转化为链加和查询操作。 既然有向的话#xff0c;不妨考虑一波hash。 对于一组询问x,y#xff0c;可以把树划分为两颗子树。 合法显然需要满足 x子树的起点的hashy子树的终点的hash x子树…考虑到路径是有向的不是很好维护。 如果路径无向的话可以直接转化为链加和查询操作。 既然有向的话不妨考虑一波hash。 对于一组询问x,y可以把树划分为两颗子树。 合法显然需要满足 x子树的起点的hashy子树的终点的hash x子树的终点的hashy子树的起点的hash 直接用LCT维护一个异或hash即可。 #includeiostream #includecctype #includecstdio #includecstring #includestring #includecmath #includectime #includecstdlib #includealgorithm #define N 330000 #define L 300000 #define eps 1e-7 #define inf 1e97 #define db double #define ll long long #define ldb long double using namespace std; inline int read() {char ch0;int x0,flag1;while(!isdigit(ch)){chgetchar();if(ch-)flag-1;}while(isdigit(ch)){x(x3)(x1)ch-0;chgetchar();}return x*flag; } #define lson son[x][0] #define rson son[x][1] struct lnk{int x,y,z;}p[N]; int va[N],vb[N],sa[N],sb[N],sa_[N],sb_[N],f[N],st[N],flag[N],son[N][2]; bool get(int x){return son[f[x]][1]x;} bool isroot(int x){return (son[f[x]][0]!x)(son[f[x]][1]!x);} void pushup(int x) {sa[x]sa[lson]^sa[rson]^sa_[x]^va[x];sb[x]sb[lson]^sb[rson]^sb_[x]^vb[x]; } void update(int x){flag[x]^1;swap(lson,rson);} void pushdown(int x){if(!flag[x])return;if(lson)update(lson);if(rson)update(rson);flag[x]0;} void rotate(int x) {int yf[x],zf[y],txget(x),tyget(y),pson[x][!tx];if(!isroot(y))son[z][ty]x;son[x][!tx]y;son[y][tx]p;if(p)f[p]y;f[y]x;f[x]z;pushup(y);pushup(x); } void splay(int x) {int cnt0,tmpx;st[cnt]x;while(!isroot(x))st[cnt]f[x],xf[x];for(int icnt;i1;i--)pushdown(st[i]);xtmp;while(!isroot(x)){int yf[x];if(!isroot(y))rotate(get(x)get(y)?y:x);rotate(x);}pushup(x); } void access(int x) {for(int y0;x;yx,xf[x]){splay(x);sa_[x]^sa[rson];sb_[x]^sb[rson];rsony;sa_[x]^sa[rson];sb_[x]^sb[rson];pushup(x);} } void makeroot(int x){access(x);splay(x);update(x);} void link(int x,int y) {makeroot(x);access(y);splay(y);f[x]y;sa_[y]^sa[x];sb_[y]^sb[x];pushup(y); } void cut(int x,int y) {makeroot(x);access(y);splay(y);f[x]son[y][0]0;pushup(y); } void add1(int x,int k){makeroot(x);va[x]^k;pushup(x);} void add2(int x,int k){makeroot(x);vb[x]^k;pushup(x);} int rng(){int x0;for(int i0;i30;i)x^(rand()%2)i;return x;} int main() {srand(time(0));read();int nread(),mread(),cnt0,s0;for(int i1;in;i){int xread(),yread();link(x,y);}for(int i1;im;i){int flagread();if(flag1){int x,y;xread();yread();cut(x,y);xread();yread();link(x,y);}if(flag2){cnt;p[cnt].xread();p[cnt].yread();p[cnt].zrng();add1(p[cnt].x,p[cnt].z);add2(p[cnt].y,p[cnt].z);s^p[cnt].z;}if(flag3){int kread();add1(p[k].x,p[k].z);add2(p[k].y,p[k].z);s^p[k].z;}if(flag4){int xread(),yread();makeroot(x);access(y);int asa_[y]^va[y],bsb_[y]^vb[y]; if((a^b)s)printf(YES\n);else printf(NO\n);}}return 0; } 转载于:https://www.cnblogs.com/Creed-qwq/p/10354399.html
http://www.huolong8.cn/news/73680/

相关文章:

  • 无忧网站建设报价什么网站可以做调查
  • 英文网站建设 论文精准营销案例名称及分析
  • 英文淘宝网站建设wordpress 4.5 中文版
  • 网络网站维护费怎么做会计分录机关门花网站建设
  • 网站开发培训用vps做网站
  • 半岛官方网站下载wordpress删除首页
  • 深圳建设交易中心网站市场营销专业网站
  • 望牛墩镇做网站微信小程序商店怎么开
  • 做惠而浦售后网站赚钱软件接口设计文档
  • 南京建设厅官方网站合肥瑶海区房子值得买吗
  • 网站正在建设中页面 英文翻译企业建立网站的目的
  • 谷歌网站建设wordpress添加新页面
  • 百度如何把网站做链接地址网站的总体风格包括
  • 河南科技园网站建设芜湖做网站公司
  • 合肥模板建站多少钱扬州市工程信息网
  • 球迷类的网站如何做学信网登录
  • 做网站公司是干什么的湖北高端网站建设
  • 网站使用功能介绍是用什么软件做的公司网站开发 nodejs
  • 手机上的网站是怎么做的wordpress搜索排序
  • 做化工的网站重庆博建设计院公司是网站
  • 网站建设开源节流百度关键词规划师
  • 企业网站案例建设要求python做网站性能怎么样
  • 深圳制作网站有用吗大学两学一做专题网站
  • 湖南常德广宇建设网站做网站怎么制作
  • 深圳市网站建设哪家好做高端网站公司
  • 广东省建设工程协会网站做培训网站哪家好
  • 潍坊网站建设哪家专业长沙网页制作模板的网站
  • 做网站得先注册域名吗大连 网站开发
  • 公司域名备案网站名称做网站服务好
  • 承包酒席可以做网站吗网站流量少怎么办