zoukankan      html  css  js  c++  java
  • acm 1171母函数

    #include"iostream"
    using namespace std;
    int c1[250010],c2[250010];
    int value[55];
    int amount[55];
    int main()
    {
        int nNum;
        while(scanf("%d",&nNum)&&nNum>0)
        {
            memset(value,0,sizeof(value));
            memset(amount,0,sizeof(amount));
            int sum=0;
            for(int i=1;i<=nNum;++i)
            {
               scanf("%d %d",&value[i],&amount[i]);
               sum+=value[i]*amount[i];       
            }                            
            memset(c1,0,sum*sizeof(c1[0]));
            memset(c2,0,sum*sizeof(c2[0]));
            for(int i=0;i<=value[1]*amount[1];i+=value[1])
               c1[i]=1;
            int len=value[1]*amount[1];
            for(int i=2;i<=nNum;++i)
            {
               for(int j=0;j<=len;++j)
                  for(int k=0;k<=value[i]*amount[i];k+=value[i])
                  {
                     c2[k+j]+=c1[j];       
                  }       
                  len+=value[i]*amount[i];
                  for(int j=0;j<=len;++j)
                  {
                     c1[j]=c2[j];
                     c2[j]=0;       
                  }
            }
            for(int i=sum/2;i>=0;--i)
               if(c1[i]!=0)
               {
                  printf("%d %d\n",sum-i,i);
                  break;
               }         
        }
         return 0;   
    }

  • 相关阅读:
    LeetCode 297. 二叉树的序列化与反序列化
    LeetCode 14. 最长公共前缀
    LeetCode 1300. 转变数组后最接近目标值的数组和
    bigo一面凉经
    LeetCode 128.最长连续序列
    LeetCode中二分查找算法的变种
    LeetCode 93. 复原IP地址
    LeetCode 1004. 最大连续1的个数 III
    LeetCode 1282. 用户分组
    多线程理解
  • 原文地址:https://www.cnblogs.com/QQbai/p/2128485.html
Copyright © 2011-2022 走看看