2014年百度之星程序设计大赛 - 资格赛 第四题 Labyrinth
来源:互联网 发布:如何购买国外域名 编辑:程序博客网 时间:2024/04/28 08:51
小记:dfs超时,果断不能
思路:因为只能上下右三个方向,那么我从左到右依次处理每一列,然后处理下一列的时候再处理上一列的每一个值往右走能得到的值,用一个数组保存每个坐标格能得到的最大值,每处理完一列就得到了这一列每个点所能得到的最大值了,每一列根据从上一列某点往右然后上下更新当前列的所有点,时间复杂度O(n*n*m)
代码:
#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <map>#include <set>#include <vector>#include <stack>#include <queue>#include <algorithm>using namespace std;#define mst(a,b) memset(a,b,sizeof(a))#define eps 10e-8const int MAX_ = 110;const int N = 100010;const int INF = 0x7fffffff;//int dir[3][2] = {{0,-1}, {1,0}, {0,1}};//bool vis[MAX_][MAX_];int mp[MAX_][MAX_];int num[MAX_][MAX_];int n, m, ans, cs;void find(int x){ for(int i = 1; i <= n; ++i){ int tmp = num[i][x-1] + mp[i][x]; if(num[i][x] < tmp)num[i][x] = tmp; for(int j = i+1; j <= n; ++j){ tmp += mp[j][x]; if(tmp > num[j][x])num[j][x] = tmp; } } for(int i = n; i > 0; --i){ int tmp = num[i][x-1] + mp[i][x]; if(num[i][x] < tmp)num[i][x] = tmp; for(int j = i-1; j > 0; --j){ tmp += mp[j][x]; if(tmp > num[j][x])num[j][x] = tmp; } }}int main(){ int T; scanf("%d", &T); for(int Ca = 1; Ca <= T; ++Ca){ scanf("%Id%d", &n, &m); for(int i = 1; i <= n; ++i){ for(int j = 1; j <= m; ++j){ scanf("%d", &mp[i][j]); num[i][j] = -INF; } } num[1][1] = mp[1][1]; for(int i = 2; i <= n; ++i){ num[i][1] = num[i-1][1] + mp[i][1]; } for(int i = 2; i <= m; ++i){ find(i); } printf("Case #%d:\n%d\n",Ca, num[1][m]); } return 0;}
0 0
- 2014年百度之星程序设计大赛 - 资格赛 第四题 Labyrinth
- 2014年百度之星程序设计大赛 - 资格赛 第四题 Labyrinth
- 2014年百度之星程序设计大赛 - 资格赛 Labyrinth
- 2014年百度之星资格赛第四题Labyrinth
- 2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)
- 2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)
- 2014年百度之星程序设计大赛 - 资格赛 Energy Conversion
- 【索引】2014年百度之星程序设计大赛 - 资格赛
- 2014年百度之星程序设计大赛 - 资格赛Energy Conversion
- 2014年百度之星程序设计大赛 - 资格赛题解
- 2014年百度之星程序设计大赛 - 资格赛 Xor Sum
- 2014年百度之星程序设计大赛 - 资格赛 (未完成)
- 2014 百度之星 资格赛 Labyrinth
- 2014年百度之星程序设计大赛 - 资格赛 第一题 Energy Conversion
- 2014年百度之星程序设计大赛 - 资格赛 第三题 Xor Sum
- 2014年百度之星程序设计大赛 - 资格赛 第二题 Disk Schedule
- 2014年百度之星程序设计大赛 - 资格赛 第一题 Energy Conversion
- 2017"百度之星"程序设计大赛-资格赛
- 关于java对象序列化您不知道的5件事
- Viewpager循环加载demo
- 使用jQuery 模拟鼠标点击a标签事件 实现定位
- Java利用TCP协议发送文件(三)--客户端设计
- GCD使用_以后自己用
- 2014年百度之星程序设计大赛 - 资格赛 第四题 Labyrinth
- LeetCode: Valid Parentheses [020]
- Sql Server 2008数据库的导出与备份
- A Quick Guide to Sublime Text
- could not determine type for java.util.set
- 外企的福利真比国企差吗?
- jQuery图片轮播(焦点图)插件
- [Effective C++] 条款01:视C++为一个语言联邦
- Spring配置SessionFactory