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

江门市住房和城乡建设部网站制作电子商务网站页面

江门市住房和城乡建设部网站,制作电子商务网站页面,最有效的免费推广方法,合肥网达软件有限公司Codeforces-741D(Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths) 一棵根为1 的树#xff0c;每条边上有一个字符#xff08;a-v共22种#xff09;。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中…Codeforces-741D(Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths) 一棵根为1 的树每条边上有一个字符a-v共22种。 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中最长的Dokhtar-kosh路径的长度。给你n个点构成的一棵树树里面的每一条边有一个权值求出每个子树里面能通过重排构成回文串的最大路径长度. #includebits/stdc.h using namespace std; const int N5e510,M2*N; int h[N],e[M],ne[M],w[M],idx; int n,id[N],L[N],R[N],o,son[N],sz[N],dep[N],dfn[N]; int d[N],f[123],ans[N],flag; void add(int a,int b,int c){e[idx]b,w[idx]c,ne[idx]h[a],h[a]idx; } void dfs1(int u,int fa0){dep[u]dep[fa]1;dfn[u]o,id[o]u;sz[u]1;L[u]o;for(int ih[u];~i;ine[i]){int je[i];if(jfa)continue;d[j]d[u]^w[i];//d[j]表示从根节点到j的结点状态dfs1(j,u);sz[u]sz[j];if(sz[son[u]]sz[j])son[u]j;}R[u]o; } void upd(int u){if(f[d[u]])ans[u]max(ans[u],f[d[u]]-dep[u]);for(int i0;i22;i){int xd[u]^(1i);if(f[x])ans[u]max(ans[u],f[x]-dep[u]);} } void upd2(int j,int u){if(f[d[j]])ans[u]max(ans[u],f[d[j]](dep[j]-dep[u])-dep[u]);for(int i0;i22;i){int xd[j]^(1i);if(f[x])ans[u]max(ans[u],f[x](dep[j]-dep[u])-dep[u]);} } void cal(int u,int fa){upd(u);//先更新贡献f[d[u]]max(f[d[u]],dep[u]);//把我自己插进去for(int ih[u];~i;ine[i]){int je[i];if(json[u]||jfa)continue;for(int xL[j];xR[j];x)upd2(id[x],u);//计算子树所有节点和我构成的贡献for(int xL[j];xR[j];x)f[d[id[x]]]max(f[d[id[x]]],dep[id[x]]);//插入这颗子树的贡献} } void dfs(int u,int fa0,int keep0){for(int ih[u];~i;ine[i]){int je[i];if(jfa||json[u])continue;//先枚举轻儿子不保留dfs(j,u,0);ans[u]max(ans[u],ans[j]);}if(son[u]){//再计算重儿子保留答案int json[u];dfs(j,u,1);ans[u]max(ans[u],ans[j]);flagj;}cal(u,fa);//计算跟u节点相关的答案flag0;if(!keep)for(int iL[u];iR[u];i)f[d[id[i]]]0; } signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cinn;memset(h,-1,sizeof h);char c;for(int i2,j;in;i)cinjc,add(j,i,1(c-a)),add(i,j,1(c-a));dfs1(1);dfs(1);for(int i1;in;i)coutans[i] ; }阔力梯的树 用启发式合并写 #includebits/stdc.h using namespace std; #define int long long const int N1e510; int n,sz[N]; long long f[N]; vectorintg[N],son[N]; setintS[N]; void dfs(int u){sz[u]1;S[u].insert(u);for(auto j:g[u]){dfs(j);if(sz[u]sz[j])swap(sz[u],sz[j]),swap(S[u],S[j]),f[u]f[j];//这里swap有一个坑点f[j]是你最后要用的已经记录好了的不要乱动u用了j的set直接从f[j]就好了for(auto x:S[j]){auto itS[u].lower_bound(x);if(itS[u].begin())f[u](x-*it)*(x-*it);else if(itS[u].end())it--,f[u](x-*it)*(x-*it);else{int r*it;it--;int l*it;f[u]-(r-l)*(r-l);f[u](x-l)*(x-l)(x-r)*(x-r);}S[u].insert(x);}sz[u]sz[j];} }signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cinn;for(int i2;in;i){int fa;cinfa;g[fa].push_back(i);}dfs(1);for(int i1;in;i)coutf[i]\n; }用树链剖分写 #includebits/stdc.h using namespace std; #define int long long const int N1e510; int n,h[N],ne[N],e[N],idx; int sz[N],id[N],L[N],R[N],o,son[N],ans[N]; setintS; int f; void add(int a,int b){e[idx]b,ne[idx]h[a],h[a]idx; } void dsu(int u){sz[u]1;L[u]o,id[o]u;for(int ih[u];~i;ine[i]){int je[i];dsu(j);if(sz[j]sz[son[u]])son[u]j;sz[u]sz[j];}R[u]o; } void ins(int x){if(S.empty()){S.insert(x);return;}auto itS.lower_bound(x);if(itS.begin())f(x-*it)*(x-*it);else if(itS.end())it--,f(x-*it)*(x-*it);else{int r*it;it--;int l*it;f-(r-l)*(r-l);f(r-x)*(r-x)(x-l)*(x-l);}S.insert(x); } void dfs(int u,int keep0){for(int ih[u];~i;ine[i]){int je[i];if(json[u])continue;dfs(j,0);}if(son[u])dfs(son[u],1);for(int ih[u];~i;ine[i]){int je[i];if(json[u])continue;for(int kL[j];kR[j];k)ins(id[k]);}ins(u);ans[u]f;if(!keep)f0,S.clear(); }signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cinn;memset(h,-1,sizeof h);for(int i2;in;i){int fa;cinfa;add(fa,i);}dsu(1);dfs(1);for(int i1;in;i)coutans[i]\n; }F. Strange Memory #includebits/stdc.h // #define int long long using namespace std; const int N2e510,M1e65e5; int n,h[N],e[N],ne[N],idx,a[N]; int L[N],R[N],id[N],o,sz[N],son[N]; int f[2][20][M]; long long ans; void add(int a,int b){e[idx]b,ne[idx]h[a],h[a]idx; } void dsu(int u,int fa0){sz[u]1;L[u]o;id[o]u;for(int ih[u];~i;ine[i]){int je[i];if(jfa)continue;dsu(j,u);if(sz[j]sz[son[u]])son[u]j;sz[u]sz[j];}R[u]o; } void ins(int u,int k1){for(int i0;i20;i){int xui1;f[x][i][a[u]]k;} } void cal(int u,int need){for(int i0;i20;i){int xui1;ans(1lli)*(f[x^1][i][a[u]^need]);} } void dfs(int u,int fa0,int keep0){for(int ih[u];~i;ine[i]){int je[i];if(jfa||json[u])continue;dfs(j,u,0);}if(son[u])dfs(son[u],u,1);ins(u);//先去递归再插入我自己,不然会wafor(int ih[u];~i;ine[i]){int je[i];if(jfa||json[u])continue;for(int xL[j];xR[j];x)cal(id[x],a[u]);for(int xL[j];xR[j];x)ins(id[x]);}if(!keep)for(int iL[u];iR[u];i)ins(id[i],-1); }signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);memset(h,-1,sizeof h);cinn;for(int i1;in;i)cina[i];for(int i1;in;i){int a,b;cinab;add(a,b);add(b,a);}dsu(1);dfs(1);coutans; }E. Blood Cousins Return 树上gcd(x,y)x^y的个数操作1插入新节点a[x]v,操作2合并x和y子树操作3把a[x]-v #includebits/stdc.h using namespace std; typedef long long ll; const int N3e510; int n,m,p[N],sz[N],a[N]; ll ans; vectorintg[N];//g[i]表示i可能的答案枚举i的约数存入进去 unordered_mapint,intmp[N]; int find(int x){if(p[x]x)return x;return p[x]find(p[x]); } // a^bgcd(a,b)有多少对 //a^b|a-b|gcd(a,b)void merge(int x,int y){xfind(x),yfind(y);if(xy)return;if(sz[x]sz[y])swap(mp[x],mp[y]),swap(sz[x],sz[y]);for(auto [k,v]:mp[y]){for(auto t:g[k])if(mp[x].count(t))ans(ll)mp[x][t]*v;}for(auto [k,v]:mp[y])mp[x][k]v;mp[y].clear();p[y]x;sz[x]sz[y]; } void so(int x){for(int d1;d*dx;d){if(x%d)continue;int id,jx/i,y;yx-i;if((x^y)__gcd(x,y)y0)g[x].push_back(y);yxi;if((x^y)__gcd(x,y)y2e5)g[x].push_back(y);if(ij)continue;yx-j;if((x^y)__gcd(x,y)y0)g[x].push_back(y);yxj;if((x^y)__gcd(x,y)y2e5)g[x].push_back(y);} } signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// for(int i1;i2e5;i)so(i);for (int i 1; i 200000; i) {for (int j i i; j 200000; j i) {if (gcd(j, i^j) i)g[j].push_back(i^j);}}cinnm;for(int i1;inm;i)p[i]i,sz[i]1;for(int i1;in;i)cina[i],mp[i][a[i]];while(m--){int op,x;cinop;if(op1){int v;cinxv;a[x]v;mp[x][v]1;}if(op2){int y;cinxy;merge(x,y);}if(op3){int v;cinxv;int ufind(x);for(auto t:g[a[x]])if(mp[u].count(t))ans-mp[u][t];mp[u][a[x]]--;a[x]v;for(auto t:g[a[x]])if(mp[u].count(t))ansmp[u][t];mp[u][a[x]];}coutans\n;} }#includebits/stdc.h // #define int long long using namespace std; const int N3e510; int n,m,a[N],p[N]; long long ans; vectorintg[N]; int find(int x){if(p[x]x)return x;return p[x]find(p[x]); } void init(){for(int i1;i2e5;i){for(int jii;j2e5;ji){if(__gcd(j,i^j)i)g[j].push_back(i^j);}} } unordered_mapint,intmp[N]; signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);init();cinnm;for(int i1;iN;i)p[i]i;for(int i1;in;i)cina[i],mp[i][a[i]]1;while(m--){int op,x,v;cinopxv;if(op1)a[x]v,p[x]x,mp[x][v]1;if(op2){xfind(x),vfind(v);if(x!v){if(mp[x].size()mp[v].size())swap(mp[x],mp[v]);for(auto [a,c]:mp[v]){for(auto need:g[a])if(mp[x].count(need))ans(long long)c*mp[x][need];}for(auto [a,c]:mp[v])mp[x][a]c;// mp[v].clear();p[v]x;}}if(op3){int fafind(x);int c1;for(auto need:g[a[x]])if(mp[fa].count(need))ans-c*mp[fa][need];mp[fa][a[x]]--;a[x]v;for(auto need:g[a[x]])if(mp[fa].count(need))ansc*mp[fa][need];mp[fa][a[x]];}coutans\n;}}
http://www.zqtcl.cn/news/387478/

