[ An Ac a Day ^_^ ] hdu 2830 矩阵交换II
第一眼觉得是个dp 但是有了可以随意交换的条件觉得简单了不少
但是还是没做出来……
看了一下别人的做法才觉得自愧不如
因为所有列都可以随意交换 应该尽量把长的放在一起
那么将所有的矩形排序之后
以第j个矩形作为端点的大矩形面积是num[j]*j
只要从头开始都计算一遍就行了……
差距好大-_-||
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<ctime>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<cassert>
#include<sstream>
#include<stack>
#include<list>
#include<bitset>
#define cl(a,b) memset(a,b,sizeof(a))
#define debug(x) cerr<<#x<<"=="<<(x)<<endl
using namespace std;
typedef long long ll;
typedef long double ldb;
typedef pair<int,int> pii; const int inf=0x3f3f3f3f;
const int maxn=1e9+;
const int mod=1e7+;
const double eps=1e-;
const double pi=acos(-); int dx[]= {,,,-,,-,,-};
int dy[]= {,-,,,-,,,-}; //---------------------------------------ヽ(^。^)丿 bool cmp(int a,int b)
{
return a>b;
} int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
int ans=,num[],vis[];
char str[];
cl(vis,),cl(num,);
for(int i=;i<n;i++)
{
scanf("%s",str);
for(int j=;j<m;j++)
{
int ok=str[j]-'';
if(ok) vis[j]++;
else vis[j]=;
num[j]=vis[j];
}
sort(num,num+m,cmp);
for(int j=;j<m;j++)
ans=max(ans,num[j]*(j+));
}
printf("%d\n",ans);
}
return ;
}
/* 3 4
1011
1001
0001
3 4
1010
1001
0001 */
[ An Ac a Day ^_^ ] hdu 2830 矩阵交换II的更多相关文章
- HDU 2830 Matrix Swapping II (预处理的线性dp)
Matrix Swapping II Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 2830 Matrix Swapping II
给一个矩阵,依然是求满足条件的最大子矩阵 不过题目中说任意两列可以交换,这是对题目的简化 求出h数组以后直接排序,然后找出(col-j)*h[j]的最大值即可(这里的j是从0开始) 因为排序会影响到h ...
- hdu 2830 Matrix Swapping II(额,,排序?)
题意: N*M的矩阵,每个格中不是0就是1. 可以任意交换某两列.最后得到一个新矩阵. 问可以得到的最大的子矩形面积是多少(这个子矩形必须全是1). 思路: 先统计,a[i][j]记录从第i行第j列格 ...
- HDu 2830 Matrix Swapping II(dp)
Problem Description Given an N * M matrix with each entry equal to 0 or 1. We can find some rectangl ...
- HDU 3081 Marriage Match II(二分法+最大流量)
HDU 3081 Marriage Match II pid=3081" target="_blank" style="">题目链接 题意:n个 ...
- HDU 3081 Marriage Match II (网络流,最大流,二分,并查集)
HDU 3081 Marriage Match II (网络流,最大流,二分,并查集) Description Presumably, you all have known the question ...
- HDU 3081 Marriage Match II (二分图,并查集)
HDU 3081 Marriage Match II (二分图,并查集) Description Presumably, you all have known the question of stab ...
- HihoCoder - 1615矩阵游戏II(贪心)
矩阵游戏II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个NxN的整数矩阵,小Hi每次操作可以选择两列,将这两列中的所有数变成它的相反数. 小Hi可以进行任意 ...
- HDU - 1575——矩阵快速幂问题
HDU - 1575 题目: A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n( ...
随机推荐
- MogileFS
分布式文件系统 ~MogileFS~ 一.分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与 ...
- CString转换为const char*
CString str=_T("这是我的测试程序.");// 先得到要转换为字符的长度const size_t strsize=(str.GetLength()+1)*2; // ...
- 使用ReSharper打造团队代码
当前标签: 漂亮代码 请看高质量的代码——更新 Leo C.W 2014-04-01 19:16 阅读:544 评论:5 我们的终极编码规范 Leo C.W 2014-03-31 22:34 ...
- ScriptCase升级到7.01
今天打开ScriptCase的开发环境,发现有新的升级,联网自动升级后,发现已经升级到7.01版本. 7.01版本对界面进行了优化,菜单和图标均以立体的形式进行展现. 不过粗粗看了一下,翻译还是有很多 ...
- node-webkit入门
node-webkit入门 一.简介 node-webkit 是一个基于chromium与node.js的应用程序运行器,它允许开发者使用web技术编写桌面程序.通过Node.js和WebKit技 ...
- 欧几里德算法及其扩展(推导&&模板)
有关欧几里德算法整理: 1.一些相关概念: <1>.整除性与约数: ①一个整数可以被另外一个整数整除即为d|a(表示d整除a,通俗的说是a可以被d整除),其含义也可以说成,存在某个整数k, ...
- spring mvc在普通类中获取HttpServletRequest对象
如题,需要在web.xml中配置request监听,如下 <listener> <description>spring request监听器</description&g ...
- JavaScript事件的几个细节
JavaScript事件的几个细节 一.是捕获还是冒泡 昨天被问到一个问题:事件流有几个阶段?在这几个阶段中,事件一共发生几次? 问题很简单,但对于事件一共发生几次有点乱.总觉得捕获也能触发事件.冒泡 ...
- sql 数据库还原脚本 (kill链接+独占
在开发过程中经常会碰到数据库还原,要是sql 连接没完全释放掉,那么还原就会受到阻碍.此脚本就是为了解决这个问题. USE [master] GO /****** Object: StoredProc ...
- Ping其他电脑ping不通的解决方法
要想Ping通其他电脑,首先要看被PING的电脑,是否允许PING. 一.在被PING电脑操作系统为XP下分为:1.被PING 电脑关闭了防火墙,就完全可以PING通:2.被PING 电脑开了防火墙, ...