Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

牛人给几组测试数据吧!我wa的不行了!

Posted by houxuanfelix at 2006-08-09 17:22:21 on Problem 2943
我的思想是这样的,先按每种药可以检测的病的数目进行排序,然后依次扫描每个集合,如果后面打的集合能被前面的小集合合并得到,则此集合将被去掉。
这种思想对吗?
附代码:

Memory:316K  Time:484MS
Language:G++  Result:Wrong Answer


#include <stdio.h>

int    f[310],n,m;

struct node{
       int   t[310];
       int   len;
       }st[300],temp;

int main()
{
    int    i,j,k,flag,count;
    while (1)
    {
          scanf ("%d%d",&n,&m);
          if (n==0&&m==0)       break;
          for (i=0;i<=n;i++)    f[i]=-1;
          for (i=1;i<=m;i++)
          {
              scanf ("%d",&st[i].len);
              for (j=1;j<=st[i].len;j++)
              {
                    scanf ("%d",&st[i].t[j]);
                    f[st[i].t[j]]=0;
              }
          }
          for (i=1;i<=m;i++)
             for (j=i+1;j<=m;j++)
                if (st[j].len<st[i].len)
                {
                      temp=st[i];
                      st[i]=st[j];
                      st[j]=temp;
                }
          count=0;
          for (i=1;i<=m;i++)
          {
              k=0;
              for (j=1;j<=st[i].len;j++)
                   if (f[st[i].t[j]]==0)
                   {
                        f[st[i].t[j]]=1;
                        k=1;
                   }
              if (k==0)  count++;
          }
          printf ("%d\n",count);
    }
    return 0;
}
          

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator