zoj1245Triangles
1384 단어 RIA
사고방식은 매우 간단하다. 모든 흰색의 삼각형에 대해 먼저 입구가 위로 향하는지 아래로 향하는지 판단한 다음에 서로 다른 귀속을 선택한다.
시작점과 끝점을 기록하고 사이의 점을 방문하면
코드:
# include<stdio.h>
# include<string.h>
char map[105][205];
int count,n;
void dfs1(int r,int from ,int to)
{
int i,ans;
if(r>=n) return;
ans=n-1-r;/*ans */
if(!(from>=ans &&to<2*r+1+ans)) return;
for(i=from;i<=to;i++)
{
if(map[r][i]!='-') return;
}
dfs1(r+1,from-1,to+1);
count+=to-from+1;
}
void dfs2(int r,int from,int to)
{
int i,ans;
if(r<0) return;
ans=n-1-r;/*ans */
if(!(from>=ans && to<2*r+1+ans)) return;
for(i=from;i<=to;i++)
if(map[r][i]!='-') return;
dfs2(r-1,from-1,to+1);
count+=to-from+1;
}
int main()
{
int i,j,max,ans,t=0;
while(scanf("%d",&n)!=EOF && n)
{
t++;
getchar();
for(i=n-1;i>=0;i--)
gets(map[i]);
max=0;
for(i=n-1;i>=0;i--)
{
ans=n-1-i;/*ans */
for(j=ans;j<2*i+1+ans;j++)
{
if(map[i][j]=='-')
{
count=0;
if((j-ans)%2==0) dfs1(i,j,j);/* */
else dfs2(i,j,j);
if(count>max) max=count;
}
}
}
printf("Triangle #%d
The largest triangle area is %d.
",t,max);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
zoj1245Triangles이 문제는 어렵지 않다. 단지 귀속을 한 번 썼을 뿐이지만, 문자열 처리에 있어서는 중간에 많은 작은 세부 사항을 주의해야 한다. 사고방식은 매우 간단하다. 모든 흰색의 삼각형에 대해 먼저 입구가 위로 향하는지 아래...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.