↓ Skip to main content
  1. Posts/

hdu 1559 最大子矩阵 (二维前缀和)

·313 words·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

hdu 1559

题意:给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。

思路:二维前缀和就好。。。和单调栈没有半毛钱关系吧。。。

代码实现
 1/* ***********************************************
 2Author :111qqz
 3Created Time :2016年08月03日 星期三 21时08分18秒
 4File Name :code/hdu/1559.cpp
 5************************************************ */
 6
 7#include <cstdio>
 8#include <cstring>
 9#include <iostream>
10#include <algorithm>
11#include <vector>
12#include <queue>
13#include <stack>
14#include <set>
15#include <map>
16#include <string>
17#include <cmath>
18#include <cstdlib>
19#include <ctime>
20#define fst first
21#define sec second
22#define lson l,m,rt<<1
23#define rson m+1,r,rt<<1|1
24#define ms(a,x) memset(a,x,sizeof(a))
25typedef long long LL;
26#define pi pair < int ,int >
27#define MP make_pair
28
29using namespace std;
30const double eps = 1E-8;
31const int dx4[4]={1,0,0,-1};
32const int dy4[4]={0,-1,1,0};
33const int inf = 0x3f3f3f3f;
34const int N=1E3+7;
35int a[N][N];
36int sum[N][N];
37int n,m,x,y;
38int main()
39{
40	#ifndef  ONLINE_JUDGE
41	freopen("code/in.txt","r",stdin);
42  #endif
43	int T;
44	cin>>T;
45	while (T--)
46	{
47	    ms(sum,0);
48	    scanf("%d%d%d%d",&n,&m,&x,&y);
49	    for ( int i = 1  ; i <= n ; i++)
50		for ( int j = 1 ; j <= m ; j++)
51		{
52		    scanf("%d",&a[i][j]);
53		    sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1] + a[i][j];
54		}
55	    int ans = 0 ;
56	    for ( int i = 1 ; i <= n-x+1 ; i++)
57		for ( int j = 1 ; j <= m-y+1 ; j++)
58		    ans = max(ans,sum[i+x-1][j+y-1]-sum[i-1][j+y-1]-sum[i+x-1][j-1]+sum[i-1][j-1]);
59
60	    printf("%d\n",ans);
61	}
62
63  #ifndef ONLINE_JUDGE
64  fclose(stdin);
65  #endif
66    return 0;
67}

Related

poj 2796 Feel Good (前缀和,单调栈)

·509 words·2 mins
poj 2796 题意:给出一个人n(1E5)天的情绪值(0..1E6),一段时间的value的定义是这段时间的情绪之和*这段时间情绪的最小值。 现在求value的最大值,并且输出得到这个最大值的区间。

poj 2082 Terrible Sets (前缀和,单调栈)

·444 words·1 min
poj 2082 题目链接 题意:这道题简直就是。。。教给大家怎么把一句话把简单的题让人出得看不懂。。。真的一点意思都没有。给出n个矩形的宽度和高度,这些矩形并排顺次排列在x轴上,问最大面积。

BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 (前缀和)

·626 words·2 mins
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 # Time Limit: 10 Sec Memory Limit: 64 MB Submit: 700 Solved: 393 [Submit][Status][Discuss] Description # Oh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A..B (1 <= A <= B <= 1,000,000), which includes both times A and B. Obviously, FJ must create a reservation system to determine which stall each cow can be assigned for her milking time. Of course, no cow will share such a private moment with other cows. Help FJ by determining: * The minimum number of stalls required in the barn so that each cow can have her private milking period * An assignment of cows to these stalls over time

BZOJ 1637: [Usaco2007 Mar]Balanced Lineup (前缀和乱搞)

·1332 words·3 mins
1637: [Usaco2007 Mar]Balanced Lineup # Time Limit: 5 Sec Memory Limit: 64 MB Submit: 503 Solved: 336 [Submit][Status][Discuss] Description # Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ≤ 50,000) 头奶牛站成一条直线,每头牛都有它的坐标(范围: 0..1,000,000,000)和种族(0或1)。 一直以来 Farmer John 总是喜欢做一些非凡的事,当然这次照相也不例外。他只给一部分牛照相,并且这一组牛的阵容必须是“平衡的”。平衡的阵容,指的是在一组牛中,种族0和种族1的牛的数量相等。 请算出最广阔的区间,使这个区间内的牛阵容平衡。区间的大小为区间内最右边的牛的坐标减去最左边的牛的坐标。 输入中,每个种族至少有一头牛,没有两头牛的坐标相同。

BZOJ 1635: [Usaco2007 Jan]Tallest Cow 最高的牛 (差分序列(前缀和的逆))

·823 words·2 mins
1635: [Usaco2007 Jan]Tallest Cow 最高的牛 # Time Limit: 5 Sec Memory Limit: 64 MB Submit: 472 Solved: 278 [Submit][Status][Discuss] Description # FJ’s N (1 <= N <= 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive integer height (which is a bit of secret). You are told only the height H (1 <= H <= 1,000,000) of the tallest cow along with the index I of that cow. FJ has made a list of R (0 <= R <= 10,000) lines of the form “cow 17 sees cow 34”. This means that cow 34 is at least as tall as cow 17, and that every cow between 17 and 34 has a height that is strictly smaller than that of cow 17. For each cow from 1..N, determine its maximum possible height, such that all of the information given is still correct. It is guaranteed that it is possible to satisfy all the constraints.