背包问题,,,,,
重量为1,体积为所消耗的时间。。。
不过判断条件要加上余数的比较。。。。
用数组b来存余数。
#include <cstdio>
#define N 10005
#define INF 0x7fffffff
int m, n, t, d[N], b[N];
int main ()
{
while(~scanf("%d%d%d",&m,&n,&t))
{
for(int i = 0; i <= m; i++) d[i] = 0;
for(int i = 0; i <= m; i++) b[i] = i;
for(int j = m; j <= t; j++)
{
d[j] = d[j-m]+1;
b[j] = b[j-m];
}
for(int j = n; j <= t; j++)
{
if(b[j]>b[j-n])
{
d[j] = d[j-n]+1;
b[j] = b[j-n];
}
else if(b[j]==b[j-n])
{
d[j] = (d[j]>d[j-n]+1?d[j]:d[j-n]+1);
}
}
if(b[t])
printf("%d %d\n",d[t],b[t]);
else
printf("%d\n",d[t]);
}
return 0;
}