UVA_10074_Take the Land
来源:互联网 发布:淘宝客如何打造爆款 编辑:程序博客网 时间:2024/05/29 15:47
#include<iostream> #include<sstream> #include<string> #include<vector> #include<list> #include<set> #include<map> #include<stack> #include<queue> #include<algorithm> #include<cmath> #pragma warning(disable:4996) using std::cin;using std::cout;using std::endl;using std::stringstream;using std::string;using std::vector;using std::list;using std::pair;using std::set;using std::multiset;using std::map;using std::multimap;using std::stack;using std::queue;int process_row(const vector<vector<bool>>&matrix,const int &n,const int &m){int area = 0;for (int i = 0; i < n; i++)//压缩区间上界{for (int j = i; j < n; j++)//压缩区间下界{vector<pair<bool, int>>dp(m);for (int row = i; row <= j; row++){for (int column = 0; column < m; column++){if (matrix[row][column]){dp[column].first = true;}}}int maximum = 0;if (!dp[0].first){dp[0].second++;maximum = 1;}for (int k = 1; k < m; k++){if (!dp[k].first){if (dp[k - 1].first){dp[k].second++;}if (!dp[k - 1].first){dp[k].second = dp[k - 1].second + 1;maximum = std::max(maximum, dp[k].second);}}}area = std::max(area, maximum*(j - i + 1));}}return area;}int process_column(const vector<vector<bool>>&matrix, const int &n, const int &m){int area = 0;for (int i = 0; i < n; i++)//压缩区间上界{for (int j = i; j < n; j++)//压缩区间下界{vector<pair<bool, int>>dp(m);for (int column = i; column <= j; column++){for (int row = 0; row < m; row++){if (matrix[row][column]){dp[row].first = true;}}}int maximum = 0;if (!dp[0].first){dp[0].second++;maximum = 1;}for (int k = 1; k < m; k++){if (!dp[k].first){if (dp[k - 1].first){dp[k].second++;}if (!dp[k - 1].first){dp[k].second = dp[k - 1].second + 1;}maximum = std::max(maximum, dp[k].second);}}area = std::max(area, maximum*(j - i + 1));}}return area;}int main(){//freopen("input.txt", "r", stdin);//freopen("output.txt", "w", stdout);int n,m; while (cin>>n>>m&&n&&m){vector<vector<bool>>matrix(n, (vector<bool>)m);for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){short isTree; cin >> isTree;if (isTree){matrix[i][j]=true;}}}int area = 0;area = std::max(area, process_row(matrix, n, m));area = std::max(area, process_column(matrix, m, n));cout << area << endl;}return 0;}
0 0
- UVA_10074_Take the Land
- The Land of Justice
- The Land of Justice
- The Land of Justice
- The new land of Exile
- 10499 - The Land of Justice
- UVa 10074 - Take the Land
- 10499 - The Land of Justice
- 10499 - The Land of Justice
- UVA10499- The Land of Justice
- UVa:10074 Take the Land
- 10499 - The Land of Justice
- UVa_10499 - The Land of Justice
- UVA10499 The Land of Justice
- UVa 10074 - Take the Land
- uva 10074 Take the Land
- uva 10074 Take the Land
- uva 10499 - The Land of Justice
- extend VS include
- raw_input() 与 input() __ Python 的区别
- 活点地图
- 面试记录五:腾讯后台研发
- 单播,组播,广播
- UVA_10074_Take the Land
- Oracle-27-集合操作(交集、并集、差集)&子查询之单行子查询
- strut获取作用对象的两种方式
- 【福昕PDF阅读器】当前文件兼容于PDFA且以不接受修改的只读模式打开
- jquery中prop()方法和attr()方法的区别浅析
- Hive中文注释乱码问题的解决
- 计算fibnacci 级数的几种方法
- bzoj 4524: [Cqoi2016]伪光滑数 优先队列
- STL迭代器失效问题