相关文章:

  • 知道网站域名怎么联系怎么创建自己的公司网站
  • 淘宝网站开发多少金额网站优化 福州
  • 百度推广让我先做虚拟网站后进一步优化落实
  • 好的网站建设启示汕头网页设计网站方案
  • 深圳网站制作开发免费精准客户软件
  • 网站超链接用什么南宁行业平台开发公司
  • 注册门户网站襄樊seo快速排名
  • 优秀的手机网站iis 设置此网站的访问权限
  • 用nat123做自己的网站深圳市建设工程质量检测中心官网
  • 网上做衣服的网站废旧网站哪个做的最好
  • 网站开发设置网页端口wordpress 知识库
  • 网站建设的方法有四种开发一款新闻app需要多少钱
  • 成都网站建站公司2023年防疫新政策
  • 17做网店一样的网站十大互联网培训机构
  • 中企网络科技建站施工企业oa办公系统
  • 成都网站推广公司排名淘宝商家网站建设
  • 平台网站建设报价网站建设企业蛋糕
  • 上海创意网站建设电子商务毕业设计网站建设
  • 如何让网站打不开 解析wordpress pdf检索
  • 网站建设大作业感想台州企业网站模板建站
  • 淄博网站的优化上海营销网站建站公司
  • 长春网站建设硕成传媒长春电商网站建设哪家好
  • 舟山建设管理网站手表交易网站
  • 如何电话推销客户做网站沉浸式展厅搭建商
  • 重庆网站建设开发e福州官方网站
  • 网站怎么可以被收录广州网站建设全包
  • 网站备案期间如何采购需求网站建设
  • 东莞seo网站优化运营南通网站排名外包
  • 新能源网站建设唐山专业网站建设公司
  • 石基网站建设临沂网站优化哪家好