[POJ 2444] Partition a Matrix 暴力
来源:互联网 发布:临沂小商品城淘宝培训 编辑:程序博客网 时间:2024/06/04 00:48
http://poj.org/problem?id=2444
题意:用两条线将矩阵切成三部分, 两天直线可以平行也可以垂直, 如果垂直的话有一条就是射线(要不然变成四部分了)
思路:情况不多 暴力枚举。。。。
#include <cstdio>#include <cstring>#include <iostream>using namespace std;typedef __int64 ll;const ll inf = 0x7fffffffffffffff;ll minn;int n, m;ll dp[505][505];int mapn[505][505];inline ll abs(ll a){ return a >= 0 ? a : -a;}void Init() //初始化,求(1, 1)到(i,k)矩阵的和{ for(int i = 0; i <= n || i <= m; i++){ dp[i][0] = dp[0][i] = 0; } for(int i = 1; i <= n; i++){ for(int k = 1; k <= m; k++){ dp[i][k] =dp[i-1][k] + dp[i][k-1] - dp[i-1][k-1] + mapn[i][k]; } }}inline ll fun(int up, int dw, int lf, int rg) // 求和{ ll sum = 0; sum += dp[dw][rg] + dp[up-1][lf-1] - dp[up-1][rg] - dp[dw][lf-1]; return sum;}inline void fuck(ll sum1, ll sum2, ll sum3){ ll sum = abs(sum1 - sum2) + abs(sum1 - sum3) + abs(sum2 - sum3); if(sum < minn) minn = sum;}int main(){ while(scanf("%d%d", &n, &m) && (m || n)){ for(int i = 1; i <= n; i++){ for(int k = 1; k <= m; k++){ scanf("%d", &mapn[i][k]); } } Init(); minn = inf; for(int i = 1; i < n; i++){ //垂直情况 for(int k = 1; k < m; k++){ ll sum1 = fun(1, i, 1, k); ll sum2 = fun(1, i, k+1, m); ll sum3 = fun(i+1, n, 1, k); ll sum4 = fun(i+1, n, k+1, m); fuck(sum1+sum2, sum3, sum4); fuck(sum1+sum3, sum2, sum4); fuck(sum2+sum4, sum1, sum3); fuck(sum3+sum4, sum1, sum2); } } for(int i = 1; i < n-1; i++){ //平行 ll sum1 = fun(1, i, 1, m); for(int k = i+1; k < n; k++){ ll sum2 = fun(i+1, k, 1, m); ll sum3 = fun(k+1, n, 1, m); fuck(sum1, sum2, sum3); } } for(int i = 1; i < m-1; i++){//平行 ll sum1 = fun(1, n, 1, i); for(int k = i+1; k < m; k++){ ll sum2 = fun(1, n, i+1, k); ll sum3 = fun(1, n, k+1, m); fuck(sum1, sum2, sum3); } } printf("%I64d\n", minn); } return 0;}
0 0
- [POJ 2444] Partition a Matrix 暴力
- POJ-2078 Matrix,暴力枚举!
- POJ - 1691 Painting A Board (状态压缩 + 暴力)
- Matrix POJ
- Matrix POJ
- Matrix (POJ
- Matrix POJ
- POJ 2155 Matrix 3468 A Simple Problem with Integers
- Codeforces 365C Matrix 暴力
- 矩阵十题【二】 poj 1575 Tr A poj 3233 Matrix Power Series
- POJ 3233 Matrix Power Series(矩阵求A+…+A^k 的和)
- POJ 3233-Matrix Power Series( S = A + A^2 + A^3 + … + A^k 矩阵快速幂取模)
- POJ 3522 暴力+图论
- POJ 1142 暴力!
- POJ 3697 BFS暴力
- poj 3102(暴力枚举)
- poj 3080 KMP+暴力
- poj 1247 暴力
- 让人疯狂的旗舰店
- fwrite()函数和fread()函数
- selection sort(选择排序)
- 今天带来的是一个对图书编号和价格设定程序 不是很完善希望大家给与建议进行修改
- Hive客户端多并发问题解决方法记录
- [POJ 2444] Partition a Matrix 暴力
- Python学习笔记一
- 聚集索引和非聚集索引的区别
- Quorum/NRW机制
- 面试的算法1(C语言)(整理)(组合数 字符串倒置 最大公共串)
- Hive0.14数据存储优化
- Java并发教程
- WebService中SOAP1.1和1.2分析
- Hive配置优化