Codeforces 1060C Maximum Subrectangle(子矩阵+预处理)
题意:给出数组a,b,组成矩阵c,其中$c_{ij}=a_i*b_j$,找出最的大子矩阵,使得矩阵元素和<=x,求这个矩阵的size
n,m<=2000
思路:对于子矩阵(l1...r1)*(l2...r2),矩阵元素和为(a[l1]+a[l1+1]+...+a[r1])*(b[l2]+b[l2+1]+...+b[r2])
这样处理出长度为i的连续数组最小和aa[i],bb[i],再枚举一下长度即可
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
//#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#include<map>
#include<functional> #define fst first
#define sc second
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define lc root<<1
#define rc root<<1|1
#define lowbit(x) ((x)&(-x)) using namespace std; typedef double db;
typedef long double ldb;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PI;
typedef pair<ll,ll> PLL; const db eps = 1e-;
const int mod = ;
const int maxn = 2e5+;
const int maxm = 2e5+;
const int inf = 0x3f3f3f3f;
const db pi = acos(-1.0); ll a[maxn],b[maxn];
ll aa[maxn], bb[maxn];
int main() {
int n, m;
scanf("%d %d", &n, &m);
mem(a, );
mem(b, );
for(int i = ; i <= n; i++){
scanf("%lld", &a[i]);
a[i]+=a[i-];
}
for(int i = ; i <= m; i++){
scanf("%lld", &b[i]);
b[i]+=b[i-];
}
ll ans = ;
ll tmp = ;
ll x;
scanf("%lld", &x);
mem(aa,0x3f);
mem(bb,0x3f);
for(int i = ; i <= n; i++){
for(int j = ; j <= i; j++){
//j~i
aa[i-j+]=min(aa[i-j+],a[i]-a[j-]);
}
}
for(int i = ; i <= m; i++){
for(int j = ; j <= i; j++){
bb[i-j+]=min(bb[i-j+],b[i]-b[j-]);
}
} for(int i = ; i <= n; i++){
for(int j = ; j <= m; j++){
if(aa[i]*bb[j]<=x)ans = max(ans, 1ll*i*j);
}
}
printf("%lld", ans);
return ;
}
Codeforces 1060C Maximum Subrectangle(子矩阵+预处理)的更多相关文章
- CF1060C Maximum Subrectangle【乘法分配律】【最大子矩阵】
CF1060C Maximum Subrectangle 题意翻译 现在给出一个长度为N的a数列,一个长度为M的b数列. 现在需要构造出一个矩阵c,其中ci,j=ai×bj.再给出一个x,请在矩 ...
- Codeforces 484B Maximum Value(高效+二分)
题目链接:Codeforces 484B Maximum Value 题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj 解题思路:类似于素数筛选法的方式,每次枚举aj,然 ...
- Codeforces C. Maximum Value(枚举二分)
题目描述: Maximum Value time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #513 by Barcelona Bootcamp C. Maximum Subrectangle(双指针+思维)
https://codeforces.com/contest/1060/problem/C 题意 给两个数组,a数组有n个元素,b数组有m个元素,两个数组元素互相相乘形成n*m的矩阵,找一个子矩阵,元 ...
- CF 375B Maximum Submatrix 2[预处理 计数排序]
B. Maximum Submatrix 2 time limit per test 2 seconds memory limit per test 512 megabytes input stand ...
- [Codeforces Round #508 (Div. 2)][Codeforces 1038E. Maximum Matching]
前几天给舍友讲这题的时候感觉挺有意思的,就贴上来吧... 题目链接:1038E - Maximum Matching 题目大意:有\(n\)个棒子,每个条两端有颜色\(c1,c2\)以及他的价值\(v ...
- [Manthan, Codefest 18][Codeforces 1037F. Maximum Reduction]
题目链接:1037F - Maximum Reduction 题目大意:给出一段代码,给你一个长度为n的数组和数字k,求程序运行结果,mod 1e9+7输出 简单翻译下代码的意思,初始定义一个空数组b ...
- C. Maximum Subrectangle
链接 [http://codeforces.com/contest/1060/problem/C] 题意 给你两个数列,可以构成一个矩阵C,ci,j=ai⋅bj 1≤x1≤x2≤n , 1≤y1≤y2 ...
- Codeforces 332B Maximum Absurdity(DP+前缀和处理)
题目链接:http://codeforces.com/problemset/problem/332/B 题目大意:给你n个数和一个整数k,要求找到不相交的两个长度为k的区间,使得区间和最大,输出这两个 ...
随机推荐
- Python 线性回归(Linear Regression) 基本理解
背景 学习 Linear Regression in Python – Real Python,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正. 线性回归(Lin ...
- 快速开发一个npm包(轮子)
动机 很多人都想写一个自己的轮子,可是开始动手的时候你总会遇到以下问题 一个基本的 js 库应该如何编写 基本的前端项目都要哪些文件 又要怎么打包发布到 npm 上 你的 es6 语法如何才能让别人识 ...
- Sql Server学习笔记
1.指定路径创建数据库 create database student on--创建库的时候必须写 ( name=student, filename='E:\database\student.mdf' ...
- 巧用位运算规律 Flags
找规律 (1 ) &1 =1 (1 ) &2 =0 (1 ) &3 =1 (1 ) &4 =0 (1 ) &5 =1 (1 ) &6 =0 (1 ) & ...
- wannafly 27 D 巧妙求取约数
链接:https://www.nowcoder.com/acm/contest/215/D来源:牛客网 题目描述 “我不知道你在说什么,因为我只是个pupil.”--绿魔法师 一个空的可重集合S. n ...
- 用PHP写下HELLO WORLD!
一.选择PHP开发工具 1.phpstorm最新版本 2.打开phpstorm界面 按create键,选择new window ,出下如下页面: 鼠标放在文件夹上,右键单击,弹出以下对话框:做如下操作 ...
- 使用ABAP Data Validator验证数据有效性
在日常的开发过程中,我们常常要处理不同来源的数据.数据可能来自不可靠的外部系统.不可靠的用户输入和甚至设计有误的数据库表,因此,对数据有效性进行验证是必要的工作. 开源工具ABAP Data Vali ...
- OAuth2.0的那点荒唐小秘密 -几个简单概念和原理
OAuth2.0这个名词你是否在项目中时常听到呢?是否觉得好像懂,又好像不太懂呢? 最近一直想写篇关于OAuth2.0的东西,记录下我的学习与感悟,然各种理由的拖延,直到今日才静下心来写下这篇博客.当 ...
- spring boot配置spring-data-jpa的时候报错CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.NoSuchMethodError
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager f ...
- 【Oracle】内连接、外连接、(+)的使用
表各有A, B两列 A B 001 10A 002 20A A B 001 10B 003 30B A B 001 10C 004 40C 连接分为两种:内连接与外连接. A.内连接 内连接,即最常见 ...