Uva10755
在题中的A*B*C的矩形中,当确定X1,X2,Y1,Y2时,1->z的子矩形的和为
sum[x2][y2][1] -(sum[x1-1][y2][1] + sum[x2][y1-1][1] -sum[x1-1][y1-1][1] + sum[x2][y2][z+1] - sum[x1-1][y2][z+1] -sum[x2][y1-1][z+1] + sum[x1-1][y1-1][z+1]);
sum[x][y][z]指的是,以(x,y,z)为右下角的矩形的和
sum[x][y][z]的递推公式为 sum[k][j][i] = (sum[k-1][j][i] + sum[k][j-1][i] -sum[k-1][j-1][i] + sum[k][j][i+1] - sum[k-1][j][i+1] -sum[k][j-1][i+1] + sum[k-1][j-1][i+1] + d[k][j][i]);
本题最后结果可能会很大,所以ans的初值要赋值为最小的longlong
- #include<bits/stdc++.h>
- #define inf 0x3f3f3f3f
- const int maxn=;
- using namespace std;
- typedef long long ll;
- int t;
- int a,b,c;
- ll d[maxn+][maxn+][maxn+];
- ll sum[maxn+][maxn+][maxn+];
- int main()
- {
- scanf("%d",&t);
- while(t--){
- memset(d, ,sizeof(d));
- memset(sum,,sizeof(sum));
- scanf("%d%d%d",&a,&b,&c);
- for(int i = ; i <= a; i++){
- for(int j = ; j <= b; ++j){
- for(int k = ; k <= c; ++k){
- scanf("%lld",&d[i][j][k]);
- }
- }
- }
- for(int i = c; i >= ; --i){
- for(int j = ; j <= b; ++j){
- for(int k = ; k <= a; ++k){
- sum[k][j][i] = (sum[k-][j][i] + sum[k][j-][i] -
- sum[k-][j-][i] + sum[k][j][i+] - sum[k-][j][i+] -
- sum[k][j-][i+] + sum[k-][j-][i+] + d[k][j][i]);
- }
- }
- }
- ll ans = -(ll)((1LL)<<);
- for(int x1 = ; x1 <= a; ++x1){
- for(int x2 = x1; x2 <= a; ++x2){
- for(int y1 = ; y1 <= b; ++y1){
- for(int y2 = y1; y2 <= b; ++y2){
- ll min_sumz = ;
- for(int z = ; z <= c; ++z){
- ll temp = sum[x2][y2][] -
- (sum[x1-][y2][] + sum[x2][y1-][] -
- sum[x1-][y1-][] + sum[x2][y2][z+] - sum[x1-][y2][z+] -
- sum[x2][y1-][z+] + sum[x1-][y1-][z+]);
- ans = max(ans, temp - min_sumz);
- min_sumz = min(min_sumz, temp);
- }
- }
- }
- }
- }
- printf("%lld\n",ans);
- if(t){
- printf("\n");
- }
- }
- return ;
- }
Uva10755的更多相关文章
- 【降维解法:最大字段和->最大子矩阵和->最终版最大子长方体和】【UVA10755】Garbage Heap
突然感觉刷完这一套专题后 码力有了质的飞跃,fighting 努力会有结果! 最大字段和是一个很经典的问题 O(n)算法 而对于最大子矩阵和 可以思考一个这样的想法 枚举上下边界i,j把i到j这一段的 ...
- 【白书训练指南】(UVa10755)Garbage Heap
先po代码,之后把我那几个不太明了的知识点讲讲,巩固以下.三维的扫描线算法想要掌握还真是有一定的难度的. 代码 #include <iostream> #include <cstri ...
- uva 10755 - Garbage Heap
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
随机推荐
- [干货]兼容HTML5的Placeholder属性-更新版v0.10102013
HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等.Placeholder是HTML5新增的另一个属性,当input或者textarea设置了 ...
- What can I yield?
浏览器支持情况:Enabled by default in desktop Chrome 39 一句话回答这个问题是:Promise,Thunks.为什么没有Generators?因为Generat ...
- BZOJ_2064_分裂_状压DP
BZOJ_2064_分裂_状压DP Description 背景: 和久必分,分久必和... 题目描述: 中国历史上上分分和和次数非常多..通读中国历史的WJMZBMR表示毫无压力. 同时经常搞OI的 ...
- poj1065 Wooden Sticks[LIS or 贪心]
地址戳这.N根木棍待处理,每根有个长x宽y,处理第一根花费1代价,之后当处理到的后一根比前一根长或者宽要大时都要重新花费1代价,否则不花费.求最小花费代价.多组数据,N<=5000 本来是奔着贪 ...
- vue之axios+php+mysql
博主原创,未经许可请勿转载 哦 1.axios配置请看上篇 2.mysql数据库编写,表名为area_list 3.json.php文件在notebeans中编写 <?php header('C ...
- OGG 11g Checkpoint 详解
OGG Checkpoint 详解 定位中断的位置,下次启动从中断的位置开始恢复. 1.target 端配置: 2.一条记录对应一个replicat 一. Extract Check ...
- UnrealScript常用函数汇总
转自:http://www.unrealchina.org/forum.php?mod=viewthread&tid=672&extra=page%3D1 foreach [用来遍历游 ...
- complexType
//decltype的表达式如果是加上括号的变量,结果将是引用 decltype((variable)) ruiy; //此变量的数据类型是引用(但此处变量的申明语句是错误的,引用不是对象,指向的对象 ...
- nohup开机自启脚本
#!/bin/bash cd /root/xcloud/ str=$"/n" sstr=$(echo -e $str) nohup ./deploy >>/dev/nu ...
- linux下安装mysql的三种方法:rpm包安装、yum安装、源码包安装
1 安装MySQL数据库服务器安装方法一://查询系统自带的数据库rpm -qa | grep -i mysql //卸载查询到的所有mysqlrpm -e --nodeps mysql-libs-5 ...