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

BZOJ 4300 绝世好题

时间:2016-01-11 21:43:21      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

直接dp即可。

按位进行dp。具体看代码。

 

技术分享
 1 #include <cstdio>
 2 #include <algorithm>
 3 
 4 using namespace std;
 5 
 6 void Get_Val(unsigned int &Ret)
 7 {
 8     Ret = 0;
 9     char ch;
10     while ((ch = getchar()), (ch > 9 || ch < 0))
11         ;
12     do
13     {
14         (Ret *= 10) += ch - 0;
15     }
16     while ((ch = getchar()), (ch >= 0 && ch <= 9));
17 }
18 
19 unsigned int N;
20 unsigned int V, Temp;
21 unsigned int F[33];
22 
23 unsigned int Ans;
24 
25 int main()
26 {
27     Get_Val(N);
28     while (N--)
29     {
30         Get_Val(V);
31         Temp = 0;
32         for (unsigned int i = 0;(1 << i) <= V;++i)
33             if (V & (1 << i))
34                 Temp = max(Temp, F[i]);
35         for (unsigned int i = 0;(1 << i) <= V;++i)
36             if (V & (1 << i))
37                 F[i] = max(F[i], Temp + 1);
38     }
39     for (unsigned int i = 0;i <= 32;++i)
40         Ans = max(Ans, F[i]);
41     printf("%u", Ans);
42     return 0;
43 }
BZOJ 4300

 

【QAQ下周一开始期末考试,马上要滚粗去搞文化课了】

BZOJ 4300 绝世好题

标签:

原文地址:http://www.cnblogs.com/Created-equal/p/5122351.html

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