• [USACO14MAR]懒惰的牛The Lazy Cow_Sliver


    休闲题

    一道大水题,直接枚举每个点作为驻扎地,然后利用前缀和求出答案,取max就好了,复杂度(O(N^3))
    (要不是标签是蓝色我2min内绝对能切掉,假的难度导致我思考的过于复杂,7min才想出来)

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<queue>
    #include<cstring>
    #include<vector>
    #include<stack>
    using namespace std;
    const int maxn=406;
    int mat[maxn][maxn],sum[maxn][maxn],n,kk;
    int main()
    {
        cin>>n>>kk;
        for (int i=1;i<=n;++i)
        for (int j=1;j<=n;++j)
        {
            scanf("%d",&mat[i][j]);
            sum[i][j]=sum[i][j-1]+mat[i][j];
        } 
        int ans=0;
        for (int i=1;i<=n;++i)
        for (int j=1;j<=n;++j)
        {
            int tmp=sum[i][min(j+kk,n)]-sum[i][max(j-kk,1)-1];
            int cnt=kk;
            for (int k=1;k<=kk;++k)
            {     
                if (i-k<1) break;
                cnt--;
                tmp+=sum[i-k][min(j+cnt,n)]-sum[i-k][max(j-cnt,1)-1];
            }
            cnt=kk;
            for (int k=1;k<=kk;++k)
            {     
                if (i+k>n) break;
                cnt--;
                tmp+=sum[i+k][min(j+cnt,n)]-sum[i+k][max(j-cnt,1)-1];
            }
            ans=max(ans,tmp);
        }
        cout<<ans;
    }
    

    收获:

    通过做水题,发现自己容易想麻烦,要暴力一点qwq

  • 相关阅读:
    sqlserver计算时间差DATEDIFF 函数
    C# join 子句(C# 参考)
    C# join 子句(C# 参考)
    MongoDB 监控备份工具MMS
    MongoDB 监控备份工具MMS
    mongodb$slice (aggregation)
    mongodb$slice (aggregation)
    1004:字符三角形
    1004:字符三角形
    1003:对齐输出
  • 原文地址:https://www.cnblogs.com/bullshit/p/9703442.html
Copyright © 2020-2023  润新知