P2347 砝码称重
2017-06-22 21:23
309 查看
题目描述
设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),输入输出格式
输入格式:输入方式:a1 a2 a3 a4 a5 a6
(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)
输出格式:
输出方式:Total=N
(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)
输入输出样例
输入样例#1:1 1 0 0 0 0
输出样例#1:
Total=3 应该是01背包问题, 但是暴力居然过了!
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; void read(int & n) { char c='+';int x=0;int flag=0; while(c<'0'||c>'9') { c=getchar(); if(c=='-') flag=1; } while(c>='0'&&c<='9') x=x*10+(c-48),c=getchar(); flag==1?n=-x:n=x; } const int MAXN=100001; int maxt,n; int dp[MAXN]; int a[10]; int num=0; int ans=0; int vis[1000001]; int main() { for(int i=1;i<=6;i++) { read(a[i]); } for(int i1=0;i1<=a[1];i1++) for(int i2=0;i2<=a[2];i2++) for(int i3=0;i3<=a[3];i3++) for(int i4=0;i4<=a[4];i4++) for(int i5=0;i5<=a[5];i5++) for(int i6=0;i6<=a[6];i6++) { int p=i1+2*i2+3*i3+5*i4+10*i5+20*i6; if(vis[p]==0&&p!=0) { vis[p]=1; ans++; } } printf("Total=%d",ans); return 0; }
相关文章推荐
- 洛谷——P2347 砝码称重
- 洛谷Oj-P2347 砝码称重-Bitset/多重背包
- 洛谷P2347 砝码称重 [2017年4月计划 动态规划01]
- AC日记——砝码称重 洛谷 P2347
- (ssl1072、ssl1273、ssl1274)P2347 砝码称重
- P2347 砝码称重
- 使用天平称重,经验证,用四个砝码可以秤出1~40的全部整数重量,请问是哪四个砝码?
- 51nod-1837-砝码称重
- 51nod1449 砝码称重
- 动态规划——砝码称重 收藏
- 砝码称重与大小交换问题
- 【codevs2144】砝码称重2,哈希什么的都去死吧
- 51NOD 1449——砝码称重(贪心算法)
- 砝码称重问题二
- 51nod 1449 砝码称重(贪心算法)
- 51nod 1449 砝码称重(经典贪心+进制)
- 砝码称重问题
- 使用天平称重,经验证,用四个砝码可以秤出1~40的全部整数重量,请问是哪四个砝码?
- 【u204】高级砝码称重
- P1441 砝码称重