• poj 1004 Dividing


                           大意是,从输入六个数 。第i个数代表价值为i的有几个,平均分给两个人 ,明摆着的背包问题,本来以为把他转化为01背包。可是TLe,后来发现是12万的平方还多,所以妥妥的TLE,后来发现这是一个全然背包问题。然后即纠结了 ,没学过啊 。最后发现思想好i是蛮简单的,水水的A掉了。最后注意一下初始化问题和输入问题后就好了

    #include <stdio.h>
    #include <string.h>
    int a[10];
    int dp[120005];
    int maxx(int a,int b)
    {
        return (a>b)?a:b;
    }
    int main()
    {
        int cases=0;
        while(scanf("%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6])!=EOF)
        {
            memset(dp,0,sizeof(dp));
            int sum=0;
            if(a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0)
                break;
            for(int i=1;i<7;i++)
            {
                sum+=a[i]*i;
            }
            int mount;
            int i,j,k;
           // printf(" %d
    ",sum);
            if(sum%2)//当时奇数的时候肯定不能分开
            {
                printf("Collection #%d:
    Can't be divided.
    
    ",++cases);
            }
            else
            {
              for(i=1;i<=6;i++) 
           {
    		  // printf("%d %d ",sum,a[i]);
               mount=a[i];
    		 // printf("%d
    ",mount);
    		  dp[0]=1;//初始化为1。假设不初始化的话,由于dp【1】+=dp【0】。
            for(k=1;k<=mount;k*=2) 
            { 
              for(j=sum/2;j>=k*i;j--) 
                 dp[j]+=dp[j-k*i]; 
                 mount-=k; 
            } 
              if(mount) 
              for(j=sum/2;j>=mount*i;j--) //从sum/2開始  最后能不能有,有就一定是sum/2;
                dp[j]+=dp[j-mount*i]; 
            } 
              //for(int i=0;i<sum/2;i++)
              //   printf("%d
    ",dp[i]);
               if(dp[sum/2])
                printf("Collection #%d:
    Can be divided.
    ",++cases);
                else
               printf("Collection #%d:
    Can't be divided.
    ",++cases);
    		   printf("
    ");
            }
        }
    }


    版权声明:都是兄弟,请重新发布。请说明谁是兄弟

  • 相关阅读:
    【Maven学习】定制库到Maven本地资源库
    Eclipse安装Properties Editor插件
    【电商日志项目之七】项目调优
    【电商日志项目之六】数据分析-Hive方式
    【电商日志项目之五】数据分析-MR方式
    【电商日志项目之四】数据清洗-ETL
    【Sqoop学习之二】Sqoop使用
    数据集下载链接
    通过类来实现多session 运行
    Windows下如何使用Tensorflow Object Detection API
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4671787.html
Copyright © 2020-2023  润新知