zoukankan      html  css  js  c++  java
  • 3265: 聪明的矿工

    3265: 聪明的矿工

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 72  Solved: 11
    [Submit][Status][Web Board]

    Description

    小陈不好好学习,毕业之后为了生计,不得去矿场挖矿(真惨),小陈实地考察了下矿场,发现矿场是一个N*N大小的方形矿场(1<=N<=500),并且每个矿石都有一个价值,但是矿场内部也会有硫酸会腐蚀矿石,假设矿石价值为10,硫酸腐蚀是7,那么这两个一结合,矿石价值就只剩3.矿场有规定,必须是选择一个矩形大小的矿地挖掘,而且必须全挖掘完毕(不能只要矿石,而不要硫酸),假设小陈可以挖掘任意矩形大小的矿地,请问小陈从这片矿地最大可以获得多少利润,当然小陈不能做亏本的买卖哈。

    Input

    先输入N,表示矿场的大小,之后输入N行N列的数字,代表矿场中每一个部分的价值,正数代表矿石的价值,负数代表硫酸腐蚀矿石的能力。矿石价值大小是[0,10]之间,硫酸腐蚀能力大小是[-10,0]之间。

    Output

    小陈可以获得的最大利润X。

    Sample Input

    4
    0 -2 -7 0
    9 2 -6 2
    -4 1 -4 1
    -1 8 0 -2

    Sample Output

    15

    HINT

    最大的矿地是

    9 2 

    -4 1 

    -1 8 

    利润是15
     
    #include<stdio.h>
    #define MAX 1000
    int a[MAX][MAX];
    int main()
    {
        int n,m=0,i,j,k,sum;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
            }
        }
        for(i=0;i<n;i++)
        {
            for(j=1;j<n;j++)
            {
                a[i][j]=a[i][j-1]+a[i][j];
            }
        }
        for(j=0;j<n;j++)
        {
            sum=0;
            for(i=0;i<n;i++)
            {
                if(sum>=0)
                {
                    sum+=a[i][j];
                }
                else if(sum<0)
                {
                    sum=a[i][j];
                }
                if(sum>m)
                    m=sum;
            }
        }
        printf("%d",m);
        return 0;
    }
    

      

  • 相关阅读:
    PHP-FPM 重启
    white-space: nowrap
    php-fpm 优化
    & 引用传值
    tp3 save操作小bug误区
    用百度接口验证是否上传了身份证图片信息[非姓名,身份证号匹配]
    nginx 反向代理案例
    IOS把图片缓存到本地的几种方法
    ios沙盒查找图片展示
    iOS模拟器沙盒使用推荐
  • 原文地址:https://www.cnblogs.com/mjn1/p/9177907.html
Copyright © 2011-2022 走看看