noip 1996 C语言对重量称量问题的详细解释比枚举法更快。

# include & ltiostream & gt

使用命名空间std

int i,a1,a2,a3,a5,a10,a20,b1,b2,b3,b5,b10,b20,h = 0;

bool b[1001];

int main()

{

CIN & gt;& gta 1 & gt;& gta2 & gt& gta3 & gt& gta5 & gt& gta 10 & gt;& gta20

for(I = 0;我& lt1001;++ I)b[I]= false;

for(b 1 = 0;b 1 & lt;= a 1;++b1)

for(B2 = 0;b2 & lt= a2++b2)

for(B3 = 0;b3 & lt= a3++b3)

for(b5 = 0;b5 & lt= a5++b5)

for(b 10 = 0;b 10 & lt;= a 10;++b10)

for(b20 = 0;b20 & lt= a20++b20)

b[b 1+B2 * 2+B3 * 3+b5 * 5+b 10 * 10+b20 * 20]= true;

for(I = 1;我& lt1001;++ I)if(b[I]= = true)++ h;

cout & lt& lth;

返回0;

}