P2062 分队问题(DP)】的更多相关文章

题意 题目链接 给定n个选手,将他们分成若干只队伍.其中第i个选手要求自己所属的队伍的人数大等于a[i]人. 在满足所有选手的要求的前提下,最大化队伍的总数. 注:每个选手属于且仅属于一支队伍. Sol 直接dp,$f[i]$表示到第$i$个人最多分成几组 很显然,一定是从上一个能放的位置转移而来 // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<cstdio> #include<algorithm> #def…
题目描述 给定n个选手,将他们分成若干只队伍.其中第i个选手要求自己所属的队伍的人数大等于a[i]人. 在满足所有选手的要求的前提下,最大化队伍的总数. 注:每个选手属于且仅属于一支队伍. 输入输出格式 输入格式: 第一行一个整数n,表示人数. 以下n行,每行一个整数表示a[i]. 输出格式: 输出队伍总数的最大值.数据保证有解. 输入输出样例 输入样例#1: 复制 5 2 1 2 2 3 输出样例#1: 复制 2 题意:中文题就不说了 题解:刚开始我想的是贪心,先让序列从小到大排序,因为至少要…
题目描述 给定n个选手,将他们分成若干只队伍.其中第i个选手要求自己所属的队伍的人数大等于a[i]人. 在满足所有选手的要求的前提下,最大化队伍的总数. 注:每个选手属于且仅属于一支队伍. 输入输出格式 输入格式: 第一行一个整数n,表示人数. 以下n行,每行一个整数表示a[i]. 输出格式: 输出队伍总数的最大值.数据保证有解. 输入输出样例 输入样例#1: 复制 5 2 1 2 2 3 输出样例#1: 复制 2分析:(贪心) 贪心的思想就是尽量将要求大的人放在一起.所以我们要先排个序,从大到…
这题太毒了....一开始就是死活想不到,结果看了很多遍题解,重新做的时候还是做不出来.. 好像有一点被错误的题解误导了? #include<cstdio> #include<algorithm> using namespace std; ],f[],g[]; //f[i]表示前i个人分组合法的组数最大值 //f[i]=max{f[j]}(0<=j<=i-a[i])+1 //g[i]=max{g[j]}(0<=j<=i) int main() { int i;…
  这是一道普及/提高- 然后你懂的,贪心扫一遍就可以了. 不懂提交人数那么少. //Serene #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> using namespace std; const int maxn=1e6+10; int n,a[maxn],tot…
貌似开坑还挺好玩的...开一个来玩玩=v=... 正好自己dp不是很熟悉,就开个坑来练练吧...先练个50题?小目标... 好像有点多啊QAQ 既然是开坑,之前写的都不要了! 50/50 1.洛谷P3399 丝绸之路 简单的线性dp 点我看题 因为是开坑所以题意就不讲了,自己看题吧,一些题意比较迷的会讲一下. 这题其实还挺简单的. 设 f[i,j] 表示到第 i 个城市用了 j 天所需要的最小疲劳值. 很快dp方程就出来了.  f[i,j]=min(f[i,j-1],f[i-1,j-1]+d[i…
题意 链接:https://ac.nowcoder.com/acm/contest/2995/D来源:牛客网 卡特莉接到来自某程序设计竞赛集训队的邀请,来为他们进行分队规划. 现在集训队共有n名选手,选手们的实力可以用一个整数来表示. 当若干个选手被分到了一队,队内会因为实力的不平衡而产生矛盾. 具体的来说,我们用矛盾因数来量化矛盾的大小,一个队的矛盾因数为队内成员实力的最大值减去最小值. 现在我们需要将n名选手恰好分为n/k向下取整队,并且每个队最少有k个人. 请你帮卡特莉回答一下他们分出的队…
Description     众所周知,fang G 有很多小伙伴,有一天,Fang G 打算带他们去玩有趣的游戏OOXX,这个游戏需要分成两组,有趣的是,每个人互相之间都有一个满意度,大家都想和自己看重的人(excuse me???)一组,却又不希望和另一组拉开差距.     Fang G 发现,每个队伍能发挥出的能力值和这个队伍之间满意值是相等的,而一个队伍之间满意值定义为每一个人对于这个队伍所有人(注意是所有人哦!!!)满意度总和的总和,而一个人对另外一个人的满意度和他们的名字是有关的,…
题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的.另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的. THU ACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然后一号队伍到一号窗口去排队打饭,二号队伍到二号窗口去排队打饭.每个人打完饭后立刻开始吃,所有人都…
顺便开另外一篇放一些学过的各种dp dp总结:https://www.cnblogs.com/henry-1202/p/9194066.html 开坑先放15道题,后面慢慢补 目标50道题啦~~,目前50/50 1.合唱队形 题目链接 LIS模板题,这道题只要正着求一遍LIS,倒着求一遍LIS,然后求max即可,注意因为求了两次LIS,一定会有一个人是被计算了两次的,所以在求max的时候要记得-1 使用O(n2)做法即可 #include <cstdio> #include <cstri…