1334: [Baltic2008]Elect

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 386  Solved: 201
[Submit][Status]

Description

N个政党要组成一个联合内阁,每个党都有自己的席位数.
现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好.
对于一个联合内阁,如果某个政党退出后,其它党的席位仍大于总数的一半,则这个政党被称为是多余的,这是不允许的.

Input

第一行给出有多少个政党.其值小于等于300
下面给出每个政党的席位数.总席位数小于等于 100000

Output

你的组阁方案中最多能占多少个席位.

Sample Input

4
1 3 2 4

Sample Output

7
题解:
我们可以这样想,如果选出来的席位最小的都满足去掉之后人数不足一半,那么这个取法就是合法的。
那我们就从大往小做背包。顺便更新ans
代码:

  1. #include<cstdio>
  2.  
  3. #include<cstdlib>
  4.  
  5. #include<cmath>
  6.  
  7. #include<cstring>
  8.  
  9. #include<algorithm>
  10.  
  11. #include<iostream>
  12.  
  13. #include<vector>
  14.  
  15. #include<map>
  16.  
  17. #include<set>
  18.  
  19. #include<queue>
  20.  
  21. #include<string>
  22.  
  23. #define inf 1000000000
  24.  
  25. #define maxn 100000+5
  26.  
  27. #define maxm 20000000+5
  28.  
  29. #define eps 1e-10
  30.  
  31. #define ll long long
  32.  
  33. #define pa pair<int,int>
  34.  
  35. #define for0(i,n) for(int i=0;i<=(n);i++)
  36.  
  37. #define for1(i,n) for(int i=1;i<=(n);i++)
  38.  
  39. #define for2(i,x,y) for(int i=(x);i<=(y);i++)
  40.  
  41. #define for3(i,x,y) for(int i=(x);i>=(y);i--)
  42.  
  43. #define mod 1000000007
  44.  
  45. using namespace std;
  46.  
  47. inline int read()
  48.  
  49. {
  50.  
  51. int x=,f=;char ch=getchar();
  52.  
  53. while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
  54.  
  55. while(ch>=''&&ch<=''){x=*x+ch-'';ch=getchar();}
  56.  
  57. return x*f;
  58.  
  59. }
  60. int n,m,a[maxn];
  61. bool f[maxn];
  62.  
  63. int main()
  64.  
  65. {
  66.  
  67. freopen("input.txt","r",stdin);
  68.  
  69. freopen("output.txt","w",stdout);
  70.  
  71. n=read();
  72. for1(i,n)a[i]=read(),m+=a[i];
  73. sort(a+,a+n+);
  74. f[]=;int ans=;
  75. for3(i,n,)
  76. for3(j,m-a[i],)
  77. if(f[j])
  78. {
  79. f[j+a[i]]=;
  80. if(j<=m/&&j+a[i]>m/)ans=max(ans,j+a[i]);
  81. }
  82. printf("%d\n",ans);
  83.  
  84. return ;
  85.  
  86. }

BZOJ1334: [Baltic2008]Elect的更多相关文章

  1. 【贪心+背包】BZOJ1334 [Baltic2008]Elect

    Description 从N个数中选出任意个数且和尽量大,但要满足去掉任意一个和就小于总和的一半.n<=300, ai<=1e5. Solution 这个条件其实就是 去掉选出的最小的一个 ...

  2. BZOJ1334:[Baltic2008]Elect(背包DP)

    Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党 ...

  3. 【bzoj1334】[Baltic2008]Elect 背包dp

    题目描述 N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党退出后,其它党 ...

  4. bzoj 1334: [Baltic2008]Elect

    Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党 ...

  5. 1334: [Baltic2008]Elect

    Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党 ...

  6. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  7. [BZOJ1163][BZOJ1339][Baltic2008]Mafia

    [BZOJ1163][BZOJ1339][Baltic2008]Mafia 试题描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用 ...

  8. 1339 / 1163: [Baltic2008]Mafia

    1163: [Baltic2008]Mafia Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 96  Solved: 60[Submit][Statu ...

  9. BZOJ_1334_[Baltic2008]Elect_DP+语文题

    BZOJ_1334_[Baltic2008]Elect_DP Description N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于 总数的一半 ...

随机推荐

  1. Sql 解释

    SQL(Structured Query Language) 结构化查询语言,虽然是查询语言,也是一种编程语言,但是执行查询操作. 根据数据的操作对象,可以将SQL语句分为几类. DDL(Data D ...

  2. CodeForces 527B

    Description Ford Prefect got a job as a web developer for a small company that makes towels. His cur ...

  3. (poj)1502 MPI Maelstrom

    题目链接:http://poj.org/problem?id=1502 Description BIT has recently taken delivery of their processor A ...

  4. leetcode problem 41 -- First Missing Positive

    Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0]  ...

  5. Python 列表实现字典的get功能

    字典有一个很好用的方法,就是get,既可以预防KeyError异常,也可以为不存在的key设置一个默认的value 例如: v=d.get('k','default') 而列表没有一个类似的方法,如果 ...

  6. 自己写的Python数据库连接类和sql语句拼接方法

    这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...

  7. ServiceController组件控制计算机服务

    private void Form1_Load(object sender, EventArgs e) { //下面的示例使用 ServiceController 类检查IIS服务是否已停止.如果该服 ...

  8. JNA—JNI终结者

    JNA—JNI终结者 介绍 给大家介绍一个最新的访问本机代码的Java框架—JNA. JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的J ...

  9. 简单的网页布局效果html5+CSS3

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Html中如何让超链接a、图片img居中

    一.问题来源 修改博客页面时,突然想到 二.解决办法 2.1原来办法 在img和a中加入align="center",发现不行 2.2百度答案 <div align=&quo ...