• 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;
    }
  • 相关阅读:
    css 透明气泡效果
    uniapp 跳转tabbar页面传递参数
    unaipp 发送验证码倒计时
    uniapp 返回顶部
    js 实现放大镜效果
    js 禁用右键菜单和禁止复制
    js 表格的添加和删除操作
    js 留言板(带删除功能)
    推荐几个好用的网站
    pc端使用rem适配
  • 原文地址:https://www.cnblogs.com/CLGYPYJ/p/7737957.html
Copyright © 2020-2023  润新知