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

网站建设公司怎么发展新客户电力建设网站进不去

网站建设公司怎么发展新客户,电力建设网站进不去,安卓版wordpress,昆明网站建设公司推荐背景 有一类问题和子集有关。 给你一个集合 S S S&#xff0c;令 T T T 为 S S S 的超集&#xff0c;也就是 S S S 所有子集的集合&#xff0c;求 T T T 中所有元素的和。 暴力1 先预处理子集的元素和 A i A_i Ai​&#xff0c;再枚举子集。 for(int s0; s<(1<…

背景

有一类问题和子集有关。
给你一个集合 S S S,令 T T T S S S 的超集,也就是 S S S 所有子集的集合,求 T T T 中所有元素的和。

暴力1

先预处理子集的元素和 A i A_i Ai,再枚举子集。

for(int s=0; s<(1<<n); s++)for(int i=0; i<(1<<n); i++)if(s&i) f[s]+=A[i];

时间复杂度 O ( n 4 ) O(n^4) O(n4)

暴力2

其实枚举子集有个小 trick

for(int s=0; s<(1<<n); s++)for(int i=s; i>0; i=(i-1)&s)f[s]+=A[i];

由二项式定理,时间复杂度为 O ( 3 n ) O(3^n) O(3n)

子集DP

g s , i g_{s,i} gs,i 为状态为 s s s,只考虑后 i i i 位转移的答案。
那么转移就是

g s , i = { g s , i − 1 s & ( 1 < < i ) = 0 g s , i − 1 + g s ⨁ ( 1 < < i ) , i − 1 o t h e r w i s e g_{s,i} = \begin{cases} g_{s,i-1} & s\&(1<<i)=0 \\g_{s,i-1} +g_{s\bigoplus(1<<i),i-1}&otherwise\end{cases} gs,i={gs,i1gs,i1+gs(1<<i),i1s&(1<<i)=0otherwise
这样可以做到不重不漏的转移。
推荐一篇blog,非常形象:https://www.cnblogs.com/maple276/p/17975253

可以发现,这个转移只和上一层有关,所以第二维是可以省略的。

前缀和(子集向超集转移)
for(int i=0; i<n; i++)
{for(int s=0; s<(1<<n); s++){if(s&_2)(f[s]+=f[s^_2])%(mod-1);}_2<<=1;
}
后缀和(超集向子集转移)
for(int i=0; i<n; i++)
{for(int s=0; s<(1<<n); s++){if(!(s&_2))(f[s]+=f[s^_2])%(mod-1);}_2<<=1;
}
差分
//后缀差分
for(int i=0; i<20; i++)
{for(int s=0; s<S; s++){if(!(s&_2))(f[s]-=f[s^_2])%=mod;}_2<<=1;
}

例题

CF165E

定义 x x x y y y 相容为 x & y = 0 x\&y=0 x&y=0,给你一个序列 A A A,对于每个元素,在 A A A 中找到和它相容的元素。 ∣ A ∣ ≤ 1 0 6 , A i ≤ 4 × 1 0 6 |A|\leq 10^6,A_i\leq 4\times 10^6 A106,Ai4×106

思路

x & y = 0 x\&y=0 x&y=0 等价于 x ˜ & y = y \~x\&y=y x˜&y=y,那么只需要对 A A A做类似前缀和的操作,加法改成覆盖即可。

代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int S=1<<22;
void O_o()
{int n;cin>>n;vector<int> f(S,-1),a(n+1);for(int i=1; i<=n; i++){cin>>a[i];f[a[i]]=a[i];}int _2=1;for(int i=0; i<=21; i++){for(int s=0; s<S; s++){if(!(s&_2)) continue;if(f[s^_2]!=-1)f[s]=f[s^_2];}_2<<=1;}int t=S-1;for(int i=1; i<=n; i++){cout<<f[t^a[i]]<<" ";}cout<<"\n";
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);cout<<fixed<<setprecision(2);int T=1;
//	cin>>T;while(T--){O_o();}
}
http://www.yayakq.cn/news/768691/

相关文章:

  • 杭州购物网站建设怎么样开发app软件
  • 海南网站搭建价格电子商务网站进度的基本流程
  • 免费行情软件网站直播无忧网站建设费用
  • 差异基因做热图在线网站织梦猫免费模板
  • 广州网站设计营销公司中华网
  • 网站建设方案书要写吗中医网站建设素材
  • 网站是做后台好还是做前台好如何开网站详细步骤
  • 长治网站建设招聘陕西手机网站建设公司哪家好
  • 青岛知名网站建设定制做图模板网站有哪些
  • 网站排名 影响因素网站建设合同英文
  • 县检察院门户网站建设情况网站开发 q3687474
  • copyright 个人网站大作业网站建设方案
  • 企业内网 网站建设的解决方案水土保持与生态建设网站
  • 刀具东莞网站建设广东省深圳建设信息网官网
  • 智慧旅游网站建设方案上海公司注册查询官网
  • 网站专题策划页面怎么做腾讯网站建设专家
  • 苏州网站建站推广浙江省工程建设协会网站
  • 厦门网站建设格装修企业网站建设
  • 天津营销网站建设公司排名电子商务网站设计与规划
  • 网站后台左侧导航折叠效果打不开wordpress 前端修改
  • 北京网站优化经理做视频网站服务器要求
  • 赣州做网站的大公司企业网站和展板建设
  • 网站建设的感想和建议广州网业有限公司
  • 网站免费推广平台有哪些彩票网站开发制作h5
  • 榆林华科网站建设wordpress上传文件类型
  • 怎么能加强门户网站建设百度资讯
  • 连云港优化网站团队有名的app开发公司
  • 用jsp进行网站开发济南医院网站建设服务公司
  • 网站网页设计设计方案淄博专业做网站
  • 罗湖网站(建设深圳信科)什么网站上做奥数题