uva10827(*前缀和,降维)
来源:互联网 发布:windows 安全模式能进 编辑:程序博客网 时间:2024/05/18 08:27
/*translation: 给出一个矩阵,要求求出一个子矩阵,问这个子矩阵最大的和是多少?solution: 降维,前缀和note: * 将原来的矩阵复制成4份后再组合成一个大矩阵就方便处理了。然后枚举矩阵的范围,复杂度为75*75*75*75 枚举出来后,求出每一列上下界之间的和(利用前缀和可以常数时间内求出)。降维成1维后就是求最大子序列的 和的问题了。*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 80;int mat[maxn * 4][maxn * 4], n;int sum[maxn * 4];int main(){ //freopen("in.txt", "r", stdin); int T; scanf("%d", &T); while(T--) { scanf("%d", &n); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { scanf("%d", &mat[i][j]); mat[i+n][j] = mat[i][j+n] = mat[i+n][j+n] = mat[i][j]; } } //get sumy int ans = -2147483645; for(int x = 0; x < n; x++) { for(int y = 0; y < n; y++) { memset(sum, 0, sizeof(sum)); for(int i = x; i < x + n; i++) { int res = 0; for(int j = y; j < n + y; j++) { sum[j] += mat[i][j]; res += sum[j]; if(res > ans) { ans = res; } } } } } printf("%d\n", ans); } return 0;}
0 0
- uva10827(*前缀和,降维)
- uva10827
- uva10827
- uva10827
- uva10827-Maximum sum on a torus(矩阵最大和的变形)
- UVA10827球面上的最大和
- UVa108 UVa10827 最大连续子矩阵和
- codeforces846C(前缀和)
- Per(前缀和)
- HDU5480:Conturbatio(前缀和)
- 最大化(矩阵前缀和)
- poj 3292 (前缀和)
- 前缀和
- 前缀和
- 前缀和
- 前缀和
- 前缀和
- COGS1190:最大和(前缀和)
- 55. Jump Game
- Matlab绘制误差棒图----errorbar函数的使用
- Lambda表达式
- windows系统下Python环境的搭建
- Eclipse初始化常用设置(字体大小、代码补全、TODO语句等)
- uva10827(*前缀和,降维)
- 排序算法:堆排序
- (二)java-web开发工具MyEclipse与Eclipse
- 【Linux.1】CentOS7下图形界面安装
- Java:集合类详解
- Linux配置IPV6隧道
- 解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
- java开发网易电话面试 一面总结
- Map的遍历