单链DNA

换了个地址:http://www.cnblogs.com/vizhen/

 

HDOJ 2539 点球大战 --水题阿,但我就是错了几次


   其实题目很简单,算法就是模拟,但是要注意题目虽然说没有歧义,但要注意理解
   可能出现的数据情况: no no good。//name 是no 没进球!
                        no good good。//name是no good 进球了!
   所以在处理上要注意:1。字符串输入可以有空格--使用gets();
                       2。从字符串后面数8个判断是否是“ no good”(注意空格),是则表明没进,不是则表明进球了。
                       3。怎么处理从字符串后面数8个呢?还记得数组名和指针的关系?
   
  
 
#include <iostream>
#include 
<string.h>

using namespace std;

int main()
{
    
int n;
    
while (scanf("%d",&n)&&n)
    {
        
char name[1002];
        
int goal[20]={0};
        getchar();//过滤回车
        
        
for (int i=0;i<n;i++)
        {
            gets(name);
            
//puts(name);
            int len;
            len
=strlen(name);
            
            
if(len>7)
            {
                
if(strcmp(name+(len-8)," no good")==0)//数组名即指针
                {
                    goal[i]
=0;
                }
                
else
                    goal[i]
=1;
            }
            
else goal[i]=1;
        }

        
int t;
        t
=n/2;
        
if(n%2==1) t++;
        
        
for (i=1;i<=t;i++)
        {
            printf(
"%d ",i);
        }
        printf(
"Score\n");
        
        
int j=0,tmp=0;
        
for (i=1;i<=t;i++)
        {
            
if(goal[j]==1)
            {
                printf(
"");
                tmp
++;
            }
            
else printf("");
            j
+=2;
        }
        printf(
"%d\n",tmp);
        
        j
=1;
        tmp
=0;
        
if(n%2==1) t--;
        
for (i=1;i<=t;i++)
        {
            
if(goal[j]==1)
            {
                printf(
"");
                tmp
++;
            }
            
else printf("");
            j
+=2;
        }
        
if(n%2==1) printf("");
        printf(
"%d\n",tmp);
    }

    
}

posted on 2010-08-12 11:37 Geek.tan 阅读(405) 评论(0)  编辑 收藏 引用 所属分类: ACM解题报告


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


导航

统计

公告

coding是我的寂寞,我是谁的寂寞

随笔分类(40)

随笔档案(48)

搜索

积分与排名

最新评论

评论排行榜