您的位置:首页 > 理论基础 > 计算机网络

hdu 1085 http://acm.hdu.edu.cn/showproblem.php?pid=1085

2012-11-07 09:13 330 查看
#include<stdio.h>
#include<string.h>
#define max  8010
int c1[max],c2[max];//c1和c2的坐标代表指数的大小 c1与c2里面存的是该指数的系数。
int main()//c1存的是前一个多项式的属性 c2存的是后一个多项式的属性 需要不断更新 模拟多项式的乘法运算。
{
int num[4];
int sumNum;
int test[4]= {1,2,5};
while(scanf("%d%d%d",&num[0],&num[1],&num[2])!=EOF)
{
if(num[0]==0&&num[1]==0&&num[2]==0)
break;
memset(c1,0,sizeof(c1));
memset(c2,0,sizeof(c2));
sumNum=test[0]*num[0];
for(int i=0; i<=sumNum; i++)
{
c1[i]=1;
c2[i]=0;
}
for(int i=1; i<3; i++)
{
sumNum+=test[i]*num[i];
for(int j=0; j<=sumNum; j++)
{
for(int k=0; k+j<=sumNum; k+=test[i])
{
c2[k+j]+=c1[j];
}
}
for(int i=0; i<=sumNum; i++)
{
c1[i]=c2[i];
c2[i]=0;
}
}
int pox;
//for(pox=1;pox<=20;pox++)
//printf("%d\n",c1[pox]);
for(pox=1; pox<=max; pox++)
if(c1[pox]==0)
break;
printf("%d\n",pox);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: