zoukankan      html  css  js  c++  java
  • codevs2215 三角形蛋糕

    codevs2215 三角形蛋糕


    原题链接


    煞笔题???
    开始一看似乎没啥思路的样子
    然后想了一下
    额。。。
    首先啃腚考虑缩进存储
    然后看一下这样的性质

    #-##----#
     -----#-
      ---#-
       -#-
        -
    

    |
    V

    #-##----#
    -----#-
    ---#-
    -#-
    -
    

    and

    -----
     ---
      -
    

    |
    V

    -----
    ---
    -
    

    那么三角形就变成这个鬼样子了嘛。
    那么设f[i][j]表示(i,j)为三角形最下面的那个点向上能扩展的最多行数
    s[i][j]='#'->f[i][j]=0
    s[i][j]='-'->f[i][j]=min(f[i-1][j],f[i-1][j-1],f[i-1][j-2])+1
    答案为(max){(f[i][j]^2)}.
    然后你会发现WA了
    答案小了
    原因是三角形可能有倒的
    重新YY出另一个状态:
    那么设f[i][j]表示(i,j)为三角形最上面的那个点向下能扩展的最多行数
    转移差不多,可以看代码
    然后你会发现再次WA
    答案大了(QwQ)
    原因是。。。
    一个点可能无法更新答案但还是更新了!!!
    比如这个点对应的三角形是倒的 然而更新了正的状态,特判一下


    Code

    // It is made by XZZ
    #include<cstdio>
    #include<algorithm>
    #define Fname "trigon"
    using namespace std;
    #define rep(a,b,c) for(rg int a=b;a<=c;a++)
    #define drep(a,b,c) for(rg int a=b;a>=c;a--)
    #define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
    #define il inline
    #define rg register
    #define vd void
    typedef long long ll;
    il int gi(){
        rg int x=0;rg char ch=getchar();
        while(ch<'0'||ch>'9')ch=getchar();
        while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
        return x;
    }
    char c[101][202];
    int f[101][202],g[101][202];
    int main(){
        #ifdef xzz
        freopen(Fname".in","r",stdin);
        freopen(Fname".out","w",stdout);
        #endif
        int n=gi();
        rep(i,1,n)scanf("%s",c[i]+1);
        int ans=0;
        rep(i,1,n*2-1)if(c[1][i]!='#')f[1][i]=ans=1;
        rep(i,2,n)drep(j,(n-i)*2+1,1){
    	if(c[i][j]!='#')f[i][j]=min(f[i-1][j],min(f[i-1][j+1],f[i-1][j+2]))+1;
    	if(j&1)ans=max(ans,f[i][j]);
        }
        if(c[n][1]=='#')g[n][1]=1;
        drep(i,n-1,1)drep(j,(n-i)*2+1,1){
    	if(j<3||j>(n-i-1)*2+1)g[i][j]=c[i][j]=='-';
    	else if(c[i][j]!='#')g[i][j]=min(g[i+1][j],min(g[i+1][j-1],g[i+1][j-2]))+1;
    	if(!(j&1))ans=max(ans,g[i][j]);
        }
        printf("%d
    ",ans*ans);
        return 0;
    }
    
  • 相关阅读:
    AutoFac中常用方法说明
    DI之循环依赖
    NB/T 10215-2019 风力发电机组 测风传感器等最新能源行业标准
    DL/T 691-2019等最新电力行业标准
    TSG D7006-2020 压力管道监督检验规则
    YY/T 0595-2020 医疗器械 质量管理体系YY/T 0287-2017 应用指南
    GB/T 38775-2020系列电动汽车无线充电系统标准
    最新电动汽车安全标准
    GB 38032-2020 电动客车安全要求
    GB 38031-2020 电动汽车用动力蓄电池安全要求
  • 原文地址:https://www.cnblogs.com/xzz_233/p/7545827.html
Copyright © 2011-2022 走看看