当前位置:网站首页>codeforces:808D. Array Division【二分 + 找规律】
codeforces:808D. Array Division【二分 + 找规律】
2022-08-04 15:58:00 【白速龙王的回眸】

分析
一个东西可以往前or往后放
只要看减去这个东西的前缀和和后缀和是否存在half - num即可
注意:这个前缀和or后缀和不能包含当前数,否则会造成改变
ac code
import sys
from itertools import accumulate
from bisect import bisect_left
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
preSum = list(accumulate(a, initial = 0))
b = a[::-1]
preSum2 = list(accumulate(b, initial = 0))
tot = sum(a)
if tot % 2 != 0:
print('NO')
else:
half = tot // 2
flag = False
for i in range(n):
num = a[i]
target = half - num
idx = bisect_left(preSum, target)
if idx <= i and target == preSum[idx]:
flag = True
break
for i in range(n):
num = b[i]
target = half - num
idx = bisect_left(preSum2, target)
if idx <= i and target == preSum2[idx]:
flag = True
break
if flag:
print('YES')
else:
print('NO')
总结
前缀和思维 + 去掉一个挪到合适的位置 + 二分查
边栏推荐
猜你喜欢

Real-Time Rendering 4th related resource arrangement (no credit required)

不需要服务器,教你仅用30行代码搞定实时健康码识别

如何防止重复下单?

有哪些好用的IT资产管理平台?
![吴恩达机器学习[11]-机器学习性能评估、机器学习诊断](/img/99/179c4c2db2b6c1edb61f129d46f313.png)
吴恩达机器学习[11]-机器学习性能评估、机器学习诊断

把boot和APP一起烧录进MCU

GPS satellite synchronization clock, NTP network synchronization clock, Beidou clock server (Jingzhun)

Redis的主从复制和集群

攻防视角下,初创企业安全实战经验分享

RSA306B,500,600系列API接口代码
随机推荐
阿尔萨斯监控平台&普罗米修斯监控平台对服务器资源的监控
功率放大器的设计要点
Tomato assistant downloading tomatoes
ICDE‘22推荐系统论文之Research篇
Real-Time Rendering 4th相关资源整理(无需积分 传火)
云存储硬核技术内幕——(8) 只缘身在此山中
RSA306B,500,600系列API接口代码
Does DMS have an interface to get the list of databases under each instance?
吴恩达机器学习[12]-机器学习系统设计
请问一下dms的跨阿里云账户 新增实例,是不是无法新增redis ?
NFT blind box mining system dapp development NFT chain game construction
Go 言 Go 语,一文看懂 Go 语言文件操作
uni-app之renderjs
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
LeetCode·84.柱状图中最大的矩形·单调递增栈
H5 开发内嵌页面跨域问题
inter-process communication
全差分运放:THS4140
H5 之 文件流转base64下载
(2022杭电多校五)C - Slipper (dijkstra+虚拟结点)