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

now9999网站提示建设中网站主导航

now9999网站提示建设中,网站主导航,门户网站建设方案,做网站可以用微软雅黑字体么E-Tree Xor 首先不考虑区间限制条件#xff0c;我们给定其中一个点的权值后#xff0c;那么其他点的权值也就确定。比如 val10\text{val}_10val1​0#xff0c;即可通过变得限制求出其他点valu\text{val}_uvalu​#xff0c;而且不难发现如果val10⊕a\text{val}_10\oplus …E-Tree Xor 首先不考虑区间限制条件我们给定其中一个点的权值后那么其他点的权值也就确定。比如 val10\text{val}_10val1​0即可通过变得限制求出其他点valu\text{val}_uvalu​而且不难发现如果val10⊕a\text{val}_10\oplus aval1​0⊕a那么其余点的权值valu0⊕a\text{val}_u0\oplus avalu​0⊕a 下面记valu\text{val}_uvalu​为当val10\text{val}_10val1​0时u点的权值。 于是问题转化为求出满足下面区间限制aaa的个数。 L1≤val1⊕a≤R1L2≤val2⊕a≤R2…Ln≤valn⊕a≤Rn\text L_1\leq \text{val}_1\oplus a\leq \text R_1\\\text L_2\leq \text{val}_2\oplus a\leq \text R_2\\ \dots\\ \text L_n\leq \text{val}_n\oplus a\leq \text R_n L1​≤val1​⊕a≤R1​L2​≤val2​⊕a≤R2​…Ln​≤valn​⊕a≤Rn​ 考虑其中一种限制直观的想法是Lu≤valu⊕a≤Ru⇒L1⊕val1≤a≤R1⊕val1\text L_u\leq \text{val}_u\oplus a\leq \text R_u\Rightarrow \text L_1\oplus \text{val}_1\ \leq a\leq \text R_1\oplus \text{val}_1Lu​≤valu​⊕a≤Ru​⇒L1​⊕val1​ ≤a≤R1​⊕val1​不难发现上面转化是错误的而且可以发现aaa的区间是不连续的需要找出这些不连续的区间 于是就很难处理后面就是讲题人的做法真滴强 我们可以利用 [0,230−1][0,2^{30}-1][0,230−1] 的线段树, 把 [Li,Ri][L_i , R_i][Li​,Ri​] 分成 log⁡W\log WlogW个连续的区间, 且每个区间的形式是 : [∗∗∗00…00,∗∗∗11…11][***00\dots00,***11\dots 11][∗∗∗00…00,∗∗∗11…11], 这样的区间异或上 vali\text{val}_ivali​ 后仍然还是一个区间 不妨设∗∗∗***∗∗∗的数量是k 不难发现区间[∗∗∗00…00,∗∗∗11…11][***00\dots00,***11\dots 11][∗∗∗00…00,∗∗∗11…11]抑或上vali\text{val}_ivali​的区间是[−−−00…00,−−−,11…11][- - -00\dots00,---,11\dots11][−−−00…00,−−−,11…11] 其中−−−---−−−是(∗∗∗00…00)⊕vali(***00\dots00)\oplus \text{val}_i(∗∗∗00…00)⊕vali​的前kkk位的值 比如[10100000,10101111][\color{Blue}{1010} \color{Red}{0000},\color{Blue}{1010} \color{Red}{1111}][10100000,10101111]⊕10011010⇒\oplus\color{Blue}{1001} \color{Red}{1010}\Rightarrow⊕10011010⇒ [00110000,00111111][\color{Blue}{0011} \color{Red}{0000},\color{Blue}{0011} \color{Red}{1111}][00110000,00111111] 蓝色部分异或00111010⊕0011\color{Blue}00111010\oplus001100111010⊕0011原红色部分不变稍微思考一下就知道为什么了。 通过上面操作成功找出这些不连续的区间 然后就sort区间差分乱搞就行。时间复杂度2log可以用线段树维护所有不合法区间的并集把不合法的区间标记为1把时间复杂度降为1log Code1 #includebits/stdc.h using namespace std; using lllong long; template class Tint T rd() {T res0;T fg1;char chgetchar();while(!isdigit(ch)) {if(ch-) fg-1;chgetchar();}while( isdigit(ch)) res(res1)(res3)(ch^48),chgetchar();return res*fg; } const int N100010; int h[N],e[2*N],ne[2*N],w[2*N],idx; void add(int a,int b,int c){e[idx]b,w[idx]c,ne[idx]h[a],h[a]idx;} int L[N],R[N]; int val[N]; struct node {int l,r; }tree[N*40]; int rt,cnt,n; vectorpairint,int vec; void insert(int u,int l,int r,int L,int R,int val) {if(!u) ucnt;if(LlrR){int qll^(val(~(r-l)));//异或之后的区间[ql,qr]int qrqlr-l;vec.push_back({ql,1});vec.push_back({qr1,-1});return;}int midlr1;if(Lmid) insert(tree[u].l,l,mid,L,R,val);if(Rmid)insert(tree[u].r,mid1,r,L,R,val); }void dfs(int u,int fa) {insert(rt,0,(130)-1,L[u],R[u],val[u]);for(int ih[u];i!-1;ine[i]){int ve[i];if(vfa) continue;val[v]val[u]^w[i];dfs(v,u);} } int solve() {sort(vec.begin(),vec.end());vec.push_back({130,0});int ans0;int cur0;for(int i0;ivec.size()-1;i){curvec[i].second;if(curn) ansvec[i1].first-vec[i].first;}return ans; } int main() {nrd();for(int i1;in;i) L[i]rd(),R[i]rd();memset(h,-1,sizeof h);for(int i1;in;i){int urd(),vrd(),wrd();add(u,v,w),add(v,u,w);}dfs(1,0);printf(%d\n,solve()); }比较容易想到的做法就是我们需要求 L1≤val1⊕a≤R1L2≤val2⊕a≤R2…Ln≤valn⊕a≤Rn\text L_1\leq \text{val}_1\oplus a\leq \text R_1\\\text L_2\leq \text{val}_2\oplus a\leq \text R_2\\ \dots\\ \text L_n\leq \text{val}_n\oplus a\leq \text R_n L1​≤val1​⊕a≤R1​L2​≤val2​⊕a≤R2​…Ln​≤valn​⊕a≤Rn​ 转化成 [val1⊕a≤R1]➖[val1⊕aL1][val2⊕a≤R2]➖[val2⊕aL2]…[valn⊕a≤Rn]➖[valn⊕aLn][\text{val}_1\oplus a\leq \text R_1]➖[\text{val}_1\oplus a \text L_1]\\ [\text{val}_2\oplus a\leq \text R_2]➖[\text{val}_2\oplus a \text L_2]\\ \dots\\ [\text{val}_n\oplus a\leq \text R_n]➖[\text{val}_n\oplus a \text L_n] [val1​⊕a≤R1​]➖[val1​⊕aL1​][val2​⊕a≤R2​]➖[val2​⊕aL2​]…[valn​⊕a≤Rn​]➖[valn​⊕aLn​] 上面的➖理解为两个集合相减。 实际上我需要求的就是⊕a≤b\oplus a\leq b⊕a≤b的区间显然字典树可以做相当于求⊕a≤b\oplus a\leq b⊕a≤b的数有哪些和第二次杭电I love counting求的步骤一样在Trie树上讨论一下就行。 Code2 #includebits/stdc.h using namespace std; using lllong long; template class Tint T rd() {T res0;T fg1;char chgetchar();while(!isdigit(ch)) {if(ch-) fg-1;chgetchar();}while( isdigit(ch)) res(res1)(res3)(ch^48),chgetchar();return res*fg; } const int N100010; int h[N],e[2*N],ne[2*N],w[2*N],idx; void add(int a,int b,int c){e[idx]b,w[idx]c,ne[idx]h[a],h[a]idx;} int L[N],R[N]; int val[N]; struct node {int l,r; }tree[N*40]; int rt,cnt,n; vectorpairint,int seg[2]; void query(int k,int a,int b)// x^ab {int urt;int cur0;for(int i29;i0;i--)//30位{int aiai1;int bibi1;if(bi1) //b1{if(ai0) {seg[k].push_back({cur,cur(1i)-1});cur1i;if(!tree[u].r) tree[u].rcnt;utree[u].r;}else{seg[k].push_back({cur(1i),cur(1i)(1i)-1});if(!tree[u].l) tree[u].lcnt;utree[u].l;}}else{if(ai0){if(!tree[u].l) tree[u].lcnt;utree[u].l;}else {cur1i;if(!tree[u].r) tree[u].rcnt;utree[u].r;}}}seg[k].push_back({cur,cur}); } void dfs(int u,int fa) {for(int ih[u];i!-1;ine[i]){int ve[i];if(vfa) continue;val[v]val[u]^w[i];dfs(v,u);} } int solve() {vectorpairint,intvec;for(auto t:seg[0]) {vec.push_back({t.first,-1});vec.push_back({t.second1,1});}for(auto t:seg[1]) {vec.push_back({t.first,1});vec.push_back({t.second1,-1});}sort(vec.begin(),vec.end());vec.push_back({130,0});int ans0;int cur0;for(int i0;ivec.size()-1;i){curvec[i].second;if(curn) ansvec[i1].first-vec[i].first;}return ans; } int main() {nrd();for(int i1;in;i) L[i]rd(),R[i]rd();memset(h,-1,sizeof h);for(int i1;in;i){int urd(),vrd(),wrd();add(u,v,w),add(v,u,w);}dfs(1,0);for(int i1;in;i) {if(L[i]0) query(0,val[i],L[i]-1);query(1,val[i],R[i]);}printf(%d\n,solve()); }其实仔细分析应该能写出Trie树的做法不过当时没有分析出来啊www 要加油哦~
http://www.pierceye.com/news/679152/

