E-拼接串

news/2024/10/18 18:24:54

题目:
思路:在已有的数组中寻找符合条件,也就是没有重复数字的子数组,以掩码的对应位的形式来表示当前子数组元素的存在,之后双重循环生成所有子数组,内层循环中,判断当前元素是否存在掩码中,存在则推出,不存在则加入掩码并标记。用另一个循环来更新 sum 数组,使得每个掩码的值能反映其对应的最大元素数量。之后遍历所有掩码,计算其和补码的元素之和挑最大的那个输出即可。(ps:这种题目真的是人做的吗?)
程序:
def main():
n = int(input())
arr = list(map(int, input().split()))
sum_masks = [0] * (1 << 18)
is_mask = [0] * (1 << 18)
for l in range(n):
mask = 0
for r in range(l, n):
if (mask >> (arr[r] - 1)) & 1:
break
mask |= (1 << (arr[r] - 1))
sum_masks[mask] = bin(mask).count('1')
is_mask[mask] = 1
for i in range(18):
for j in range(1 << 18):
if (j >> i) & 1:
sum_masks[j] = max(sum_masks[j], sum_masks[j - (1 << i)])
ans = 0
for i in range(1 << 18):
if is_mask[i]:
ans = max(ans, bin(i).count('1') + sum_masks[((1 << 18) - 1) ^ i])
print(ans)
if name == "main":
main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

低空经济如何实现商业化

随着技术的进步和政策的支持,低空经济正逐渐成为推动经济发展的新引擎。低空经济,主要指利用低空空域资源,通过有人驾驶和无人驾驶航空器的低空飞行活动,带动相关领域融合发展的综合性经济形态。当前,低空经济的商业化正面临前所未有的机遇与挑战。 技术突破是基础技术是推…

[49 50] (多校联训) A层冲刺NOIP2024模拟赛08 | CSP-S 模拟 12

一小孩在奶茶店玩封盖机被绞断四根手指 记者:你现在感觉怎么样 小孩:👍不是哥们 P 的,你可以自己去 hdk吧 找我左手中指指甲里莫名其妙卡了个木刺 医生 1:(打手电筒) 医生 2:(尝试把刺弄出来) 医生 2:诶呀,断了 医生 2:你就这么想拔这个刺吗 我:这不拔能行? 医…

Fluid Flux2.0海浪原理拆解

【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!大概一年前,在油管上看到这个视频: Fluid Flux 2.0 - Coastline [Unreal Engine 5]除了效果很好,更重要的是看到简介中写着:“并非实…

PHP将整形数字转为Excel下标

1、背景 这两天在接到一个需求,需要导出一个班级所有学员的所有成绩,在最后excel表处理的时候发现导出的列超过了26列,后面会出现AA之类的下标,所以写了一个函数把数字整型转为Excel对应的下标。 2、转换函数/*** @Notes:将整数转为excel对应的列标* @Function int_to_chr*…

18. 模块

一、什么是模块模块化 指将一个完成的程序分解为一个一个小的模块。通过将模块组合,来搭建一个完整的程序。如果不采用模块化,那么所有的代码将统一保存到一个文件中。采用模块化后,将程序分别编写到多个文件中。使用模块化后,我们可以把代码进行复用,这方面后序的开发和维…

csp-s模拟12

csp-s模拟12\(T1\) T2918. 小 h 的几何 \(100pts\)对于任意三角形,均有其三条边的中点、三条高的垂足、三个顶点与垂心连线的中点,这九个点在一个圆上。观察样例可知,对于单位圆上 \(\triangle ABC\) 的三个顶点 \(A(x_{a},y_{a}),B(x_{b},y_{b}),C(x_{c},y_{c})\) ,其九点…

Android8,reactnative中webView传的token,vue中获取不到是怎么回事?

rn代码是这样的,要在vue页面获取到tokenvue中是这样写的,安卓9以上都能得到,就是8获取不到有没有大佬帮忙看看,跪谢!!!!