(poj3181)完全背包((和钱币一样只是这个用到大数))
2013-08-02 23:50
337 查看
#include<stdio.h>
#include<string.h>
int f[1006][1006];
int main()
{
int m,n,i,j,k,h;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(f,0,sizeof(f));
f[0][0]=1;
for(i=1;i<=n;i++)
for(j=i;j<=m;j++)
{
for(k=0;k<100;k++)------------------------------大数加法的处理。。
f[j][k]=f[j][k]+f[j-i][k];
for(k=0;k<100;k++)
{
if(f[j][k]>=10)
{
f[j][k+1]=f[j][k+1]+f[j][k]/10;
f[j][k]=f[j][k]%10;
}
}
}
for(k=100;k>=0;k--)--------倒着输出先找出第一个不为零的坐标。。
if(f[m][k]!=0)
{
h=k;
break;
}
for(i=k;i>=0;i--)
printf("%d",f[m][i]);
printf("\n");
}
return 0;
}
#include<string.h>
int f[1006][1006];
int main()
{
int m,n,i,j,k,h;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(f,0,sizeof(f));
f[0][0]=1;
for(i=1;i<=n;i++)
for(j=i;j<=m;j++)
{
for(k=0;k<100;k++)------------------------------大数加法的处理。。
f[j][k]=f[j][k]+f[j-i][k];
for(k=0;k<100;k++)
{
if(f[j][k]>=10)
{
f[j][k+1]=f[j][k+1]+f[j][k]/10;
f[j][k]=f[j][k]%10;
}
}
}
for(k=100;k>=0;k--)--------倒着输出先找出第一个不为零的坐标。。
if(f[m][k]!=0)
{
h=k;
break;
}
for(i=k;i>=0;i--)
printf("%d",f[m][i]);
printf("\n");
}
return 0;
}
相关文章推荐
- POJ3181 Dollar Dayz-完全背包问题-高精度(大数)处理(附测试数据)
- poj 3181 Dollar Dayz 钱币兑换问题 大数/高精度 完全背包
- poj3181(完全背包)
- 钱币兑换问题(完全背包)
- [原]hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (这个只是题目名字) (多重背包)
- POJ 3181 Dollar Dayz(完全背包+大数)
- HDU 1284 钱币兑换问题 完全背包
- POJ 3181 Dollar Dayz (完全背包 + 大数分离输出)
- hdu1284 sdut2777 钱币兑换问题(完全背包,递推,母函数)
- (经典)POJ-3181 完全背包+大数处理
- hdu 1284 钱币兑换问题(完全背包)
- 钱币兑换问题---hdu1284(完全背包)
- POJ 3181 Dollar Dayz (完全背包 + 大数分离输出)
- POJ3181-Dollar Dayz-完全背包+高精度
- POJ Dollar Dayz 美元假日(完全背包,常规+大数)
- 【完全背包/母函数】HDU1284钱币兑换问题
- POJ 3181 Dollar Dayz (完全背包 + 大数分离输出)
- dp之完全背包poj3181(高精度背包)
- HDU 1284 钱币兑换问题 完全背包求方案数
- hdu 1284 钱币兑换【完全背包问题】