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

转载于:https://www.cnblogs.com/henry-1202/p/11376366.html

牛客NOIP暑期七天营-普及组1 解题报告相关推荐

  1. 牛客NOIP暑期七天营-普及组4 C-火龙果田

    小巫女从小就喜欢吃火龙果,她有一个梦想,就是用魔法变出许许多多美味可口的火龙果,这样她就可以天天享受火龙果的美味啦! 可是小巫女平常没有认真完成魔法学院的功课,魔法经常出现一些意想不到的情形,不能变出 ...

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

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

  3. C语言普及组NOIP考试培训,NOIP 2018普及组复赛解题报告来了!

    以下解题思路及选手代码未经官方评测,仅供参考,复赛成绩以官方(CCF)评测结果为准. 主要考察字符串.参考代码: #include int main() { int ans = 0; char ch; ...

  4. 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱

    今天的比赛没打( 睡午觉去了,今天太累了 晚上来看看题 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱 题目传送门 板子题( 我们知道由唯一分解定理得,若 n=p1α1×p2α2×p3α3 ...

  5. 牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph

    牛客网暑期ACM多校训练营(第十场)F.Rikka with Line Graph 做法:\(G'\) 中的对应原图两条边(a,b) (c,d)的最短路为: \[ w[a][b] + w[c][d] ...

  6. 牛客网暑期ACM多校训练营(第九场)

    牛客网暑期ACM多校训练营(第九场) A. Circulant Matrix 做法:看到下标 \(xor\) 这种情况就想 \(FWT\),可是半天没思路,于是放弃了..其实这个 \(n\) 疯狂暗示 ...

  7. 牛客网暑期ACM多校训练营(第五场)

    牛客网暑期ACM多校训练营(第五场) A. gpa 二分答案,然后就转化为是否满足 \(\frac {\sum s[i]c[i]}{\sum s[i]} ≥ D\), \(\sum s[i]c[i] ...

  8. 牛客网暑期ACM多校训练营(第三场)

    牛客网暑期ACM多校训练营(第三场) A. PACM Team 01背包,输出方案,用bool存每种状态下用的哪一个物品,卡内存.官方题解上,说用char或者short就行了.还有一种做法是把用的物品 ...

  9. 牛客网暑期ACM多校训练营(第一场)

    牛客网暑期ACM多校训练营(第一场) A. Monotonic Matrix 考虑0和1的分界线,1和2的分界线,发现问题可以转化为两条不互相穿过的路径的方案数(可重叠),题解的做法就是把一条路径斜着 ...

  10. 2022牛客寒假算法基础集训营6 签到题5题(附基础集训营4-6签到题总结)

    1.I-A+B问题 模拟,类似于高精度,竖式运算 #include<bits/stdc++.h> using namespace std; typedef long long LL; in ...

最新文章

  1. 不容错过的灰度发布系统架构设计
  2. 深度学习技术在脑机接口中的应用
  3. python入门教程共四本书籍-Python入门经典书籍有哪些?有这三本就够了
  4. 深信服上网管理设备恢复控制台密码
  5. C#的类修饰符和成员修饰符
  6. 用户如何有效地利用数据字典(转)
  7. python中numpy函数fft_如何在PyTorch中正确使用Numpy的FFT函数?
  8. oracle dba 命令行,Oracle DBA常用命令
  9. python求两个数的最大值、用带参函数实现_Python有参函数使用代码实例
  10. HTML中合并单元格(水平和垂直)
  11. mybatis3的中文官方文档
  12. c语言错误c1083是什么意思,fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directo...
  13. [游戏引擎中文版]avg制作工具livemaker和Yuuki! Novel汉化版
  14. 怎么用python电商文本挖掘?(5)
  15. 少儿编程c语言 难度,c语言很难学吗
  16. tinker热修复gradle接入
  17. Android 集成 Agora SDK 快速体验 RTC 版多人视频聊天|掘金技术征文
  18. java-php-python-ssm网课系统计算机毕业设计
  19. Java编程思想读书笔记——多态
  20. [生存志] 第117节 九章算术均徭赋

热门文章

  1. 拓端tecdat|R语言通过WinBUGS对MGARCH和MSV模型进行贝叶斯估计和比较
  2. 图像处理-RGB彩色图像均衡化处理
  3. 分子重构技术_4. 串珠模型重构
  4. 记录三个困扰很久的问题
  5. 机器人操作系统ROS(一):发布接收消息
  6. java swing结束事件_java swing清除事件队列
  7. 传智播客视频python视频爬虫
  8. Java并发编程中锁的正确使用方法
  9. 考研算法语言C,2017年华南理工大学硕士研究生算法语言(C)考试大纲
  10. php微信接口调用,PHP调用微信接口报错