hdu----(1599)最大子矩阵(几何/dp)
时间:2022-05-05
本文章向大家介绍hdu----(1599)最大子矩阵(几何/dp),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最大子矩阵
Time Limit: 30000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2915 Accepted Submission(s): 1462
Problem Description
给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。
Input
输 入数据的第一行为一个正整数T,表示有T组测试数据。每一组测试数据的第一行为四个正整数m,n,x,y(0<m,n<1000 AND 0<x<=m AND 0<y<=n),表示给定的矩形有m行n列。接下来这个矩阵,有m行,每行有n个不大于1000的正整数。
Output
对于每组数据,输出一个整数,表示子矩阵的最大和。
Sample Input
1 4 5 2 2 3 361 649 676 588 992 762 156 993 169 662 34 638 89 543 525 165 254 809 280
Sample Output
2474
Author
lwg
Source
HDU 2006-12 Programming Contest
代码:
1 #include<cstring>
2 #include<cstdio>
3 #include<cstdlib>
4 using namespace std;
5 const int maxn=1005;
6 int n,m,x,y;
7 __int64 map[maxn][maxn];
8 int main(){
9 int cas;
10 //system("cd desktop\codeblock\problem");
11 //system("call test.in");
12 //system("pause");
13 //freopen("test.in","r",stdin);
14 scanf("%d",&cas);
15 while(cas--){
16 scanf("%d%d%d%d",&n,&m,&x,&y);
17 memset(map,0,sizeof(map));
18 for(int i=1;i<=n;i++){
19 for(int j=1;j<=m;j++){
20 scanf("%I64d",&map[i][j]);
21 map[i][j]+=(map[i-1][j]+map[i][j-1]-map[i-1][j-1]);
22 }
23 }
24 __int64 ans=0;
25 __int64 val ;
26 for(int i=x;i<=n;i++){
27 for(int j=y;j<=m;j++){
28 val=map[i][j]-map[i-x][j]-map[i][j-y]+map[i-x][j-y];
29 if(ans<val)ans=val;
30 }
31 }
32 printf("%I64dn",ans);
33 }
34 return 0;
35 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android TextView实现带链接文字事件监听的三种常用方式示例
- Android ViewDragHelper使用介绍
- Android语音声波控件 Android条形波控件
- Ubuntu下安装CUDA10.0以及问题
- Android ListView实现单选及多选等功能示例
- Recyclerview添加头布局和尾布局、item点击事件详解
- Android 中LayoutInflater.inflate()方法的介绍
- Android ListView实现简单列表功能
- Ubuntu16.04上安装CUDA9.0 详细教程
- Android使用LinearLayout设置边框
- Android编程实现状态保存的方法分析
- Android中TextView和ImageView实现倾斜效果
- Notification消息通知 自定义消息通知内容布局
- Android编程实现带渐变效果的圆角矩形示例
- Android仿苹果关机界面实现代码