AtCoder Regular Contest 100 (ARC100) E

摘要:
然后给出一行$2^n$正整数$a_0,a_1,cdots,a_{2^n-1}$对于每个$k$,输出满足$iORjleqk$_i+a_J$值的最大$a。即使我只想了几分钟,那些大个子们会花一秒钟吗?如何提问???考虑$k$需要处理什么,它可以从两个方面继承:一个是它自己的数字$a_。另一部分是$k^{prime}$的结果,将$k$的任何非零位替换为$0$。然后回到最初的问题,得到前缀$max$。

原文链接https://www.cnblogs.com/zhouzhendong/p/9251448.html

题目传送门 - ARC100E题意

  给定一个正整数 $n(nleq 18)$。

  然后给定一行共 $2^n$ 个正整数 $a_0,a_1,cdots,a_{2^n-1}$ 。

  对于每一个 $k(1leq k<2^n)$ ,输出满足 $i OR j leq k$ 的最大 $a_i+a_j$ 值。

题解

  看到这题的心情:为啥不早做这题!!这题过的人怎么这么少??

  连我都只想了几分钟,那么那些大佬是不是都一眼秒?

  好了讲题:

  考虑对于每一个 $k$ 处理出满足 $k OR x=k$ 的所有 $x$ 中 $a_x$ 最大的两个。其中 $k=0$ 的时候特殊一点注意一下。

  具体怎么求???

  考虑一个 $k$ 要处理的东西,可以从两个方面继承:一个是自己本身的数 $a_k$ ,另一部分是把 $k$ 的任意一个非零位换成 $0$ 得到的 $k^{prime}$ 的结果。

  然后回到原题,弄个前缀 $max$ 就好了。

代码
#include <bits/stdc++.h>
using namespace std;
const int N=1<<19;
int n,s,a[N];
int id[N][2];
bool cmp(int A,int B){
	return a[A]<a[B];
}
int main(){
	scanf("%d",&n);
	s=1<<n;
	for (int i=0;i<s;i++)
		scanf("%d",&a[i]);
	a[s]=-1;
	id[0][0]=0,id[0][1]=s;
	for (int i=1;i<s;i++){
		id[i][0]=i,id[i][1]=s;
		int x[4];
		for (int j=0;j<n;j++)
			if (i&(1<<j)){
				int _i=i^(1<<j);
				x[0]=id[i][0],x[1]=id[i][1];
				x[2]=id[_i][0],x[3]=id[_i][1];
				sort(x,x+4,cmp);
				id[i][0]=x[3],id[i][1]=x[2]==x[3]?x[1]:x[2];
			}
	}
	int mx=0;
	for (int i=1;i<s;i++){
		mx=max(mx,a[id[i][0]]+a[id[i][1]]);
		printf("%d
",mx);
	}
	return 0;
}

  

免责声明:文章转载自《AtCoder Regular Contest 100 (ARC100) E》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos7 yum快速安装php7.1四元数 Quaternion下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

RF(一)RF的安装步骤

7.安装Appium 8,安装最新版本的nodeJS:node-v6.9.49,在命令行上执行Appium命令,您应该能够启动Appium服务器~~~~...

为服务中网关的作用

“API网关”核心组件是架构用于满足此些需求。API网关定位为应用系统服务接口的网关,区别于网络技术的网关,但是原理则是一样。API网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等。...

Jboss

同时,为了扩大JBoss的企业市场,JBoss已经签署了许多渠道合作伙伴。2004年6月,JBoss宣布JBoss应用服务器已通过Sun公司的J2EE认证。这是JBoss应用服务器历史上最重要的里程碑。JBossAOP 1.0于2004年10月发布。这也证实了JBoss是一家创新型公司。JBoss应用服务器5.0于2008年12月6日正式发布。新版本的应用服...

Delete from join 用法

delete(别名)fromtblA(别名)leftjointblb(别名)on。。。...

git使用说明

初次使用请参考百度,google,博客园。1修改文件并提交到github[luwenwei@dev01v~/git/helww/labs]$vimREADME[luwenwei@dev01v~/git/helww/labs]$gitdiffdiff--gita/READMEb/READMEindex39d8172..464c83f100644---a/REA...

10 TCP限流技术

TCP流限制的原因是接收方可以完全接受消息,以确保数据安全而不会丢失。首先,窗口机制引入了发送方和接收方都有一个窗口。当发送方发送数据时,将发送落入窗口中的数据。当接收器接收到数据时,落入接收器窗口的数据将被接受。可以看出,流量会受到窗口大小II的限制。滑动窗口技术1TCP滑动窗口技术通过动态改变窗口大小来调整两台主机之间的数据传输。...