P3860分队问题(分组dp)
来源:互联网 发布:java系统源码下载 编辑:程序博客网 时间:2024/04/29 16:56
问题描述
给定 n 个选手,将他们分成若干只队伍。其中第 i 个选手要求自己所属的队 伍的人数大等于 a[i]人。
在满足所有选手的要求的前提下,最大化队伍的总数。 注:每个选手属于且仅属于一支队伍。
输入格式
第一行一个整数 n,表示人数。 以下 n 行,每行一个整数表示 a[i]。
输出格式
输出队伍总数的最大值。数据保证有解。
题解
分组dp
f[i]=s[i-a[i]]+1;
代码
#include<stdio.h>#include<algorithm>#include<cmath>#include<cstring>#include<queue>#include<cstdio>#include<iostream>using namespace std;#define maxn 1000005#define int long longint a[maxn];int n,cnt;int tot;int f[maxn],s[maxn];main(){// freopen("team.in","r",stdin);// freopen("team.out","w",stdout); int i,j,k; scanf("%lld",&n); for(i=1;i<=n;i++) scanf("%lld",&a[i]); sort(a+1,a+n+1); i=n; for(i=1;i<=n;i++) { if(i-a[i]>=0) f[i]=s[i-a[i]]+1; s[i]=max(s[i-1],f[i]); } cout<<f[n];}
阅读全文
0 0
- P3860分队问题(分组dp)
- 【DP】【分队问题】
- NKOJ 3860 分队问题(DP+前缀和优化)
- ACM学习-分队问题
- !HDU 1500 Chopsticks-dp-(分组问题)
- 正整数分组(dp)
- !HDU 4121 搬寝室-dp-(分组问题)
- hdu 5148 树形dp+分组背包问题
- hdu 1292分组(dp)
- HDOJ-4341(分组DP)
- 高中OJ 3792. 【NOIP2014模拟8.20】分队问题
- !HDU 4293 排队分组说谎问题-dp-(不相交区间的最大个数)
- hdu3033(分组背包二次dp处理)
- 分组背包+树形DP(BY LPX)
- HDU 4003 (树形DP + 分组背包)
- uva 10271 筷子(分组dp)
- POJ 1947 树形DP(分组背包)
- 51nod-正整数分组问题(基础方程DP-01背包)
- 三维动态与交通运输的科学计算问题
- 搜索有关的好题和思路
- Codeforces 106C Buns
- hdu 1827 Summer Holiday(强连通分量+缩点)
- Codevs 1995 黑魔法师之门
- P3860分队问题(分组dp)
- centos下mysql添加用户,操作数据库,导入sql文件
- docker介绍 架构 安装
- 5分钟学会Xstream解析XML文件
- python3爬虫爬取网页图片简单示例
- csdn_test
- 阮兄弟的致远OAa8v5移动端增加功能和OEM实例
- 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
- 怎么在CentOs上安装JDK?