zoukankan      html  css  js  c++  java
  • poj 3181 Dollar Dayz(求组成方案的背包+大数)

    可能nyist看见加的背包专题我老去凑热闹,觉得太便宜我了。他们新加的搜索专题居然有密码。

    都是兄弟院校嘛!何必那么小气。

    回到正题,跟我写的上一篇关于求组成方案的背包思路基本一样,无非就是一个二维费用的背包换成了完全背包。如果说题目有什么亮点的话,那就是大数了。第一遍写的时候瞎了我的狗眼竟然没注意到,我的1A就这么没了。

    关于组成方案的叙述,还是看我之前那篇结题报告吧:关于背包组成方案的讨论

    #include<stdio.h>
    #include<string.h>
    #define N 1005
    int dp[N][N];
    int flag[N];
    int i,j;
    void Add(int x)
    {
    	int i;
    	int as=0;
    	flag[j]=flag[j]>flag[x]?flag[j]:flag[x];
    	for(i=0;i<flag[j];i++)
    	{
    		dp[j][i]=dp[j][i]+dp[x][i]+as;
    		as=0;
    		if(dp[j][i]>=10)
    		{
    			as=1;
    			dp[j][i]%=10;
    		}
    	}
    	if(as)
    	{
    		flag[j]++;
    		dp[j][i]=1;
    	}
    	return ;
    }
    		
    int main()
    {
    	int n,m;
    	while(scanf("%d%d",&n,&m)!=EOF)
    	{
    		memset(dp,0,sizeof(dp));
    		memset(flag,0,sizeof(flag));
    		dp[0][0]=1;
    		flag[0]=1;
    		for(i=1;i<=m;i++)
    		{
    			for(j=i;j<=n;j++)
    			{
    				int x;
    				x=j-i;
    				Add(x);
    			}
    		}
    		for(i=flag[n]-1;i>=0;i--)
    			printf("%d",dp[n][i]);
    		printf("
    ");
    	}
    	return 0;
    }


  • 相关阅读:
    Annotation
    injector
    Java容器(container)
    build tool(构建工具)maven和gradle安装方法
    version control(版本控制)
    函数式编程
    URI与URL
    超文本传输协议HTTP
    annotation的理解
    Injection
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3194327.html
Copyright © 2011-2022 走看看