浙大ACM1245<Triangles>题解

来源:互联网 发布:jquery 清空数组 编辑:程序博客网 时间:2024/05/17 19:56
图深搜遍历
#include<stdio.h>#include<string.h>int number,h;char tri[100][200];void down(int row,int col,int layer){number=layer*layer;if(row>=h||col<0||col%2==0)return;int i;for(i=0;i<2*layer+1;++i)if(tri[row][col+i]=='#'||col+i>=strlen(tri[row]))return;down(row+1,col-2,layer+1);}void up(int row,int col,int layer){number=layer*layer;if(row<0||col%2)return;int i;for(i=0;i<2*layer+1;++i)if(tri[row][col+i]=='#'||col+i>=strlen(tri[row]))return;up(row-1,col,layer+1);}int main(){int x=1;while(1){int max=0;scanf("%d",&h);if(h==0)break;int i,j;for(i=0;i<h;++i){scanf("%s",tri[i]);}for(i=0;i<h;++i)for(j=0;j<strlen(tri[i]);++j){if(tri[i][j]=='#')continue;down(i,j,0);if(max<number)max=number;up(i,j,0);if(max<number)max=number;}printf("Triangle #%d\n",x++);printf("The largest triangle area is %d.\n\n",max);memset(tri,0,sizeof(tri));}return 0;}
0 0
原创粉丝点击