博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
母函数写法
阅读量:6224 次
发布时间:2019-06-21

本文共 3645 字,大约阅读时间需要 12 分钟。

1 import java.awt.Point;  2 import java.io.BufferedInputStream;  3 import java.util.ArrayList;  4 import java.util.List;  5 import java.util.Map;  6 import java.util.Scanner;  7   8 public class Main {  9  10     static int T=0,n=0,knum=0,sum=0,count=0; 11 //    public static void  dfs(List
list,int k) 12 // { 13 // if(sum==n) 14 // { 15 // count++; 16 // return; 17 // } 18 // else if(sum
=knum) 21 // return; 22 // Point point=list.get(k); 23 // for(int i=0;i<=point.y;i++) 24 // { 25 // sum=sum+i*point.x; 26 // dfs(list,k+1); 27 // sum=sum-i*point.x; 28 // } 29 // } 30 // else 31 // return; 32 // } 33 34 public static void dfs(List
list,int k,int mysum) 35 { 36 if(mysum>50) 37 return; 38 if(k==list.size()) 39 { 40 if(mysum!=0) 41 count++; 42 return; 43 } 44 Point point=list.get(k); 45 for(int i=0;i<=point.y;i++) 46 { 47 //sum+=point.x*i; 48 int mynewsum=mysum+point.x*i; 49 if(mynewsum<=50) 50 dfs(list,k+1,mynewsum); 51 //sum-=point.x*i; 52 } 53 } 54 55 public static void main(String[] args) { 56 Scanner cin=new Scanner(System.in); 57 List
list=new ArrayList
(); 58 int a, b; 59 int num[]=new int[27]; 60 while(cin.hasNextInt()) 61 { 62 T = cin.nextInt(); 63 while(0!=T--) 64 { 65 // list.clear(); 66 int c1[]=new int[51],c2[]=new int[51]; 67 for(int i=0;i<51;i++) 68 { 69 c1[i]=0; 70 c2[i]=0; 71 } 72 c1[0]=1; 73 for(int i=1;i<=26;i++)    //i代表第几项式 74 { 75 a=cin.nextInt(); 76 for(int j=50;j>=0;j--)  //j代表 被乘的 第几项 77 { 78 if(c1[j]!=0) 79 for(int k=1;k<=a;k++)    //k代表 i上的叠加,就是第i项式上的叠加数 80 { 81 if(j+k*i<51)        //此后 j+k*i就是 第j项被乘了 k*i 82 c1[j+k*i]+=c1[j]; 83 } 84 } 85 } 86 sum=0; 87 for(int i=1;i<51;i++) 88 sum+=c1[i]; 89 System.out.println(sum); 90 91 count=0; 92 // dfs(list,0,0); 93 // dfs(num,0,0); 94 95 // System.out.println(count); 96 } 97 } 98 } 99 100 101 }

hdu2082 母函数写法

 

 

 

 

普遍写法如下:

1 例2 如同例1 但是每种纸币个数不限 ,现求表示不同数值的方案数。 2     由于是无限  ,母函数表示为 f(x)=(1+1*x+1*x^2+1*x^3....)(1+1*x^2+1*x^4+1*x^6....)(1+1*x^3+1*x^6+1*x^9....)(1+1*x^4+1*x^8+1*x^12....) 3   此时继续分析面值为4的情况:4=1+1+1+1=1+3=1+2+1=2+2   有5种情况。 4  5 代码2: 6    void Function2(int n)   //纸币可以用无数次   n张纸币 7 { 8 int a[100],sum=0;   //存贮币值 9    for(int i=0;i
>a[i];13 sum+=a[i]; //由于无数个纸币,最大值也是无限大,此处最大值假设为sum14 }15 for(i = 0; i <=sum; i++) 16 { 17 c1[i] = 0; 18 c2[i] = 0; 19 }20 for(i=0;i<=sum;i=i++) 21 c1[i]=1;22 for(i=2;i<=n;i++)23 {24 for(int j=0;j<=sum;j++)25 for(int k=0;k+j

 

转载地址:http://gouna.baihongyu.com/

你可能感兴趣的文章
Eclipse崩溃后无法启动的问题解决
查看>>
Android Studio git ignore
查看>>
springmvc
查看>>
22.2. 用户认证
查看>>
1.7. User interfaces
查看>>
阿里Druid数据连接池在SSM框架中的配置使用
查看>>
基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作...
查看>>
Linux虚拟主机通过程序实现二级域名绑定到子目录
查看>>
7.12. cvs diff
查看>>
Android酷炫实用的开源框架(UI框架)
查看>>
Winform开发框架之对话框样式同化
查看>>
一脸懵逼学习Linux的Shell编程
查看>>
Jmeter调试工具---Debug Sampler
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.14
查看>>
impdp的TABLE_EXISTS_ACTION参数选项
查看>>
机器学习之深入理解神经网络理论基础、BP算法及其Python实现
查看>>
ecshop设置一个子类对应多个父类并指定跳转url的修改方法
查看>>
【spring源码学习】spring的事务管理的源码解析
查看>>
遇见喜欢数学的女孩
查看>>
linux进程资源占用高原因分析命令记录
查看>>