搜索
查看: 1024|回复: 0
打印 上一主题 下一主题

[题目/题解] vijos 1153 题解

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-20 19:46:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[code=Cpp width=700px]#include <stdio.h>
int f[201][8001];
int main()
{
        int n,a[201],sum=0,mid,midn,i,j,k;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
          scanf("%d",&a);
          sum+=a;
        }
        f[0][0]=1;

        midn = n / 2;
        for(i=1;i<=n;i++)
          for(j=midn;j>=0;j--)
                for(k=40*j;k>=0;k--)
                {
                  if(f[j][k]==1)
                        f[j+1][k+a]=1;
                }

        mid=sum / 2;
        for(i=mid;i>=0;i--)
        {
                if(f[midn]==1)
                {
                  printf("%d %d",i,sum-i);
                  break;
                }
        }
        printf("\n------------------------\n");
        printf("0 1 2 3 4 5 6 7 8 9 10\n");
        for(i=1;i<=n;i++)
        {
          for(j=0;j<=10;j++)
          {
                 printf("%d ",f[j]);
          }
          printf("\n");
        }

   getchar();
   getchar();
   return 0;
}
[/code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表