zoukankan      html  css  js  c++  java
  • F. Fit them all 题解(打表)

    题目链接

    题目大意

    给你一个长宽为\(w,h(1 \leq w,h \leq 30)\)的长方形

    你要放\(1\times 1,2\times 2,.....k\times k\)的正方形

    每个正方形放一个,看最多能放到几个正方形

    若答案是ans

    则表示可以放\(1\times 1,2\times 2,.....ans\times ans\)

    题目思路

    数据范围比较小,而且感觉细节很多

    直接打表 大概几分钟就行

    其实表还有很多细节可以去优化,还可以加快打表速度

    打表代码

    #include<bits/stdc++.h>
    using namespace std;
    #define fi first
    #define se second
    typedef long long ll;
    typedef pair<double,int> pdi;
    const ll INF=0x3f3f3f3f3f3f3f3f;
    const int maxn=500+5,mod=1e7;
    int w,h;
    bool vis[40][40];
    bool flag=0;
    bool check(int x,int y,int len){
        for(int i=x;i<=x+len-1;i++){
            for(int j=y;j<=y+len-1;j++){
                if(vis[i][j]) return 0;
            }
        }
        return 1;
    }
    void col(int x,int y,int len,int val){
        for(int i=x;i<=x+len-1;i++){
            for(int j=y;j<=y+len-1;j++){
                vis[i][j]=val;
            }
        }
    }
    void dfs(int x){
        if(flag){
            return ;
        }
        if(x==0){
            flag=1;
            return ;
        }
        for(int i=1;i<=w-x+1;i++){
            for(int j=1;j<=h-x+1;j++){
                if(check(i,j,x)){
                    col(i,j,x,1);
                    dfs(x-1);
                    col(i,j,x,0);
                }
            }
        }
    }
    int main(){
        for(w=1;w<=30;w++){
            for(h=w;h<=30;h++){
                for(int i=30;i>=1;i--){
                    flag=0;
                    dfs(i);
                    if(flag){
                        printf("a[%d][%d]=%d;\n",w,h,i);
                        break;
                    }
                }
            }
        }
        return 0;
    }
    
    

    代码

    #include<bits/stdc++.h>
    using namespace std;
    #define fi first
    #define se second
    typedef long long ll;
    typedef pair<double,int> pdi;
    const ll INF=0x3f3f3f3f3f3f3f3f;
    const int maxn=500+5,mod=1e7;
    int w,h;
    int a[40][40];
    int main(){
        a[1][1]=1;
        a[1][2]=1;
        a[1][3]=1;
        a[1][4]=1;
        a[1][5]=1;
        a[1][6]=1;
        a[1][7]=1;
        a[1][8]=1;
        a[1][9]=1;
        a[1][10]=1;
        a[1][11]=1;
        a[1][12]=1;
        a[1][13]=1;
        a[1][14]=1;
        a[1][15]=1;
        a[1][16]=1;
        a[1][17]=1;
        a[1][18]=1;
        a[1][19]=1;
        a[1][20]=1;
        a[1][21]=1;
        a[1][22]=1;
        a[1][23]=1;
        a[1][24]=1;
        a[1][25]=1;
        a[1][26]=1;
        a[1][27]=1;
        a[1][28]=1;
        a[1][29]=1;
        a[1][30]=1;
        a[2][2]=1;
        a[2][3]=2;
        a[2][4]=2;
        a[2][5]=2;
        a[2][6]=2;
        a[2][7]=2;
        a[2][8]=2;
        a[2][9]=2;
        a[2][10]=2;
        a[2][11]=2;
        a[2][12]=2;
        a[2][13]=2;
        a[2][14]=2;
        a[2][15]=2;
        a[2][16]=2;
        a[2][17]=2;
        a[2][18]=2;
        a[2][19]=2;
        a[2][20]=2;
        a[2][21]=2;
        a[2][22]=2;
        a[2][23]=2;
        a[2][24]=2;
        a[2][25]=2;
        a[2][26]=2;
        a[2][27]=2;
        a[2][28]=2;
        a[2][29]=2;
        a[2][30]=2;
        a[3][3]=2;
        a[3][4]=2;
        a[3][5]=3;
        a[3][6]=3;
        a[3][7]=3;
        a[3][8]=3;
        a[3][9]=3;
        a[3][10]=3;
        a[3][11]=3;
        a[3][12]=3;
        a[3][13]=3;
        a[3][14]=3;
        a[3][15]=3;
        a[3][16]=3;
        a[3][17]=3;
        a[3][18]=3;
        a[3][19]=3;
        a[3][20]=3;
        a[3][21]=3;
        a[3][22]=3;
        a[3][23]=3;
        a[3][24]=3;
        a[3][25]=3;
        a[3][26]=3;
        a[3][27]=3;
        a[3][28]=3;
        a[3][29]=3;
        a[3][30]=3;
        a[4][4]=2;
        a[4][5]=3;
        a[4][6]=3;
        a[4][7]=3;
        a[4][8]=3;
        a[4][9]=4;
        a[4][10]=4;
        a[4][11]=4;
        a[4][12]=4;
        a[4][13]=4;
        a[4][14]=4;
        a[4][15]=4;
        a[4][16]=4;
        a[4][17]=4;
        a[4][18]=4;
        a[4][19]=4;
        a[4][20]=4;
        a[4][21]=4;
        a[4][22]=4;
        a[4][23]=4;
        a[4][24]=4;
        a[4][25]=4;
        a[4][26]=4;
        a[4][27]=4;
        a[4][28]=4;
        a[4][29]=4;
        a[4][30]=4;
        a[5][5]=3;
        a[5][6]=3;
        a[5][7]=4;
        a[5][8]=4;
        a[5][9]=4;
        a[5][10]=4;
        a[5][11]=4;
        a[5][12]=5;
        a[5][13]=5;
        a[5][14]=5;
        a[5][15]=5;
        a[5][16]=5;
        a[5][17]=5;
        a[5][18]=5;
        a[5][19]=5;
        a[5][20]=5;
        a[5][21]=5;
        a[5][22]=5;
        a[5][23]=5;
        a[5][24]=5;
        a[5][25]=5;
        a[5][26]=5;
        a[5][27]=5;
        a[5][28]=5;
        a[5][29]=5;
        a[5][30]=5;
        a[6][6]=3;
        a[6][7]=4;
        a[6][8]=4;
        a[6][9]=4;
        a[6][10]=4;
        a[6][11]=4;
        a[6][12]=5;
        a[6][13]=5;
        a[6][14]=5;
        a[6][15]=5;
        a[6][16]=5;
        a[6][17]=5;
        a[6][18]=6;
        a[6][19]=6;
        a[6][20]=6;
        a[6][21]=6;
        a[6][22]=6;
        a[6][23]=6;
        a[6][24]=6;
        a[6][25]=6;
        a[6][26]=6;
        a[6][27]=6;
        a[6][28]=6;
        a[6][29]=6;
        a[6][30]=6;
        a[7][7]=4;
        a[7][8]=4;
        a[7][9]=5;
        a[7][10]=5;
        a[7][11]=5;
        a[7][12]=5;
        a[7][13]=5;
        a[7][14]=5;
        a[7][15]=6;
        a[7][16]=6;
        a[7][17]=6;
        a[7][18]=6;
        a[7][19]=6;
        a[7][20]=6;
        a[7][21]=6;
        a[7][22]=7;
        a[7][23]=7;
        a[7][24]=7;
        a[7][25]=7;
        a[7][26]=7;
        a[7][27]=7;
        a[7][28]=7;
        a[7][29]=7;
        a[7][30]=7;
        a[8][8]=4;
        a[8][9]=5;
        a[8][10]=5;
        a[8][11]=5;
        a[8][12]=5;
        a[8][13]=5;
        a[8][14]=5;
        a[8][15]=6;
        a[8][16]=6;
        a[8][17]=6;
        a[8][18]=6;
        a[8][19]=6;
        a[8][20]=6;
        a[8][21]=6;
        a[8][22]=7;
        a[8][23]=7;
        a[8][24]=7;
        a[8][25]=7;
        a[8][26]=7;
        a[8][27]=7;
        a[8][28]=7;
        a[8][29]=7;
        a[8][30]=8;
        a[9][9]=5;
        a[9][10]=5;
        a[9][11]=6;
        a[9][12]=6;
        a[9][13]=6;
        a[9][14]=6;
        a[9][15]=6;
        a[9][16]=6;
        a[9][17]=6;
        a[9][18]=7;
        a[9][19]=7;
        a[9][20]=7;
        a[9][21]=7;
        a[9][22]=7;
        a[9][23]=7;
        a[9][24]=7;
        a[9][25]=7;
        a[9][26]=8;
        a[9][27]=8;
        a[9][28]=8;
        a[9][29]=8;
        a[9][30]=8;
        a[10][10]=5;
        a[10][11]=6;
        a[10][12]=6;
        a[10][13]=6;
        a[10][14]=6;
        a[10][15]=6;
        a[10][16]=6;
        a[10][17]=6;
        a[10][18]=7;
        a[10][19]=7;
        a[10][20]=7;
        a[10][21]=7;
        a[10][22]=7;
        a[10][23]=7;
        a[10][24]=7;
        a[10][25]=7;
        a[10][26]=8;
        a[10][27]=8;
        a[10][28]=8;
        a[10][29]=8;
        a[10][30]=8;
        a[11][11]=6;
        a[11][12]=6;
        a[11][13]=6;
        a[11][14]=7;
        a[11][15]=7;
        a[11][16]=7;
        a[11][17]=7;
        a[11][18]=7;
        a[11][19]=7;
        a[11][20]=7;
        a[11][21]=8;
        a[11][22]=8;
        a[11][23]=8;
        a[11][24]=8;
        a[11][25]=8;
        a[11][26]=8;
        a[11][27]=8;
        a[11][28]=8;
        a[11][29]=8;
        a[11][30]=9;
        a[12][12]=6;
        a[12][13]=7;
        a[12][14]=7;
        a[12][15]=7;
        a[12][16]=7;
        a[12][17]=7;
        a[12][18]=7;
        a[12][19]=7;
        a[12][20]=7;
        a[12][21]=8;
        a[12][22]=8;
        a[12][23]=8;
        a[12][24]=8;
        a[12][25]=8;
        a[12][26]=8;
        a[12][27]=8;
        a[12][28]=8;
        a[12][29]=8;
        a[12][30]=9;
        a[13][13]=7;
        a[13][14]=7;
        a[13][15]=7;
        a[13][16]=7;
        a[13][17]=8;
        a[13][18]=8;
        a[13][19]=8;
        a[13][20]=8;
        a[13][21]=8;
        a[13][22]=8;
        a[13][23]=8;
        a[13][24]=9;
        a[13][25]=9;
        a[13][26]=9;
        a[13][27]=9;
        a[13][28]=9;
        a[13][29]=9;
        a[13][30]=9;
        a[14][14]=7;
        a[14][15]=8;
        a[14][16]=8;
        a[14][17]=8;
        a[14][18]=8;
        a[14][19]=8;
        a[14][20]=8;
        a[14][21]=8;
        a[14][22]=8;
        a[14][23]=8;
        a[14][24]=9;
        a[14][25]=9;
        a[14][26]=9;
        a[14][27]=9;
        a[14][28]=9;
        a[14][29]=9;
        a[14][30]=9;
        a[15][15]=8;
        a[15][16]=8;
        a[15][17]=8;
        a[15][18]=8;
        a[15][19]=8;
        a[15][20]=9;
        a[15][21]=9;
        a[15][22]=9;
        a[15][23]=9;
        a[15][24]=9;
        a[15][25]=9;
        a[15][26]=9;
        a[15][27]=10;
        a[15][28]=10;
        a[15][29]=10;
        a[15][30]=10;
        a[16][16]=8;
        a[16][17]=8;
        a[16][18]=8;
        a[16][19]=8;
        a[16][20]=9;
        a[16][21]=9;
        a[16][22]=9;
        a[16][23]=9;
        a[16][24]=9;
        a[16][25]=9;
        a[16][26]=9;
        a[16][27]=10;
        a[16][28]=10;
        a[16][29]=10;
        a[16][30]=10;
        a[17][17]=8;
        a[17][18]=9;
        a[17][19]=9;
        a[17][20]=9;
        a[17][21]=9;
        a[17][22]=9;
        a[17][23]=9;
        a[17][24]=10;
        a[17][25]=10;
        a[17][26]=10;
        a[17][27]=10;
        a[17][28]=10;
        a[17][29]=10;
        a[17][30]=10;
        a[18][18]=9;
        a[18][19]=9;
        a[18][20]=9;
        a[18][21]=9;
        a[18][22]=9;
        a[18][23]=10;
        a[18][24]=10;
        a[18][25]=10;
        a[18][26]=10;
        a[18][27]=10;
        a[18][28]=10;
        a[18][29]=10;
        a[18][30]=11;
        a[19][19]=9;
        a[19][20]=9;
        a[19][21]=9;
        a[19][22]=10;
        a[19][23]=10;
        a[19][24]=10;
        a[19][25]=10;
        a[19][26]=10;
        a[19][27]=11;
        a[19][28]=11;
        a[19][29]=11;
        a[19][30]=11;
        a[20][20]=9;
        a[20][21]=10;
        a[20][22]=10;
        a[20][23]=10;
        a[20][24]=10;
        a[20][25]=10;
        a[20][26]=11;
        a[20][27]=11;
        a[20][28]=11;
        a[20][29]=11;
        a[20][30]=11;
        a[21][21]=10;
        a[21][22]=10;
        a[21][23]=10;
        a[21][24]=10;
        a[21][25]=10;
        a[21][26]=11;
        a[21][27]=11;
        a[21][28]=11;
        a[21][29]=11;
        a[21][30]=11;
        a[22][22]=10;
        a[22][23]=10;
        a[22][24]=10;
        a[22][25]=11;
        a[22][26]=11;
        a[22][27]=11;
        a[22][28]=11;
        a[22][29]=11;
        a[22][30]=11;
        a[23][23]=10;
        a[23][24]=11;
        a[23][25]=11;
        a[23][26]=11;
        a[23][27]=11;
        a[23][28]=11;
        a[23][29]=12;
        a[23][30]=12;
        a[24][24]=11;
        a[24][25]=11;
        a[24][26]=11;
        a[24][27]=11;
        a[24][28]=11;
        a[24][29]=12;
        a[24][30]=12;
        a[25][25]=11;
        a[25][26]=11;
        a[25][27]=11;
        a[25][28]=12;
        a[25][29]=12;
        a[25][30]=12;
        a[26][26]=11;
        a[26][27]=11;
        a[26][28]=12;
        a[26][29]=12;
        a[26][30]=12;
        a[27][27]=12;
        a[27][28]=12;
        a[27][29]=12;
        a[27][30]=12;
        a[28][28]=12;
        a[28][29]=12;
        a[28][30]=12;
        a[29][29]=12;
        a[29][30]=12;
        a[30][30]=12;
        scanf("%d%d",&w,&h);
        if(w>=h){
            swap(w,h);
        }
        printf("%d\n",a[w][h]);
        return 0;
    }
    
    
    不摆烂了,写题
  • 相关阅读:
    数据验证及文件操作
    Leecode336
    Leecode335
    正式回归
    自定义按钮的实现 windows phone
    asp.net中保存更改数据
    asp.net中可以这样序列化
    Asp.net mvc 3 实现进度条上传思路[转]
    server.MapPath
    Path.Combine (合并两个路径字符串)方法的一些使用细节
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/14475251.html
Copyright © 2011-2022 走看看