• USACO bigborn 最大矩形


      这一个题就是问你在有树的格子农田里面最大的没有树的方格多大,这道题可以使用动态规划解决,定义dp[i][j]为i j开始的最大方形的边长 那么dp[i][j] = min(dp[i+1][j], dp[i][j+1], dp[i+1][j+1]) + 1,  初识dp[i][j] = 0, 代码如下:

    /*
        ID: m1500293
        LANG: C++
        PROG: bigbrn
    */
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    
    using namespace std;
    int tree[1002][1002];
    int dp[2][1002];
    int main()
    {
        freopen("bigbrn.in", "r", stdin);
        freopen("bigbrn.out", "w", stdout);
        int N, T;
        scanf("%d%d", &N, &T);
        for(int i=0; i<T; i++)
        {
            int x, y;
            scanf("%d%d", &x, &y);
            tree[x][y] = 1;
        }
        int ans = 0;
        for(int i=N; i>=1; i--)
        {
            memset(dp[i%2], 0, sizeof(dp[0]));
            for(int j=N; j>=1; j--)
            {
                if(!tree[i][j])
                {
                    int t1 = min(dp[i%2][j+1], dp[(i+1)%2][j]);
                    int t2 = min(t1, dp[(i+1)%2][j+1]);
                    dp[i%2][j] = t2+1;
                }
                ans = max(ans, dp[i%2][j]);
            }
        }
        printf("%d
    ", ans);
        return 0;
    }
    
    
    
    ///*
    //    ID: m1500293
    //    LANG: C++
    //    PROG: bigbrn
    //*/
    //#include <cstdio>
    //#include <algorithm>
    //#include <cstring>
    //
    //using namespace std;
    //int tree[1002][1002];
    //int dp[1002][1002];
    //int main()
    //{
    //    freopen("bigbrn.in", "r", stdin);
    //    freopen("bigbrn.out", "w", stdout);
    //    int N, T;
    //    scanf("%d%d", &N, &T);
    //    for(int i=0; i<T; i++)
    //    {
    //        int x, y;
    //        scanf("%d%d", &x, &y);
    //        tree[x][y] = 1;
    //    }
    //    int ans = 0;
    //    for(int i=N; i>=1; i--)
    //        for(int j=N; j>=1; j--)
    //        {
    //            if(!tree[i][j])
    //            {
    //                int t1 = min(dp[i][j+1], dp[i+1][j]);
    //                int t2 = min(t1, dp[i+1][j+1]);
    //                dp[i][j] = t2+1;
    //            }
    //            ans = max(ans, dp[i][j]);
    //        }
    //    printf("%d
    ", ans);
    //    return 0;
    //}
  • 相关阅读:
    CodeForces 404C Restore Graph (构造)
    UVa 1204 Fun Game (状压DP)
    HDU 5038 Grade (水题,坑题)
    mybatis整合Spring编码
    关于Spring MVC写的不错的几篇博客
    SpringMVC配置文件详解:<context:annotation-config/>和<context:component-scan base-package=""/>和<mvc:annotation-driven />
    常见文件下载后缀
    Spring MVC
    Spring
    反射
  • 原文地址:https://www.cnblogs.com/xingxing1024/p/5183657.html
Copyright © 2020-2023  润新知