阿里巴巴8-5日笔试

太难了 没有AC的  有大佬要论一下思路么     第一题是dp么

第一题:扑克牌
int main() {
  while (scanf("%d %d", &n, &m) != EOF) {
    cl(dp, 0);
    dp[0][0] = 1;
    for (int i = 1; i <= n; i++) {
      for (int j = 0; j <= m; j++) {
        for (int num = 0; num <= min(4, j); num++) {
          dp[i][j] = (dp[i][j] + dp[i - 1][j - num]) % mod;
        }
      }
    }
    printf("%lld\n", dp[n][m]);
  }
  return 0;
}

第二题
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
  for (int i = 1; i <= n; i++) ma[b[i]] = i;
  for (int i = 1; i <= n; i++) a[i] = ma[a[i]];
  l[n] = n;
  for (int i = n - 1; i >= 1; i--) {
    if (a[i] > a[i + 1])
      l[i] = i;
    else
      l[i] = l[i + 1];
  }
  int Min = 0x3f3f3f3f;
  for (int i = 1; i <= n; i++) {
    int prelen = i - 1;
    int suflen = n - (l[i] + 1) + 1;
    Min = min(Min, prelen + suflen);
  }
  printf("%d\n", Min);
  return 0;
}


#笔试题目##阿里巴巴#
全部评论
好难,同没啥思路,就过了10%
1 回复
分享
发布于 2020-08-05 10:18
第一题是多重背包, 第二题先把b映射成有序,在吧a和b同样方法映射,找最长升序子数组
点赞 回复
分享
发布于 2020-08-06 09:54
联想
校招火热招聘中
官网直投
请问楼主这个那个岗位的笔试题啊
点赞 回复
分享
发布于 2020-11-13 19:43

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务