博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-2830 动态规划
阅读量:5940 次
发布时间:2019-06-19

本文共 962 字,大约阅读时间需要 3 分钟。

  给定一个N*M的01矩阵,在可以交换列的情况下,求出最大的全1的子矩阵。

  代码如下:

#include 
#include
#include
#include
#define MAXN 1005using namespace std;int N, M, high[MAXN], temp[MAXN];char G[MAXN][MAXN];int deal(){ int Max = 0; memcpy(temp, high, sizeof (high)); sort(temp+1, temp+M+1); for (int i = M; i >= 1; --i) { if (temp[i]) { Max = max((M-i+1)*temp[i], Max); } } return Max;}int DP(){ int Max = 0; for (int i = 1; i <= N; ++i) { for (int j = 1; j <= M; ++j) { if (G[i][j] == '1') { ++high[j]; } else { high[j] = 0; } } Max = max(Max, deal()); } return Max;}int main(){ while (scanf("%d %d", &N, &M) == 2) { memset(high, 0, sizeof (high)); for (int i = 1; i <= N; ++i) { scanf("%s", G[i]+1); } printf("%d\n", DP()); } return 0;}

转载地址:http://ummtx.baihongyu.com/

你可能感兴趣的文章
(流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
查看>>
什么Linux服务器最适合你?
查看>>
git 换行符问题,统一linux风格
查看>>
SQL on Linux Run on Docker
查看>>
C语言程序设计实践(OJ)-初识函数
查看>>
Spark机器学习9· 实时机器学习(scala with sbt)
查看>>
数据结构实践——队列数组
查看>>
从Demo到日千万PV,就是快! – 爱线下的上云实践
查看>>
Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
查看>>
架构师速成-架构目标之可用性
查看>>
云栖TechDay精华文章合集
查看>>
Java 深、浅克隆
查看>>
设计模式(八)之单例模式
查看>>
协同过滤算法 R/mapreduce/spark mllib多语言实现
查看>>
【云栖说第三期】发现大家对能模仿马云声音的ET有兴趣,我们找了阿里四位专家来聊聊ET背后的人工智能...
查看>>
在C#代码中应用Log4Net(一)简单使用Log4Net
查看>>
Visual Studio 2010生成SQL Server测试数据
查看>>
防止网页被嵌入框架的代码(续)
查看>>
语种名称代码
查看>>
apache httpd服务器403 forbidden的问题
查看>>