首页 > 试题广场 >

头条校招

[编程题]头条校招
  • 热度指数:17799 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队,每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来,在选题之前,我们对题目进行了盲审,并定出了每道题的难度系统。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a,b,c,我们希望这3道题能满足下列条件:
a<=b<=c
b-a<=10
c-b<=10
所有出题人一共出了n道开放性题目。现在我们想把这n道题分布到若干场考试中(1场或多场,每道题都必须使用且只能用一次),然而由于上述条件的限制,可能有一些考试没法凑够3道题,因此出题人就需要多出一些适当难度的题目来让每场考试都达到要求,然而我们出题已经出得很累了,你能计算出我们最少还需要再出几道题吗?

输入描述:
输入的第一行包含一个整数n,表示目前已经出好的题目数量。
第二行给出每道题目的难度系数d1,d2,...,dn。
数据范围
对于30%的数据,1 ≤ n,di ≤ 5;
对于100%的数据,1 ≤ n ≤ 10^5,1 ≤ di ≤ 100。
在样例中,一种可行的方案是添加2个难度分别为20和50的题目,这样可以组合成两场考试:(20 20 23)和(35,40,50)。


输出描述:
输出只包括一行,即所求的答案。
示例1

输入

4  
20 35 23 40

输出

2
头像 Young226
发表于 2020-08-13 16:28:39
#include<iostream> #include<vector> #include<algorithm> //sort using namespace std; void solve(vector<int> & vec){ 展开全文
头像 Louie.Ye
发表于 2021-03-20 10:07:58
1. 分析点 先说通过样例里的代码num%3的写法,哈哈。邪教做法,但能过样例,比赛的时候可以碰碰运气,这道题真的是出题人仁慈的签到题,后台测试数据很仁慈。但正儿八经用贪心的写法还是得会的。 自己对这道题贪心的结构没理清清楚,看了卷积神经网络哦的思路,看得出来卷积神经网络哦对这道题很用心,写了点注 展开全文
头像 Bamboo2022
发表于 2022-05-02 00:35:07
排序 贪心算法 注意一下临界值 剩2题时 判断一下中间的题目难度值是否可以满足要求,如果是 则只需要额外出一题。 #include<iostream> #include<vector> #include<algorithm> using namespace st 展开全文
头像 独行侠zjq
发表于 2024-01-03 19:58:56
#include <stdio.h> #include <stdlib.h> // 比较函数,用于整数的升序排序 int compare(const void *a, const void *b) { int num1 = *(const int *)a; int nu 展开全文
头像 17c89
发表于 2023-12-23 12:59:03
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(S 展开全文
头像 张俊kkk
发表于 2021-01-31 10:49:04
排序加贪心,看了一圈评论区和题解,我这个应该是唯一正确的,评论区里举的其他楼主的解法不能pass的反例,我这个都可以pass。解法是参考@aglangyue的,但参考的解法也有bug,我这里fix了。大家放心享用! import java.io.*; import java.util.*; pub 展开全文
头像 laglangyue
发表于 2020-06-10 22:46:40
最大最小问题一般都先考虑能不能dp,但这道题不需要dp。三个数从小到大,间隔10,排序+贪心就好了,最小的三个一组,利用一个容量为queue存储数据,当now-pre<=10,就可以进队。根据queue的size判断产生结果。可以利用pre和size直接模拟queue,也可以理解为马尔科夫状态 展开全文