P2347 砝码称重
2018-06-17 22:22:24来源:未知 阅读 ()
题目描述
设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),
输入输出格式
输入格式:输入方式:a1 a2 a3 a4 a5 a6
(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)
输出格式:输出方式:Total=N
(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)
输入输出样例
1 1 0 0 0 0
Total=3
应该是01背包问题,
但是暴力居然过了!
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 void read(int & n) 7 { 8 char c='+';int x=0;int flag=0; 9 while(c<'0'||c>'9') 10 { 11 c=getchar(); 12 if(c=='-') 13 flag=1; 14 } 15 while(c>='0'&&c<='9') 16 x=x*10+(c-48),c=getchar(); 17 flag==1?n=-x:n=x; 18 } 19 const int MAXN=100001; 20 int maxt,n; 21 int dp[MAXN]; 22 int a[10]; 23 int num=0; 24 int ans=0; 25 int vis[1000001]; 26 int main() 27 { 28 for(int i=1;i<=6;i++) 29 { 30 read(a[i]); 31 } 32 for(int i1=0;i1<=a[1];i1++) 33 for(int i2=0;i2<=a[2];i2++) 34 for(int i3=0;i3<=a[3];i3++) 35 for(int i4=0;i4<=a[4];i4++) 36 for(int i5=0;i5<=a[5];i5++) 37 for(int i6=0;i6<=a[6];i6++) 38 { 39 int p=i1+2*i2+3*i3+5*i4+10*i5+20*i6; 40 if(vis[p]==0&&p!=0) 41 { 42 vis[p]=1; 43 ans++; 44 } 45 } 46 printf("Total=%d",ans); 47 return 0; 48 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 洛谷P2347 砝码称重 2018-09-18
- [小项目]行李箱(蓝牙解锁、称重) 2018-06-18
- 2144 砝码称重 2 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash