热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

模拟赛_12.30模拟赛

本文由编程笔记#小编为大家整理,主要介绍了12.30模拟赛相关的知识,希望对你有一定的参考价值。  我好菜啊
本文由编程笔记#小编为大家整理,主要介绍了12.30模拟赛相关的知识,希望对你有一定的参考价值。


 

 

我好菜啊

又双叒叕垫底辣

其实题目并不难

不光是度把握不好,而且T1,T2还是没有抓住题目的性质,(性质才是关键啊)

(其实大部分题不会做都是因为没有抓住题目的性质。。)

T1:

技术分享图片

技术分享图片

一个显而易见的结论是,两人一定从S中选择最大的一个取走

一个显而易见的复杂度是O(NK)
一个显而易见的暴力是模拟一遍用堆维护O(NKlogN)
另一个显而易见的暴力是用一个桶维护出现次数和最大值,然后暴力更新mx.O(N^2K)

没有别的办法了吗?

桶的mx指针往下跳是O(N),因为可能往上跳,

我们其实并不需要桶的指针来回跳,

如果新加入的值大于mx,那么一定就取这个值,对mx无影响

而小于mx,就放进桶,然后取出一个mx。然后mx向下走更新

这样,mx单调递减。

O(NK)+卡常

 

其实这个题就是优化一下暴力,排除冗余的更新

 

 

T2:

技术分享图片

技术分享图片

考虑树形dp

链竖直,所以考虑f[x]表示x根子树,x作为一条链的上端最大值

O(N^2)可以dfs套dfs

不暴力dfs的话,要考虑能否在儿子链的基础上接上自己

但是直接做不行的,因为最大最小值都不知道是多少。

如果最大最小值在特殊位置,那么会很容易处理。

 

经过一些观察发现

一条链一定两端最大最小值,而且中间单调!

否则劈成两半或多半一定更优!

所以我们dp转移的时候,不用找整个链

dp[x][0/1]表示x为根的子树,x作为链的顶端是最大值还是最小值的最大总和

要么不作为开端,要么和子树连接。

由于本身是最值,儿子本身也是最值,所以可以直接把贡献得到。

O(N)

 

启发我们:

当题目数据范围和算法有了矛盾的时候,第一反应不是套高级数据结构暴力搞一搞

而是应该尝试发现题目的性质,简化不必要的过程

 

这两个题都是在题目性质的基础上优化暴力。

上次的主席树维护AC自动机儿子指针也是这样。

 

 

以后还是要打起精神,努力发掘题目性质,尝试换一种思维等等。

这比套用高级算法有意义的多。

 




推荐阅读
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 掌握Mosek矩阵运算,轻松应对优化挑战
    本篇文章继续深入探讨Mosek学习笔记系列,特别是矩阵运算部分,这对于优化问题的解决至关重要。通过本文,您将了解到如何高效地使用Mosek进行矩阵初始化、线性代数运算及约束域的设定。 ... [详细]
  • 传送门A-Registration#include#definelllonglongusingnamespacestd;chars[15],t[15]; ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 在当今的直播行业中,一些主播能够通过先进的变声技术实现出色的声音变换效果。本文将深入探讨这些主播所使用的工具和技术,揭示他们是如何做到如此多样化的音效变化。 ... [详细]
  • KMP算法是一种高效的字符串模式匹配算法,能够在不进行回溯的情况下完成匹配,其时间复杂度为O(m+n),其中m和n分别为文本串和模式串的长度。本文将详细介绍KMP算法的工作原理,并提供C语言实现。 ... [详细]
  • 本文介绍了如何使用Java代码在Android设备上检测特定应用程序是否已安装。通过创建一个Intent并利用PackageManager查询该Intent的可用性来实现这一功能。 ... [详细]
  • 通过分析和解决找零钱问题,深入理解贪心算法的应用。本文提供详细的C语言代码实现及解析。 ... [详细]
  • 如何使用MD5进行文件验证
    本文详细介绍MD5(Message-Digest Algorithm 5)的用途及如何通过MD5码来验证文件的完整性。 ... [详细]
  • 探讨如何使用 JavaScript 将两个时间戳的差值精确转换为天数、小时和分钟的格式。 ... [详细]
  • 本文探讨了Hive作业中Map任务数量的确定方式,主要涉及HiveInputFormat和CombineHiveInputFormat两种InputFormat的分片计算逻辑。通过调整相关参数,可以有效控制Map任务的数量,进而优化Hive作业的性能。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 想搭建一个能够稳定支持每日500万页面浏览量(PV)的网站架构吗?了解500万PV的实际意义,以及如何计算服务器需要处理的并发请求量,是成功构建高效架构的关键。本文将从基础概念出发,深入探讨实现这一目标所需的技术细节和策略。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
author-avatar
金瑞期货秦臻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有