当前位置:网站首页>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')
总结
前缀和思维 + 去掉一个挪到合适的位置 + 二分查
边栏推荐
- 软考 --- 软件工程(2)软件开发方法
- 【Jprofile 11.0 安装】
- 请问一下dms的跨阿里云账户 新增实例,是不是无法新增redis ?
- Li Mu's deep learning notes are here!
- 【Go事】一眼看穿 Go 的集合和切片
- Roslyn 在多开发框架让 msbuild 的 Target 仅运行一次
- Xi'an Zongheng Information × JNPF: Adapt to the characteristics of Chinese enterprises, fully integrate the cost management and control system
- It took half a month to finally make a collection of high-frequency interview questions of first-tier manufacturers
- Real-Time Rendering 4th相关资源整理(无需积分 传火)
- uni-app之renderjs
猜你喜欢
随机推荐
云存储硬核技术内幕——(9) 相见时难别亦难
【Es6中的promise】
【愚公系列】2022年07月 Go教学课程 028-函数小结案例(通讯录)
numpy入门详细代码
使用百度EasyDL实现森林火灾预警识别
For循环控制
To ensure that the communication mechanism
有哪些好用的IT资产管理平台?
How to monitor code cyclomatic complexity by refactoring indicators
GPS satellite synchronization clock, NTP network synchronization clock, Beidou clock server (Jingzhun)
线上一次JVM FullGC搞得整晚都没睡,彻底崩溃
进程间通信方式
DMS 有接口获取每个实例下的数据库列表吗
H5 开发内嵌页面跨域问题
可视化大屏丑?这篇文章教你如何做美观大屏!
seaborn
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践|直播回顾
HyperBDR云容灾深度解析一:云原生跨平台容灾,让数据流转更灵活
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
花了半个月,终于把一线大厂高频面试题做成合集了