您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页P2347(NOIP1996 提高组)砝码称重 题解

P2347(NOIP1996 提高组)砝码称重 题解

来源:百家汽车网

题解

Step—1 命名

Step—2 暴搜

for(int i=1;i<=6;i++)
	for(int j=1;j<=a[i];j++)
		for(int x=1000;x>=0;x--)
		    if(k[x])
				k[x+f[i]]=1;
```cpp
## Step---3 统计个数
每遇到一个`k[i]=0`均`ans++`;
```cpp
for(int i=1;i<=1000;i++)
	if(k[i])
		ans++;
```cpp
# Code:
```cpp
#include<bits/stdc++.h>
using namespace std;
int a[7],f[7]={0,1,2,3,5,10,20};
bool k[1001];
int ans=0;
int main()
{
	for(int i=1;i<=6;i++)
		cin>>a[i];
	k[0]=1;
	for(int i=1;i<=6;i++)
		for(int j=1;j<=a[i];j++)
			for(int x=1000;x>=0;x--)
			    if(k[x])
					k[x+f[i]]=1;
	for(int i=1;i<=1000;i++)
		if(k[i])
			ans++;
	cout<<"Total="<<ans;
	return 0;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务