BZOJ_1334_[Baltic2008]Elect_DP+语文题

BZOJ_1334_[Baltic2008]Elect_DP

Description

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

总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党退出后,其它党的席位仍大于总

数的一半,则这个政党被称为是多余的,这是不允许的.

Input

第一行给出有多少个政党.其值小于等于300

下面给出每个政党的席位数.总席位数小于等于 100000

Output

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

Sample Input

4
1 3 2 4

Sample Output

7
//选择第二个政党和第四个


分析:

从大到小排序,01背包,状态从[1,sum/2]中转移。保证当去掉当前政党后剩下的都不会超过总数的一半。

代码:

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 100050
int a[350],f[N],n,sum,ans;
bool cmp(int x,int y){return x>y; }
int main() {
	scanf("%d",&n);
	int i,j;
	for(i=1;i<=n;++i) scanf("%d",&a[i]),sum+=a[i];
	sort(a+1,a+n+1,cmp);
	f[0]=1;
	for(i=1;i<=n;i++) {
		for(j=sum/2+a[i];j>=a[i];j--) {
			if(f[j-a[i]]) {
				f[j]=1;
				ans=max(ans,j);
			}
		}
	}
	printf("%d",ans);
}

原文地址:https://www.cnblogs.com/suika/p/8678239.html

时间: 2024-11-08 23:45:52

BZOJ_1334_[Baltic2008]Elect_DP+语文题的相关文章

【Luogu】P3709大爷的字符串题(莫队算法)

题目链接 语文题啊…… 看题解发现是让求区间中最多的数的个数,于是果断理解了一会题解……莫队套上完事. sum[i]表示i这个数出现的次数,cnt[i]表示出现i次的数有几个,然后乱搞搞……就好了 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #include<cctype> #include<cmath> #define maxn 3

[P3709] 大爷的字符串题

Link: P3709 传送门 Solution: lxl出的语文题 其实转化一下就是求将当前区间最少拆分成多少个严格单调上升序列(可不连续) 再转化一下就是求区间内的众数个数 本来求众数的套路是主席树+二分 但此题不要求在线,用莫队同时维护$i$的出现次数$cnt[i]$和出现次数为$i$的数的个数$sum[i]$ 这样常规套路更新结果就好了 Code: #include <bits/stdc++.h> using namespace std; const int MAXN=5e5+10;

Luogu P2375 动物园 kmp

P2375 动物园 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法. 某天,园长给动物们讲解KMP算法. 园长:“对于一个字符串S,它的长度为L.我们可以在O(L)的时间内,求出一个名为next的数组.有谁预习了next数组的含义吗?” 熊猫:“对于字符串S的前i个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除外),最长的长度记作next[

51Nod 算法马拉松21(迎新年)

这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过读后面的题. B完全二叉树的方差,大概看了一遍,好神的样子,跳过. C多项式?好吧没学过FFT和NTT的我肯定不会,跳跳跳. D最大值,哎呦这函数什么破玩意儿,看不懂,跳跳跳. E B君的射击,卧槽毕克大人您出题就算了出这么一道码农题是要闹那样,跳跳跳. F那些年,我们一起讲的故事,卧槽这特么简直就

一路风景---我期待的师生关系

题目源于我中学时代的一本作文选集,这本书里有我很多的第一次,第一次看文章到哭泣,第一次发自内心的想读书,第一次觉得自己于那些经过丰富生活的人来说有些孤陋......我心中一直期待一位让我发自内心想读书,让我敢于突破自己 挑战第一次的老师,我心中期待的师生关系也是这样,不仅仅是老师与学生的关系,更是导师与朋友的关系,是我走过所有路中,少不了的风景. 你觉得自己专业吗?对专业的期望是什么? 说起专业,大学到现在已经念了一年半,可以说我对自己所学专业涉猎尚浅,一点也不专业.但经过这一年半的大学生活,我

OSChina 周六乱弹 —— 这个版本的小红帽听说过吗?

想想当年刚出来工作的时候,小小编还真是单纯,以为广阔天地大有作为,可是呢... @上热门:刚出来工作的时候,大人千叮万嘱社会很复杂,要学会控制自己,不能做的事千万不要去做.社会上充满了陷井和诱惑,遇到漂亮的女人得注意点,小心点,别被骗了! 现在出来工作都几年了,我只想问一句:当初说好的诱惑呢? 小小编想说,就让"诱惑"玩命地腐化我吧~ 仔细想想,我所有完美的未来蓝图,皆是建立在"等我有钱了"的基础上...via:我的大几把岁了 人穷则志短,说的就是我. 还好穷的不止

Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]

一部分题解,算是自己SB了 上午的TC 也是这样 写好了代码,却一直没注意细节,然后以为错了. 此处省100字,ps 貌似紫了,作为一个老菜鸡,终于紫了 A,B 都是语文题 C: 给以一个三角形一样的图,判断点(a,b)是否在图中,我是这样判断的: 前一半是k*2*x+b=a;求最小的x,这里二分,但是注意k=0,所以你特判掉: 后一半是:2*(k+1)=a+b;二分类似 D:坐等官方题解,不靠谱系列:我试了很多方法: 做法:只可能是一个数*x^k: 之前以为是最大数*x^k ,但是错的 想想:

CTSC2016&amp;&amp;APIO2016爆零记

CTSC2016&&APIO2016爆零记 前言:人生第一次写(骗)爆(访)零(问)记(量),心里还是有点小激动呢.不过由于本文作者语文水平低下,如果发现用词不当或只会记流水账,请谅解. CTSC Day0: CCF大发慈悲让我们入住了5星级酒店昆(百)泰酒店. 不过也有一点不兹磁的地方,就是酒店离学校大概要步行半个小时,对于我这种懒人大概是天大的灾难吧(雾).于是这次比赛就强行变成了CTSC&&APIO远足营. 第一次看见70块钱一瓶零下八度不结冰的矿泉水,然而家穷喝不起

【BZOJ1408】[Noi2002]Robot DP+数学

[BZOJ1408][Noi2002]Robot Description Input Output Sample Input 3 2 1 3 2 5 1 Sample Output 8 6 75 HINT 90号机器人有10个老师,加上它自己共11个.其中政客只有15号:军人有3号和5号:学者有8个,它们的编号分别是:2,6,9,10,18,30,45,90. 题解:语文题,就是问你n的约数中μ(d)=0,1,-1时,φ(d)的和,其中令μ(1)=0,φ(2)=0 直接DP,令f[i][0/1]