superman

聚精会神搞建设 一心一意谋发展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ZOJ 1558 - Euro Efficiency

Posted on 2008-03-16 15:23 superman 阅读(911) 评论(3)  编辑 收藏 引用 所属分类: ZOJ
 1 /* Accepted 1558 C++ 00:00.01 904K */
 2 #include <limits.h>
 3 #include <string.h>
 4 #include <iostream>
 5 
 6 using namespace std;
 7 
 8 int N, x[10], opt[2008];
 9 
10 int search(int n)
11 {
12     if(n == 0return 0;
13     if(opt[n]) return opt[n];
14     
15     opt[n] = INT_MAX;
16     for(int i = 1; i <= 6; i++)
17         if(n - x[i] >= 0)
18             opt[n] <?= search(n - x[i]) + 1;
19     for(int i = 1; i <= 6; i++)
20         if(n + x[i] <= 2000)
21             opt[n] <?= search(n + x[i]) + 1;
22     return opt[n];
23 }
24 
25 int main()
26 {
27     cout.setf(ios_base::showpoint);
28     cout.setf(ios_base::fixed);
29     cout.precision(2);
30     
31     cin >> N;
32     while(N--)
33     {
34         memset(x, 0sizeof(x));
35         memset(opt, 0sizeof(opt));
36         
37         for(int i = 1; i <= 6; i++)
38             cin >> x[i];
39         
40         int sum = 0, max = 0;
41         for(int i = 1; i <= 100; i++)
42         {
43             sum += search(i);
44             max >?= search(i);
45         }
46         
47         cout << double(sum) / 100 << ' ' << max << endl;
48     }
49     
50     return 0;
51 }
52 

Feedback

# re: ZOJ 1558 - Euro Efficiency  回复  更多评论   

2008-08-01 16:28 by 44
能解释一下,为什么要算到2000吗?

# re: ZOJ 1558 - Euro Efficiency[未登录]  回复  更多评论   

2010-05-21 19:52 by fire
为啥网上的代码都是做过手脚的。。。有意思吗?

# re: ZOJ 1558 - Euro Efficiency  回复  更多评论   

2011-02-11 15:14 by st8676746
@fire
哪里动手脚了?
楼主的写法完全正确啊~~

不要忘了可以先支付超过100,再找回钱~从而获得100以内的面额~~

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理