BZOJ 2386: [Ceoi2011]Team
手撸了几波小数据
容易发现最优解之一是所有人都按a[i]排序后再一段一段分开
如果不是这样的话,总会可以通过一些交换使之变成有序的
考虑dp,排序后f[i]=max{f[i-k]+1},k<=a[i],如果用两重循环的话时间貌似接受不了,用一个辅助数组g[]保存一下到当前位置的最大答案
#include<cstdio>
#include<algorithm>
#define N 1000005
using namespace std;int read()
{int a=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){a=a*10+c-'0';c=getchar();}return a*f;
}int n;
int a[N],f[N],g[N];int main(void)
{n=read();for(int i=1;i<=n;++i) a[i]=read();sort(a+1,a+n+1);f[0]=g[0]=0;for(int i=1;i<=n;++i){if(i>=a[i]) f[i]=g[i-a[i]]+1;g[i]=max(f[i],g[i-1]);}printf("%d",f[n]);return 0;
}
BZOJ 2386: [Ceoi2011]Team相关推荐
- bzoj2386 [CEOI2011] Team
题意 给你n个数,每个数的大小在1到n之间,要求把它们分成几组,每个数字的大小要小于等于它所在组中的数字总个数,问最多能分出多少组. 分析 首先把所有数字排序,比较显然的是最后一定存在一个最优解是按这 ...
- BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...
- S-T平面图中利用最短路求最小割(BZOJ 1001)
BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...
- Visual Studio 2005 Team System下载地址
注册一个msn就可以去微软下载了,关于替换序列号变成正版的方法我没有试,team suite 我在用,但Team Foundation Server 我还没有安装好 Microsoft Visual ...
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...
- BZOJ 2957楼房重建
传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include< ...
- 【BZOJ 4016】[FJOI2014]最短路径树问题
! 卡时过了 为什么我的这么慢?姿势不对??? -->谢 ws_fqk 我的Do(num[i])应该用 DO(root) 找了半天的root居然没有用.... define的教训永远忘不了了!! ...
- BZOJ 3573 米特运输
Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星上有N个城市,我们将其顺序编号为1到N, ...
- 高级网络配置《 bond team桥接 》的建立
bond 资料详情 一.链路聚合:以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效 ...
最新文章
- CentOS中安装的Gitlab忘记管理员密码怎样重置密码
- BCGControlBar使用(九)
- 网站如何接入第三方登录,微信登录和QQ登录:注册认证篇
- PhpStorm调用浏览器运行php文件
- C++字符串操作总结
- 实现算法2.15、2.16的程序(一个数组只生成一个静态链表)
- HttpClient 使用指南 - POST篇
- Graphpad prism 更改图表形状和尺寸教程
- 跨平台数据库ODB实战1-ODB安装
- java怎么求最大值和最小值,java求最大值和最小值
- ntp子母钟(gps子母钟系统)时钟系统在智能交通系统中的重要性
- Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)
- 异常检测方法梳理,看这篇就够了!
- 新手入门AI (Adobe Illustrator)软件工具详解(一)
- 如何查看手机上chrome浏览器的console日志打印
- Qt - 从零到壹的 打地鼠 游戏
- 毕业生在腾讯、百度、字节跳动就业人数全国高校第一!北京邮电大学2021届毕业生就业质量报告...
- JavaScript交互式网页设计 • 【第5章 JavaScript对象】
- Liblinear的使用
- 蚂蚁 Service Mesh 大规模落地实践与展望