• HDU2110+母函数


     1 /*
     2 母函数(生成函数)
     3 题意:
     4 有n种资产,每种资产num份,每份有val的价值
     5 问取出总价值的1/3有多少种方案
     6 */
     7 #include<stdio.h>
     8 #include<string.h>
     9 #include<stdlib.h>
    10 #include<algorithm>
    11 #include<iostream>
    12 #include<queue>
    13 #include<stack>
    14 #include<math.h>
    15 #include<map>
    16 using namespace std;
    17 const int maxn = 10005;
    18 int c1[ maxn ],c2[ maxn ];
    19 int val[ 105 ],num[ 105 ];
    20 int main(){
    21     int n;
    22     while( scanf("%d",&n)==1,n ){
    23         int sum = 0;
    24         for( int i=0;i<n;i++ ){
    25             scanf("%d%d",&val[i],&num[i]);
    26             sum += val[i]*num[i];
    27         }
    28         if( sum%3!=0 ){
    29             printf("sorry
    ");
    30         }
    31         else{
    32             int aim = sum/3;
    33             memset( c1,0,sizeof( c1 ) );
    34             memset( c2,0,sizeof( c2 ) );
    35             for( int i=0;i<=val[0]*num[0];i+=val[0] ){
    36                 c1[ i ] = 1;
    37             }//
    38             for( int i=1;i<n;i++ ){
    39                 for( int j=0;j<=aim;j++ ){
    40                     for( int k=0;(k+j<=aim)&&(k<=val[i]*num[i]);k+=val[i] ){
    41                         c2[ k+j ] = c1[ j ]+c2[ k+j ];
    42                         c2[ k+j ] %= 10000;
    43                     }
    44                 }//
    45                 for( int j=0;j<=aim;j++ ){
    46                     c1[j] = c2[j];
    47                     c2[j] = 0;
    48                 }//滚动数组
    49             }
    50             if( c1[aim]!=0 ) printf("%d
    ",c1[aim]);
    51             else printf("sorry
    ");
    52         }
    53     }
    54     return 0;
    55 }
    56     
    View Code
    keep moving...
  • 相关阅读:
    个人博客作业-软件案例分析1 博客园和CSDN
    第一次结对项目
    个人项目作业(1)
    个人博客作业(1)
    第一次个人作业
    面向对象第四单元总结和期末总结
    面向对象第三单元总结
    面向对象第二单元总结
    UML——BUAA_OO 第四单元总结 & 课程总结
    JML——BUAA_OO 第三单元总结
  • 原文地址:https://www.cnblogs.com/xxx0624/p/3236996.html
Copyright © 2020-2023  润新知