zoukankan      html  css  js  c++  java
  • P1736 创意吃鱼法80

    题目描述

    回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*)。她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略。

    在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从这个正方形子矩阵“对角线的一端”下口,只一吸,就能把对角线上的那一队鲜鱼吸入口中。

    猫猫是个贪婪的家伙,所以她想一口吃掉尽量多的鱼。请你帮猫猫计算一下,她一口下去,最多可以吃掉多少条鱼?

    输入输出格式

    输入格式: 

    有多组输入数据,每组数据:

    第一行有两个整数n和m(n,m≥1),描述池塘规模。接下来的n行,每行有m个数字(非“0”即“1”)。每两个数字之间用空格隔开。

    对于30%的数据,有n,m≤100

    对于60%的数据,有n,m≤1000

    对于100%的数据,有n,m≤2500 

    输出格式: 

    只有一个整数——猫猫一口下去可以吃掉的鱼的数量,占一行,行末有回车。

     输入输出样例

    输入样例#1: 复制
    4 6
    0 1 0 1 0 0
    0 0 1 0 1 0
    1 1 0 0 0 1
    0 1 1 0 1 0
    
    输出样例#1: 复制
    3

    说明

    右上角的

    1 0 0 0 1 0 0 0 1

     不知为啥80分

    #include <iostream>
    #include<cstdio>
    #include<algorithm>
    #include<queue>
    #include<cstring>
    using namespace std;
    const int N=2509;
    int n,m;
    int fl[N][N],fr[N][N];
    int ans,maxn;
    int all[N][N];
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1,x;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&x);        
            all[i][j]=all[i][j-1]+all[i-1][j]-all[i-1][j-1]+x;
            if(x)
            {
                fl[i][j]=fl[i-1][j-1]+1;
                fr[i][j]=fr[i-1][j+1]+1;    
            }
        }
        int x,y;
        for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            ans=fr[i][j];
            x=i-ans;y=j+ans;
            if(( all[i][y-1]-all[i][j-1]-all[x][y-1]+all[x][j-1] )==ans)
                maxn=max(maxn,ans);
            
            ans=fl[i][j];
            x=i-ans;y=j-ans;
            if(( all[i][j]-all[i][y]-all[x][j]+all[x][y] )==ans)
                maxn=max(maxn,ans);
        }
        cout<<maxn<<endl;
        return 0;
    }
  • 相关阅读:
    IOS Date, NSDateFormatter, compare, dateFromString:mydatestr
    IOS Retain,nil,alloc,init
    IOS NSArray,NSDictionary
    object c基础, 基本类型(NSString,char*NSDate,NSData),集合NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSSet,NSMutableSet
    IOS UIProgressView 用法
    UIButton 用法
    XCode 快捷键,MAC 快捷键
    苹果软件系列产品介绍
    android 之多线程应用[message,messagequeue,handler,looper,asynchtask]
    Linux查看程序被哪个端口占用
  • 原文地址:https://www.cnblogs.com/CLGYPYJ/p/7737957.html
Copyright © 2011-2022 走看看