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

教你做网站的视频/账户竞价托管费用

教你做网站的视频,账户竞价托管费用,全国哪几家做5G网站公司,哈尔滨建站哪个好题目:https://www.lydsy.com/JudgeOnline/problem.php?id5092 套路地弄一个前缀异或和,就变成 f[ i ]max_{j0}^{i} { s[ j ] (s[ i ]^s[ j ]) }。再套路地考虑按位贪心。 然后看了题解。按位贪心不是确定 f[ i ] 的这一位是0还是1,而是确定…

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5092

套路地弄一个前缀异或和,就变成 f[ i ]=max_{j=0}^{i} { s[ j ] + (s[ i ]^s[ j ]) }。再套路地考虑按位贪心。

然后看了题解。按位贪心不是确定 f[ i ] 的这一位是0还是1,而是确定这一位是否给答案贡献 bin[ j ] !

按位考虑,自己这一位如果是1,则 j 不管取在哪,都只有一种情况,就是向答案贡献 bin[ j ];

  自己这一位如果是0,则 j 的位置影响到这一位对答案的贡献是 0 还是 2*bin[ j ] 。

因为自己这一位是0了,又要有那样的贡献,所以 j 的这一位一定是1;做到这一位的时候已经知道更高的位上选择了哪些位为1,所以如果知道自己位置是否可以在满足更高的选了1的位仍旧选1的基础上把这一位也选上1的话就好了。

这里有很好的思路:不是求自己能否达到,而是预处理整个数组里符合这个条件的最靠前的位置!这样自然也能判断自己是否可行了。

即,预处理满足更高位确定、当前位为1、更低位随便的a[ ]的最靠前位置。

这个可以用高维前缀和来做。初值是 p[ a[ i ] ]=min{ p[ a[ i ] ] , i } ,倒着枚举 i 就不用取min了;没有出现的值的 p 是 n+1 ,p[ 0 ] = 0。

状态里的 0 表示不作要求,1表示必须为1;则从低到高位枚举,p[ i ]对(最高位到当前位固定、当前位到最低位是自己子集)的p[ j ]取min即可。

计算答案的时候注意因为 a[ i ]&bin[ j ] 而产生贡献的,不用算在和 p 有关的那个限制里。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=3e5+5,M=25,K=(1<<20)+5;//K!=1e6!!!
int n,a[N],bin[M],p[K];
int rdn()
{int ret=0;bool fx=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')fx=0;ch=getchar();}while(ch>='0'&&ch<='9') ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar();return fx?ret:-ret;
}
int Mx(int a,int b){return a>b?a:b;}
int Mn(int a,int b){return a<b?a:b;}
int main()
{int mx=0,lm;n=rdn();for(int i=1;i<=n;i++)a[i]=rdn()^a[i-1],mx=Mx(mx,a[i]);bin[0]=1;for(lm=1;(bin[lm-1]<<1)<=mx;lm++)bin[lm]=bin[lm-1]<<1;bin[lm]=bin[lm-1]<<1;for(int i=1;i<bin[lm];i++)p[i]=n+1;for(int i=n;i;i--)p[a[i]]=i;p[0]=0;for(int t=0;t<lm;t++)for(int i=1;i<bin[lm];i++)if(!(i&bin[t]))p[i]=Mn(p[i],p[i|bin[t]]);for(int i=1,ans=0,lj=0;i<=n;i++,ans=0,lj=0){for(int j=lm-1;j>=0;j--){if(a[i]&bin[j]){ans+=bin[j];continue;}//no lj|=bin[j]if(p[lj|bin[j]]<=i){ans+=bin[j]<<1;lj|=bin[j];}}printf("%d\n",ans);}return 0;
}

 

转载于:https://www.cnblogs.com/Narh/p/10029879.html

http://www.jmfq.cn/news/5120839.html

相关文章:

  • 软件公司网站设计/前端性能优化有哪些方法
  • 企业管理咨询网站模板/seo收费低
  • 新网站如何做推广软文/长沙网站优化
  • 营销型网站建设方法/凡科网免费建站官网
  • 五华县建设局网站/百度网盟推广
  • 自己的电脑做服务区 网站/教育培训机构
  • 网站做移动适配以后可以取消吗/产品网络营销
  • 如何自己创建网站/seo怎么才能做好
  • 国外比较好的建筑设计网站/2021年度关键词有哪些
  • 做任务领佣金的网站/优化网站的目的
  • 找做网站的人/东莞营销网站建设推广
  • 网站开发与建设会计分录/谷歌关键词搜索工具
  • 投诉举报网站建设方案/营销推广案例
  • 网络营销又可以称为/网站建设方案优化
  • 神木网站建设/长春网站建设方案推广
  • 日本樱花网站怎么做/近期新闻热点大事件
  • 网站首页的布局方式/宁波超值关键词优化
  • 建设企业网站公司/专业网站建设公司
  • 品牌官网方案/揭阳seo快速排名
  • php网站开发面试题/如何做seo搜索引擎优化
  • 最新电子产品网站模板/今天株洲最新消息
  • 做复刻衣服买网站/站长工具网址查询
  • 深圳做分销网站/seo企业推广案例
  • 做任务的正规网站/北京学校线上教学
  • 网站建设销售培训语/账号权重查询
  • 建设网站和ipv4和ipv6什么关系/长沙百度百科
  • 网站测试的主要内容是/网上营销方式和方法
  • 曼朗策划响应式网站建设/seo软件
  • 广州企业网站设计制作/12345微信公众号
  • led灯网站策划书/青岛seo杭州厂商