当前位置:网站首页>codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
codeforces:C. Maximum Subrectangle【前缀和 + 贪心 + 最小子数组和】
2022-08-03 19:51:00 【白速龙王的回眸】
分析
两个sigma的求和最终等价于
a的子数组和乘b的子数组和 小于等于 x
对于固定长度的子数组而言,我们都能找出一个和最小的
对于a和b我们都找出指定长度L和最小的子数组和(贪心)
然后一一配对,看看是否面积更大且满足和乘积小于等于x即可
ac code
import sys
import math
from itertools import accumulate
input = sys.stdin.readline
n, m = list(map(int, input().split()))
a = list(map(int, input().split()))
b = list(map(int, input().split()))
x = int(input())
# (aj1 + ... + aj2) * (bi1 + ... + bi2) <= x
ans = 0
# for a, b; fix length L, the min Sum => greedy
f1 = [math.inf] * (n + 1)
f2 = [math.inf] * (m + 1)
preSum1 = list(accumulate(a, initial = 0))
preSum2 = list(accumulate(b, initial = 0))
# for a
for l in range(1, n + 1):
for st in range(n - l + 1):
end = st + l - 1
f1[l] = min(f1[l], preSum1[end + 1] - preSum1[st])
# for b
for l in range(1, m + 1):
for st in range(m - l + 1):
end = st + l - 1
f2[l] = min(f2[l], preSum2[end + 1] - preSum2[st])
# combine
for l1, v1 in enumerate(f1):
for l2, v2 in enumerate(f2):
if l1 * l2 > ans and v1 * v2 <= x:
ans = l1 * l2
print(ans)
总结
转化为两个子数组的乘积
长度是两个未知数,枚举出来
然后选出当长度固定时最小的和即可
这个用前缀和稍微操作即可
边栏推荐
- 线上一次JVM FullGC搞得整晚都没睡,彻底崩溃
- 从文本匹配到语义相关——新闻相似度计算的一般思路
- Postgresql-xl全局快照与GTM代码走读(支线)
- JMeter笔记5 |Badboy使用和录制
- Introduction to Cosine Distance
- Redis 内存满了怎么办?这样置才正确!
- pg_memory_barrier_impl in Postgresql and C's volatile
- 机器学习中专业术语的个人理解与总结(纯小白)
- 【STM32】标准库-自定义BootLoader
- The effective square of the test (one question of the day 7/29)
猜你喜欢
随机推荐
建模该从哪一步开始?给你分析,给零基础的你一些学习建议
Radondb mysql installation problems
【leetcode】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)
Shell编程之循环语句
Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting
Handler 源码解析
php根据两点经纬度计算距离
ERROR: You don‘t have the SNMP perl module installed.
群辉查看硬盘存储占用的方式
百利药业IPO过会:扣非后年亏1.5亿 奥博资本是股东
FreeRTOS Intermediate
ThreadLocal详解
MySQL 主从,6 分钟带你掌握!
Postgresql source code (65) analysis of the working principle of the new snapshot system Globalvis
线上一次JVM FullGC搞得整晚都没睡,彻底崩溃
redis常用命令,HSET,XADD,XREAD,DEL等
标准C语言学习总结11
安装radondb mysql遇到问题
ADS 2023 Download Link
消除对特权账户的依赖使用Kaniko构建镜像