糯米

TI DaVinci, gstreamer, ffmpeg
随笔 - 167, 文章 - 0, 评论 - 47, 引用 - 0
数据加载中……

HDU 2830 Matrix Swapping II 动态规划

这题需要动动脑子,可以找到O(NM)的算法。
但是表述很麻烦,还是看代码吧。。

#include <stdio.h>
#include 
<string.h>

int N, M;
int end[1024], sum[1024];
char mat[1024][1024];

int main()
{
    
int i, j, k, v, ans;

    
while (scanf("%d%d"&N, &M) != EOF) {
        memset(end, 
0sizeof(end));
        memset(sum, 
0sizeof(sum));
        
for (i = 0; i < N; i++)
            scanf(
"%s", mat[i]);
        ans 
= 0;
        
for (i = 0; i < N; i++{
            
for (j = 0; j < M; j++{
                
if (mat[i][j] == '1' && end[j] <= i) {
                    
for (k = i; k < N && mat[k][j] == '1'; k++)
                        sum[k]
++;
                    end[j] 
= k;
                }

            }

            
for (j = i; j < N && sum[j]; j++{
                v 
= (j - i + 1* sum[j];
                
if (v > ans) 
                    ans 
= v;
            }

        }

        printf(
"%d\n", ans);
    }


    
return 0;
}

posted on 2010-10-25 22:19 糯米 阅读(267) 评论(0)  编辑 收藏 引用 所属分类: POJ


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理