码迷,mamicode.com
首页 > 其他好文 > 详细

[华为oj]称砝码

时间:2015-09-01 16:55:54      阅读:1045      评论:0      收藏:0      [点我收藏+]

标签:

算法本身效率很低,但感觉比较简洁,所以自己记录了下。华为的测试用例才一个,通过是通过了,但觉得根本没法检查这段程序的正确性,个人觉得逻辑上没错。

 1 #include <iostream>
 2 #include <set>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 int fama(int n,int* weight,int* nums)
 8 {
 9     set<int> setInt;
10     setInt.insert(0);
11     for(int i=0;i<n;i++)
12     {
13         int w=weight[i];
14         set<int> setTemp;
15         set<int>::iterator bitr=setInt.begin();
16         set<int>::iterator eitr=setInt.end();
17         for(set<int>::iterator p=bitr;p!=eitr;p++)
18         {
19             int wt=*p;
20             for(int  count=0;count<=nums[i];count++)
21             {
22                 int twt=wt+w*count;
23                 setTemp.insert(twt);
24             }
25         }
26         setInt.insert(setTemp.begin(),setTemp.end());
27     }
28     return static_cast<int>(setInt.size());
29 }
30 
31 int main()
32 {
33     int* weight;
34     int* nums;
35     int n;
36     cin>>n;
37 
38     weight=new int[n];
39     nums=new int[n];
40 
41     for(int i=0;i<n;i++)
42         cin>>weight[i];
43 
44     for(int i=0;i<n;i++)
45         cin>>nums[i];
46 
47     cout<<fama(n,weight,nums)<<endl;
48 
49 }

 

[华为oj]称砝码

标签:

原文地址:http://www.cnblogs.com/lsr-flying/p/4775839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!