9.7 顺丰笔试 AC代码

第一题,求递归次数,动态规划,dp[i] = dp[i-1] + dp[i-2]  + dp[i-3] +1,初始状态dp[1],dp[2],dp[3]都为1,注意越界,每次对1e9+7取余。

第二题,构造试卷,贪心算法,将数组排序,取最大的m个用来作为构成试卷,其他的题用来给不够的题“替补”,让构成试卷的m个数的最小值尽可能的大,最终的结果就是m个数的最小值。
#include<bits/stdc++.h>
using namespace std;

int main() {
  int n, m;
  cin>>n>>m;
  vector<int> nums(n);
  for(int i = 0; i < n; ++i) {
    cin>>nums[i];
  }
  sort(nums.begin(), nums.end());
  long long cur = 0;
  for(int i = 0; i < (n-m); ++i) {
    cur += nums[i];
  }
  int start = n-m;
  int j;
  for(j = start; j < n-1; ++j) {
    if( (long long)(nums[j+1] - nums[j])*(j - start + 1) <= cur) {
      cur -= (long long)(nums[j+1] - nums[j])*(j - start + 1);
    }
    else {
      break;
    }
  }
  if(j < n-1) {
    cout<<nums[j] + (cur)/(j-start+1) <<endl;
  }
  else {
    cout<<nums[j] + (cur)/m <<endl;
  }
  return 0;
}


全部评论
替补是如何保证替补的题目能过落在不同卷子上呢
点赞 回复 分享
发布于 2022-09-07 21:47 河南
请问大佬第一题怎么注意越界吗,我也是动规写的,只通过了73%
点赞 回复 分享
发布于 2022-09-07 21:55 江苏
二题怎么改都是82 改了半个多小时没改出来 心态崩了 直接提前交了..
点赞 回复 分享
发布于 2022-09-07 22:06 四川
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-08 09:24 北京

相关推荐

评论
7
9
分享

创作者周榜

更多
牛客网
牛客企业服务