zoukankan      html  css  js  c++  java
  • [CF1198D] Rectangle Painting 1

    [CF1198D] Rectangle Painting 1 - dp

    Description

    (n imes n) 矩阵只含 .#,请用价值和最少的一堆长方形覆盖所有的 #,一个长方形的价值是长与宽的最大值 ((1le nle 50))

    Solution

    (f[il][ir][jl][jr]) 为处理掉这个矩形区域的最小代价

    记忆化搜索即可

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N = 55;
    int n, m;
    int f[N][N][N][N];
    char s[N][N];
    
    int solve(int il, int ir, int jl, int jr)
    {
        if (~f[il][ir][jl][jr])
            return f[il][ir][jl][jr];
        if (il == ir && jl == jr)
            return s[il][jl] == '#';
        int ans = max(ir - il + 1, jr - jl + 1);
        for (int i = il; i < ir; i++)
            ans = min(ans, solve(il, i, jl, jr) + solve(i + 1, ir, jl, jr));
        for (int j = jl; j < jr; j++)
            ans = min(ans, solve(il, ir, jl, j) + solve(il, ir, j + 1, jr));
        return f[il][ir][jl][jr] = ans;
    }
    
    signed main()
    {
        ios::sync_with_stdio(false);
        cin >> n;
        for (int i = 1; i <= n; i++)
            cin >> s[i] + 1;
        memset(f, -1, sizeof f);
        cout << solve(1, n, 1, n) << endl;
    }`
    ``
  • 相关阅读:
    I/O中断处理详细过程
    移动端事件touchstart、touchmove、touchend
    页面刷新整理
    transform:rotate在手机上显示有锯齿的解决方案大全
    CSS3盒模型温故
    CSS3颜色特征温故
    CSS3文本温故
    CSS3背景温故
    怪诞咖啡的简介
    CSS3边框温故
  • 原文地址:https://www.cnblogs.com/mollnn/p/14472446.html
Copyright © 2011-2022 走看看