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

BZOJ1334 [Baltic2008]Elect

时间:2014-12-16 22:35:26      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   io   color   os   sp   for   

直接DP一下就好了嘛、、、

首先对人数从大到小排序,然后f[i]表示的是人数为i的政党联盟能否成立

f[i] 由 f[i - a[now]]转移过来,同时保证i - a[now] <= sum即可

 

bubuko.com,布布扣
 1 /**************************************************************
 2     Problem: 1334
 3     User: rausen
 4     Language: C++
 5     Result: Accepted
 6     Time:156 ms
 7     Memory:1196 kb
 8 ****************************************************************/
 9  
10 #include <cstdio>
11 #include <algorithm>
12  
13 using namespace std;
14  
15 int n, sum, ans;
16 int a[305];
17 int f[100005];
18  
19 int main() {
20     int i, j;
21     scanf("%d", &n);
22     for (i = 1; i <= n; ++i)
23         scanf("%d", a + i), sum += a[i];
24     sort(a + 1, a + n + 1);
25     f[0] = 1;
26     for (i = n; i; --i)
27         for (j = sum / 2 + a[i]; j >= a[i]; --j)
28             if (f[j - a[i]])
29                 f[j] = 1, ans = max(j, ans);
30     printf("%d\n", ans);
31     return 0;
32 }
View Code

 

BZOJ1334 [Baltic2008]Elect

标签:style   blog   http   ar   io   color   os   sp   for   

原文地址:http://www.cnblogs.com/rausen/p/4168196.html

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