相关文章:

  • 网站关键词可以修改吗做响应式网站字体需要响应么
  • 公司网站设计怎么做农家乐联盟网站
  • 普通网站报价多少扬中论坛网
  • 提供邢台做wap网站网站开发怎么进行数据库连接
  • 足球网站网站建设东莞网上销售网站建设
  • 响应式网站手机蓝翔老师做的网站
  • 公司网站建设维护合同中德生态园网站定制
  • 网站建设实训结论站长查询工具
  • 做电影网站要很大的主机空间吗苏州网站推广如何
  • 网站维护内容及费用网站详细设计
  • 国产手机做系统下载网站七牛云做wordpress图床
  • 营销型网站建设网站百度文库账号登录入口
  • 医疗网站建设资讯国内十大游戏公司排名
  • 江苏网站建设网络公司男做基视频网站
  • 网站建设培训公司排名客户管理软件免费版
  • 甘肃省建设工程网上投标网站好玩的网游
  • 大学生网站建设课程总结唐四薪php网站开发答案
  • 郑州的网站建设公司有哪些企业策划案
  • 查询域名网站苏州专业网站seo推广
  • 游戏网站建设计划书梦织做网站
  • 电商运营公司简介seo搜索引擎优化求职简历
  • 烟台门户网站有哪些网站做的比较好的
  • 外贸企业论坛网站建设找建站公司做网站注意事项
  • 莱芜亓家网站网站认证怎么认证
  • 安康做网站的公司wordpress zh_cn.po
  • 温州网页网站制作怎么看一个网站有没有做301
  • 网站主流系统2018年网站建设
  • 好的交互网站sql网站发布流程
  • 河北住房与城乡建设部网站网站管理手册
  • 学网站建设需要用哪几个软件营销型网站建设的指导原则