A

对于\(100\%\),直接开个桶统计即可。入门题目。

代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41153707&scrollToDetail=1

B

对于\(100\%\),直接按题目模拟就好。每次两个指针扫一下就是\(O(n)\)的了。整个加起来是\(O(\max(n,len)\times m)\)的复杂度。可以结合代码理解。

代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41153710

C

对于\(10\%\)直接copy代码然后完善一下头文件什么的就行了。
考虑这个\(dp\)是在干什么,其实就是求对于每个位置往前的前\(k\)大的数的和。
那么对于\(40\%\),直接删掉第三重循环(考虑如果不选这个数,可以直接直接从\(f[i-1][j]\)转移,所以第三重循环完全多余)
对于\(100\%\),用一个数据结构动态维护前\(k\)大即可。(这里用\(set\)或者小根堆,都行)
复杂度\(O(n\log n)\)

代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41153712

D

对于\(10\%\),很明显是个\(O(n^6 )\)的算法..那么直接暴力枚举两个端点,然后暴力统计和取\(\max\)即可。
对于\(30\%\),注意到这个矩阵的生成方式有点特别,把它写出来,就会发现一个矩阵的和是一段\(a_i\)乘上一段\(b_j\),那么便可以省去统计两重循环,复杂度\(O(n^4)\)
对于\(50\%\),考虑优化\(30\)分的做法,30分的统计就是一个前缀和相乘的形式,那么要让它最大无非3种情况,正数最大\(\times\)正数最大,负数最小\(\times\)负数最小,正数最小\(\times\)负数最大,第三种又可以分为正数最小在\(A\)中,正数最小在\(B\)中两种情况,于是维护前缀\(\max\)和前缀\(\min\),分类讨论一下,就可以\(O(n^2)\)解决了。
对于\(100\%\),既然是一段\(a_i\)乘上一段\(b_j\),那么分别统计最大子段和和最小子段和即可。
最后根据\(50\%\)的做法分四类情况讨论一下就好。这部分其实就是把\(30\)和\(50\)分做法综合起来而已。
复杂度$O(n) $
至于怎么算最小子段和?全部取反求最大子段和再重新重新乘\(-1\)即可。

代码:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=41153727

牛客NOIP暑期七天营-普及组1 解题报告的更多相关文章

  1. 牛客NOIP暑期七天营-提高组1 解题报告

    https://ac.nowcoder.com/acm/contest/920#question A 构造+双指针 发现m的限制是1e5,而点数是5e4,所以不能构造太多的边,思考一下最短路树的定义. ...

  2. 牛客NOIP暑期七天营-普及组2D

    链接:https://ac.nowcoder.com/acm/contest/926/D来源:牛客网 在一维坐标系中,给定 n条有颜色的线段,第 i条线段的左右端点分别为 li​和 ri​,此外它的颜 ...

  3. 牛客NOIP暑期七天营-提高组1

    牛客NOIP暑期七天营-提高组1 链接 A 边权可为0就排序建一条链子. 但是边权不为0 除了第一个有0的不行. x连向上一个比他小的数. 期间判断有无解. #include <bits/std ...

  4. 牛客NOIP暑期七天营-提高组5+普及组5

    ————提高组———— 第一题:deco的abs 题目链接:https://ac.nowcoder.com/acm/contest/934/A 因为每个数都可以加任意次 d ,所以可以推出 0 < ...

  5. 牛客NOIP暑期七天营-提高组6

    目录 A-积木大赛 题目描述 link 题解 代码 B-破碎的序列 题目描述 link 题解 C-分班问题 题目描述 link 题解 比赛链接 官方题解 A-积木大赛 题目描述 link 题解 标签: ...

  6. 牛客NOIP暑期七天营-提高组3

    第一题:破碎的矩阵 题目链接:https://ac.nowcoder.com/acm/contest/932/A    刚看到这题的时候感觉特别熟悉...诶,这不就是codeforces某场比赛的某某 ...

  7. 牛客NOIP暑期七天营-提高组2

    第一题:ACGT 题目链接:https://ac.nowcoder.com/acm/contest/931/A trie树.hash.map遍历  ①.trie树上的节点多记一个rest值表示还有多少 ...

  8. 牛客NOIP暑期七天营-提高组6C:分班问题 (组合数)

    题意:A班有N个人,B班有M个人,现在要组成一个新的班级C班,为了公平,从AB班各抽相同人数的人. 现在求所有方案中,人数之和是多少. 思路:即求Σ k*C(N,k)*C(M,k);    先忽略这个 ...

  9. 牛客NOIP暑期七天营-提高组5

    A:deco的abs. 水题,先%,然后相邻两个数min()一下差值. #include<bits/stdc++.h> #define ll long long using namespa ...

随机推荐

  1. Kubernetes & Docker 容器网络终极之战(十四)

    目录 一.单主机 Docker 网络通信 1.1.host 模式 1.2 Bridge 模式 1.3 Container 模式 1.4.None 模式 二.跨主机 Docker 网络通信分类 2.1 ...

  2. Kubernetes 控制器之 Deployment 介绍(六)

    一.Deployment.ReplicaSet.Pod之间的关系 我们接着前面的文章说,如果不清楚的请查看之前的博文:http://blog.51cto.com/wzlinux/2322616 前面我 ...

  3. Spring boot后台搭建二集成Shiro添加Remember Me

    上一片文章实现了用户验证  查看 当用户成功登录后,关闭浏览器,重新打开浏览器访问http://localhost:8080,页面会跳转到登录页,因为浏览器的关闭后之前的登录已失效 Shiro提供了R ...

  4. Altera FPGA 远程升级有关的几个IP的使用

    在做在线远程升级的时候,一般需要两步:1.将数据写到外挂的flash中.2重新启动FPGA配置. 不过要做到远程升级,一般需要在原始程序中就考虑到加入远程升级模块,remote updata IP, ...

  5. Python和Java、PHP、C、C#、C++等其他语言的对比?

    1111 1.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素.C++在这方面做了 ...

  6. 第07组 Beta冲刺(3/4)

    队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:学习了很多东西 Github签入记录 接下来的计划:继续学习 还剩下哪些任务:后端部分 燃尽图 遇到的困难:自己太菜了 收获和疑问: ...

  7. 在webstorm里使用git

    1,设置git 打开webstorm软件,找到file下面的settings(设置) 打开设置对话窗,找到version control的子级目录git,路径path输入git安装目录下bin目录里的 ...

  8. tetetet

    http://www.wuwenhui.cn/2623.html http://www.360doc.com/content/16/1104/09/36005694_603810507.shtml

  9. Apache Kafka安全| Kafka的需求和组成部分

    1.目标 - 卡夫卡安全 今天,在这个Kafka教程中,我们将看到Apache Kafka Security 的概念  .Kafka Security教程包括我们需要安全性的原因,详细介绍加密.有了这 ...

  10. Django——用户认证

    Django--用户认证 用户与Authentication(身份验证) Django 用户认证系统处理用户帐号,组,权限以及基于cookie的用户会话. 这个系统一般被称为 auth/auth (认 ...