三角蛋糕
来源:互联网 发布:大数据的作用 编辑:程序博客网 时间:2024/04/27 19:32
三角蛋糕
Description
XP在机房里放了一块正三角形的大蛋糕,但是第二天他发现蛋糕被老鼠咬坏了。
XP不想让蛋糕白白的被浪费,于是他把蛋糕分割成了一个个的小正三角形(如上图所示)。
黑色的小正三角形表示老鼠把那一块咬坏了。
XP想要切出一块最大的没被老鼠咬坏正三角形的蛋糕,可是最大的三角形有多大呢?
Input
第一行,一个整数
接下来的
“-”表示这块蛋糕是好的,“#”表示这块蛋糕被咬坏了。
为了保持三角形的形状,输入文件中会出现空格。
Output
一行一个整数,表示最大的三角形包括的小三角形数。
Sample Input
5#-##----# -----#- ---#- -#- -
Sample Output
9
Data Size
对于
对于所有的测试数据,满足
Solution
其中
注意当
当
Code
#include <iostream>#include <cstdio>#include <cstring>#define Max(x,y) ((x)>(y)?(x):(y))#define Min(x,y) ((x)<(y)?(x):(y))using namespace std;int n,ans;char s[410][410];int f1[410][410];int f2[410][410];void dp1(int x,int y){ if(s[x][y]=='#'){ f1[x][y]=0; return; } if(f1[x][y]!=-1)return; if(x==n){ f1[x][y]=1; return; } if(s[x+1][y]=='#'){ f1[x][y]=1; return; } if(y!=x+1){dp1(x+1,y-1);f1[x][y]=f1[x+1][y-1]+1;} if(y!=2*n-x-1){ dp1(x+1,y+1); if(f1[x][y]==-1)f1[x][y]=f1[x+1][y+1]+1; else f1[x][y]=Min(f1[x][y],f1[x+1][y+1]+1); } if(y==x+1||y==2*n-x-1)f1[x][y]=1;}void dp2(int x,int y){ if(s[x][y]=='#'){ f2[x][y]=0; return; } if(f2[x][y]!=-1)return; if(x==1){ f2[x][y]=1; return; } if(s[x-1][y]=='#'){ f2[x][y]=1; return; } dp2(x-1,y-1);dp2(x-1,y+1); f2[x][y]=Min(f2[x-1][y+1]+1,f2[x-1][y-1]+1);}int main(){ freopen("trigon.in","r",stdin); freopen("trigon.out","w",stdout); memset(f1,-1,sizeof f1); memset(f2,-1,sizeof f2); scanf("%d",&n); for(int i=1;i<=n;i++){ getchar(); for(int j=2;j<=i;j++)getchar(); for(int j=i;j<=2*n-i;j++)s[i][j]=getchar(); } for(int i=1;i<=n;i++){ for(int j=i+1;j<=2*n-i;j+=2){ dp1(i,j);dp2(i,j-1); ans=Max(ans,f1[i][j]); ans=Max(ans,f2[i][j-1]); } dp2(i,2*n-i); ans=Max(ans,f2[i][2*n-i]); } printf("%d\n",ans*ans); return 0;}
0 0
- 三角蛋糕
- 三角蛋糕
- [作业]三角蛋糕
- 蛋糕
- 蛋糕
- 蛋糕
- zoj 3537 凸包+三角剖分dp(切蛋糕)
- 三角
- 2043 蛋糕
- 切蛋糕
- 酸奶蛋糕
- 分蛋糕
- 切蛋糕
- 分蛋糕
- 平分蛋糕
- 分蛋糕
- 分蛋糕
- 分蛋糕
- Setting语言与输入法列表客制化
- Android 避免APP启动闪黑屏(Theme和Style)
- JAVA集合(二)-ArrayList
- spring各个jar包的意义
- 初识Retrofit2.0
- 三角蛋糕
- perl读写Excel
- 欢迎使用CSDN-markdown编辑器
- 4.1、Android Stuido配置你的Build Variant
- Linux防火墙iptables详解(四)--iptables实现NAT
- 移植ssh到arm
- vim编码设置方法
- mac os 中 pycharm 中安装matplotlib后不能正常使用
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)