太空飞行计划nylgoj531

不知道是哪里出了错~~~~~~~~~  答案是正确的  可是就是提交不上去

#include<stdio.h>

#include<stdlib.h>

int main()

{

    int m,n;//m  实验的次数,n  实验的仪器的个数

    int b[102][2];//0表示的是仪器的价格,1 表示的是 是否使用

    int a[502][502];//a[i][0]表示的是付出的价格,a[1]表示的是进行循环的次数

    int c[502];//表示的是尽职数

    int d[502];//表示这个实验是否选择去做

    int e[502];//表示已经选择的机器

    int f[502];//用来存储每个情况

    int i,j,k;

    int count=0,cost=0;//价格的总数

    c[1]=1;

    while(scanf("%d%d",&m,&n)!=EOF)

    {

             for(i=2;i<=m;i++)

                {

                   c[i]=2*c[i-1];

                }

             for(i=1;i<=m;i++)

             {

                scanf("%d%d",&a[i][0],&a[i][1]);

                for(j=2;j<a[i][1]+2;j++)

                  scanf("%d",&a[i][j]);

             }

            for(i=1;i<=n;i++)

            {

              scanf("%d",&b[i][0]);

            }

            int max=0;

            for(i=0;i<2*c[m];i++)

             {

                 int tem=i;

                 for(j=1;j<=m;j++)

                {

                    d[j]=tem/c[m-j+1];

                    tem=tem%c[m-j+1];

                }

                for(j=1;j<=n;j++)

                {

                  e[j]=0;

                  f[j]=0;

                }

      

                count=0;//总的投资

                for(j=1;j<=m;j++)

                {

                    for(k=1;k<=n;k++)

                      f[k]=0;

                    if(d[j]==1)

                    {

                        count+=a[j][0];

                        for(k=2;k<a[j][1]+2;k++)

                        {

                            f[a[j][k]]=+1;

                        }

                    }

                for(k=1;k<=n;k++)

                {

                    if(f[k]>e[k])

                      e[k]=f[k];

                }   

             }

             cost=0;

            for(k=1;k<=n;k++)

              if(e[k]!=0)

              {

                 cost=cost+b[k][0]*e[k];

              }

              if(count-cost>max)

              max=count-cost;

      

    }

  

   printf("%d\n",max);

  }

 

   return 0;

}

 

posted @ 2012-05-08 17:23  coodle  阅读(114)  评论(0)    收藏  举报