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

wordpress站酷首页谷歌优化

wordpress站酷首页,谷歌优化,网站后台邮箱设置,设计说明ai生成前言 有点懊恼的一个题… 并没有其他那些ZJOI那么毒瘤#xff0c;看出了关键结论#xff0c;但最后维护卡在log条虚边的伞兵性质上了。 解析 第一眼#xff1a;感觉根本不可做啊。 冷静一下#xff0c;既然它还变态的带修#xff0c;一定是可以转化成比较形式化的东西的…前言 有点懊恼的一个题… 并没有其他那些ZJOI那么毒瘤看出了关键结论但最后维护卡在log条虚边的伞兵性质上了。 解析 第一眼感觉根本不可做啊。 冷静一下既然它还变态的带修一定是可以转化成比较形式化的东西的。 对每个节点考虑对答案贡献了多少次设 sxs_xsx​ 表示 x 子树内权值之和mxxmx_xmxx​ 表示 max⁡(ax,max⁡u∈sonxsu)\max(a_x,\max_{u\in son_{x}}s_{u})max(ax​,maxu∈sonx​​su​)那么答案的上界显然是 sx−1s_x-1sx​−1但前提是不同子树的权值必须交错出现因此其实应该是 min⁡(sx−1,2(sx−mxx))\min(s_x-1,2(s_x-mx_x))min(sx​−1,2(sx​−mxx​))递归的想可以发现这个结论一直都是对的。写一发暴力得到了30分说明结论没有问题。 考虑如何快速的维护修改。 一个节点 x 收到某个儿子 son “一家独大”的制约当且仅当 2∗sson≥sx12*s_{son}\ge s_x12∗sson​≥sx​1。显然至多存在一个这样的儿子定义其为 hsonxhson_xhsonx​特别的hsonxhson_xhsonx​ 可以为 x 自己(x,hsonx)(x,hson_x)(x,hsonx​) 这样的边定义为实边其他边定义为虚边。 考虑对一个节点 x w贡献发生改变的必然是一条返祖链。进一步发现对于返祖链上的一条实边其父亲端的贡献必然不会改变。 然后我觉的虚实边变来变去我就不会了。 接下来通过和树剖类似的证明 可以得出任意一条返祖链上的虚边最多有 log⁡ai\log a_ilogai​ 条。 所以暴力跳修改所有虚边的贡献即可。 实现上树剖后开两棵线段树一棵维护虚实边一棵维护 sxs_xsx​ 即可。 时间复杂度 O(nlog⁡n(log⁡nlog⁡∑ai))O(n\log n(\log n\log {\sum a_i}))O(nlogn(lognlog∑ai​))。 #includebits/stdc.h using namespace std; #define ll long long #define ull unsigned ll #define debug(...) fprintf(stderr,__VA_ARGS__) #define ok debug(OK\n)inline ll read() {ll x(0),f(1);char cgetchar();while(!isdigit(c)) {if(c-) f-1;cgetchar();}while(isdigit(c)) {x(x1)(x3)c-0;cgetchar();}return x*f; } const int N4e5100; const int mod1e97;bool mem1;inline ll ksm(ll x,ll k){ll res(1);while(k){if(k1) resres*x%mod;xx*x%mod;k1;}return res; }int n,m;struct seg{ #define mid ((lr)1) #define ls (k1) #define rs (k1|1)ll sum[N2],laz[N2];inline void pushup(int k){sum[k]sum[ls]sum[rs];}inline void add(int k,int l,int r,ll w){sum[k](r-l1)*w;laz[k]w;}inline void pushdown(int k,int l,int r){ll olaz[k];laz[k]0;if(!o) return;add(ls,l,mid,o);add(rs,mid1,r,o);return;}void change(int k,int l,int r,int x,int y,ll w){if(xlry){add(k,l,r,w);return;}pushdown(k,l,r);if(xmid) change(ls,l,mid,x,y,w);if(ymid) change(rs,mid1,r,x,y,w);pushup(k);}int findpre(int k,int l,int r,int p){if(!k) exit(0);//debug(k%d (%d %d) p%d\n,k,l,r,p);if(!sum[k]) return 0;if(lr) return l;if(pmid) return findpre(ls,l,mid,p);pushdown(k,l,r);int ofindpre(rs,mid1,r,p);if(o) return o;else return findpre(ls,l,mid,p);}ll ask(int k,int l,int r,int p){if(lr) return sum[k];pushdown(k,l,r);if(pmid) return ask(ls,l,mid,p);else return ask(rs,mid1,r,p);} }t1,t2; //t1:s //t2:tagll a[N],s[N],mx[N],ans; int hson[N],siz[N],top[N],dep[N],fa[N],dfn[N],pos[N],tim; bool tag[N]; vectorinte[N]; void dfs1(int x,int f){siz[x]1;dep[x]dep[f]1;fa[x]f;s[x]mx[x]a[x];hson[x]x;for(int to:e[x]){if(tof) continue;dfs1(to,x);siz[x]siz[to];s[x]s[to];if(s[to]mx[x]){hson[x]to;mx[x]s[to];}}ansmin(s[x]-1,2*(s[x]-mx[x]));ll shhson[x]x?a[x]:s[hson[x]];if(2*shs[x]1) hson[x]0;if(hson[x]hson[x]!x) tag[hson[x]]1;return; } void dfs2(int x,int tp){//debug(x%d tp%d\n,x,tp);top[x]tp;dfn[tim]x;pos[x]tim;int son0;for(int to:e[x]){if(tofa[x]) continue;if(siz[to]siz[son]) sonto;}if(son) dfs2(son,tp);for(int to:e[x]){if(tofa[x]||toson) continue;dfs2(to,to);}return; } void init(){ dfs1(1,0);dfs2(1,1);for(int i1;in;i){t1.change(1,1,n,pos[i],pos[i],s[i]);if(i1!tag[i]) t2.change(1,1,n,pos[i],pos[i],1);//printf(i%d hson%d s%lld tag%d\n,i,hson[i],s[i],tag[i]);}return; } inline ll calc(ll s,ll mx){return min(s-1,2*(s-mx)); }inline void upd(int x,int w){int orix;//printf(upd: x%d w%d\n,x,w);if(hson[x]!x){int sonhson[x];ll shson?t1.ask(1,1,n,pos[son]):0,sxt1.ask(1,1,n,pos[x]); ans-calc(sx,sh);anscalc(sxw,max(sh,a[x]w));//printf( x%d son%d sh%lld ans%lld\n,x,son,sh,ans);if(son2*sh(sxw)1){t2.change(1,1,n,pos[son],pos[son],1);hson[x]0;}if(2*(a[x]w)(sxw)1){hson[x]x;}}while(x){int pt2.findpre(1,1,n,pos[x]);if(p0||ppos[top[x]]) xfa[top[x]];else{xdfn[p];int sonhson[fa[x]];ll sft1.ask(1,1,n,pos[fa[x]]),shson?sonfa[x]?a[fa[x]]:t1.ask(1,1,n,pos[son]):0,sxt1.ask(1,1,n,pos[x]); ans-calc(sf,sh);anscalc(sfw,max(sxw,sh));//printf( x%d son%d sf%lld sh%lld sx%lld p%d ans%lld\n,x,son,sf,sh,sx,p,ans);if(son2*sh(sfw)1){t2.change(1,1,n,pos[son],pos[son],1);hson[fa[x]]0;}if(2*(sxw)(sfw)1){t2.change(1,1,n,pos[x],pos[x],-1);hson[fa[x]]x;}xfa[x];}}xori;a[x]w;while(x){t1.change(1,1,n,pos[top[x]],pos[x],w);xfa[top[x]];}return; }bool mem2; signed main(){ #ifndef ONLINE_JUDGEfreopen(a.in,r,stdin);freopen(a.out,w,stdout); #endifnread();mread();for(int i1;in;i) a[i]read();for(int i1;in;i){int xread(),yread();e[x].push_back(y);e[y].push_back(x);}init();printf(%lld\n,ans);for(int i1;im;i){int xread(),wread();upd(x,w);printf(%lld\n,ans);}return 0; } /* */
http://www.pierceye.com/news/628843/

相关文章:

  • 建设银行网站怎么登陆不做网站首页的尺寸
  • 谁能给我一个网站谢谢dedecms收费怎么办
  • dede 网站地图 模块青岛做网站服务商
  • 征信网站开发扬州市建设局网站
  • 教育网站建设 飞沐软件定制公司值得去吗
  • 金耀网站建设网站制作景观建筑人才网
  • 仿《爱美眉》网站 dede门户网站的主要功能
  • 外发加工网站深圳如何优化
  • 做设计在哪个网站上找高清图片大全网站建设风险分析
  • 做兼职哪个网站好哪些网站做免费送东西的广告6
  • 网站建设战略互动模板wordpress
  • 三原网站建设网易企业邮箱登录v
  • 为网站营销好处wordpress tar.xz
  • wordpress建站比较淘宝客网站怎么建设
  • 网站结构有哪些安徽省建设工程信息网官方网站
  • 如何查看网站是否备案直播网站怎么做啊
  • 广西做网站的公司投资融资理财网站模板
  • 做网站的颜色游戏推广员拉人犯法吗
  • 金融审核网站制作站长之家网址ip查询
  • 石家庄做家教网站网络营销网站建设
  • 怎么做淘宝网站赚钱吗怎样提高百度推广排名
  • 购物网站建设成本u9u8网站建设
  • 抚州市住房和城乡建设局网站手机网站素材
  • 用dw做音乐网站模板策划公司收费明细
  • 大气手机网站模板免费下载南昌seo排名
  • 做卖衣服网站源代码seo搜索引擎优化名词解释
  • 东营免费建网站网络运维必备知识
  • 盐城建设网站备案 网站负责人
  • 外贸营销网站怎么建设网站域名注册证书
  • 安徽网站建设首选-晨飞网络甘肃泾川县门户网站两学一做