infinity

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  36 随笔 :: 0 文章 :: 25 评论 :: 0 Trackbacks

http://acm.pku.edu.cn/JudgeOnline/problem?id=3051

很简单的floodfill


Source Code

Problem: 3051 User: lovecanon
Memory: 284K Time: 47MS
Language: C Result: Accepted

  • Source Code

  • #include<stdio.h>
    char a[1001][81];
    int R,C,sum,max=0;
    const int dx[]={0,0,-1,1},dy[]={-1,1,0,0};
    void solve(int r,int c)
    {
        
    int i,nextr,nextc;
        a[r][c]
    ='.';sum++;
        
    for(i=0;i<4;i++)
        {
            nextr
    =r+dx[i];
            nextc
    =c+dy[i];
            
    if(nextr>=0&&nextr<R&&nextc>=0&&nextc<C&&a[nextr][nextc]=='*')
                solve(nextr,nextc);
        }
        
    return ;
    }

    int main()
    {
        
    int i,j;
        scanf(
    "%d%d",&C,&R);getchar();
        
    for(i=0;i<R;i++)
        {
            
    for(j=0;j<C;j++)
                a[i][j]
    =getchar();
            getchar();
        }
        
    for(i=0;i<R;i++)
            
    for(j=0;j<C;j++)
            {
                
    if(a[i][j]=='*')  
                {
                    sum
    =0;solve(i,j);
                    
    if(sum>max) max=sum;
                }
            }
        printf(
    "%d\n",max);
        
    return 0;
    }

posted on 2008-09-20 04:24 infinity 阅读(313) 评论(0)  编辑 收藏 引用 所属分类: acm

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理