由数据范围反推算法复杂度以及算法内容

一般ACM或者笔试题的时间限制是1秒或2秒。
在这种情况下,C++代码中的操作次数控制在 1 0 7 ∼ 1 0 8 10^7\sim10^8 107108为最佳。

下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:

  1. n ≤ 30 n\leq30 n30,指数级别, d f s + dfs+ dfs+剪枝,状态压缩 d p dp dp
  2. n ≤ 100 ⇒ O ( n 3 ) n\leq100\rArr O(n^3) n100O(n3) f l o y d floyd floyd d p dp dp,高斯消元;
  3. n ≤ 1000 ⇒ O ( n 2 ) n\leq1000\rArr O(n^2) n1000O(n2) O ( n 2 l o g n ) O(n^2logn) O(n2logn) d p dp dp,二分,朴素版 D i j k s t r a Dijkstra Dijkstra,朴素版 P r i m Prim Prim B e l l m a n − F o r d Bellman-Ford BellmanFord
  4. n ≤ 10000 ⇒ O ( n ∗ x ) n\leq10000\rArr O(n*\sqrt{x}) n10000O(nx ),块状链表、分块、莫队;
  5. n ≤ 100000 ⇒ O ( n l o g n ) ⇒ n\leq100000\rArr O(nlogn)\rArr n100000O(nlogn),各种 s o r t sort sort,线段树、树状数组、 s e t / m a p set/map set/map h e a p heap heap、拓扑排序、 d i j k s t r a + h e a p dijkstra+heap dijkstra+heap p r i m + h e a p prim+heap prim+heap K r u s k a l Kruskal Kruskal s p f a spfa spfa、求凸包、求半平面交、二分、 C D Q CDQ CDQ分治、整体二分、后缀数组、树链剖分、动态树;
  6. n ≤ 1000000 ⇒ O ( n ) n\leq1000000\rArr O(n) n1000000O(n),以及常数较小的 O ( n l o g n ) O(nlogn) O(nlogn)算法 ⇒ \rArr 单调队列、 h a s h hash hash、双指针扫描、 B F S BFS BFS、并查集、 k m p kmp kmp A C AC AC自动机,常数比较小的 O ( n l o g n ) O(nlogn) O(nlogn)的做法: s o r t sort sort、树状数组、 h e a p heap heap d i j k s t r a dijkstra dijkstra s p f a spfa spfa
  7. n ≤ 10000000 ⇒ O ( n ) n\leq10000000\rArr O(n) n10000000O(n),双指针扫描、 k m p kmp kmp A C AC AC自动机、线性筛素数;
  8. n ≤ 1 0 9 ⇒ O ( n ) n\leq10^9\rArr O(\sqrt{n}) n109O(n ),判断质数;
  9. n ≤ 1 0 18 ⇒ O ( l o g n ) n\leq10^{18}\rArr O(logn) n1018O(logn),最大公约数,快速幂,数位DP;
  10. n ≤ 1 0 1000 ⇒ O ( ( l o g n ) 2 ) n\leq10^{1000}\rArr O((logn)^2) n101000O((logn)2),高精度加减乘除;
  11. n ≤ 1 0 100000 ⇒ O ( l o g k × l o g l o g k ) n\leq10^{100000}\rArr O(logk\times loglogk) n10100000O(logk×loglogk) k k k表示位数,高精度加减, F F T / N T T FFT/NTT FFT/NTT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年字节跳动+京东+美团面试总结,程序员经验分享

现在的IT行业竞争压力越来越大,尤其是Android开发行业。而很多Android程序员却每天都在重复CRUD,原地徘徊! 今年年初,你就想改变现状,于是在网上刷了大量面试题,强行记下之后,开始参加面试!但是…

微信小程序开发系列(七)·如何实现小程序页面的快速跳转、小程序样式·尺寸单位rpx以及全局样式和局部样式的区别

微信小程序开发_时光の尘的博客-CSDN博客 目录 1. 小程序样式和组件介绍 2. 如何实现页面的快速跳转 3. 小程序样式尺寸单位rpx 3.1 使用px 3.2 使用rpx 4. 全局样式和局部样式 4.1 全局样式 4.2 局部样式 1. 小程序样式和组件介绍 在开发 Web网站的时候&am…

C语言深入学习 --- 2.指针的进阶

文章目录 第二章指针的进阶1.字符指针2.指针数组3.数组指针3.1数组指针的定义3.2 &数组名与数组名的区别3.3 数组指针的使用 4.数组参数与指针参数4.1 一维数组的传参4.2 二维数组的传参4.3 一级指针传参4.4 二级指针传参 5.函数指针6.函数指针数组7.指向函数指针数组的指针…

15 实战:Kaggle房价预测 + 课程竞赛:加州2020年房价预测【李沐动手学深度学习课程笔记】

15 实战:Kaggle房价预测 课程竞赛:加州2020年房价预测【李沐动手学深度学习课程笔记】https://zhuanlan.zhihu.com/p/685343754 写在前面:这里格式很乱,代码直接去知乎copy 1 实战Kaggle比赛:预测房价 1.1 实现几个函…

【系统安全加固】Centos 设置禁用密码并打开密钥登录

文章目录 一,概述二,操作步骤1. 服务器端生成密钥2. 在服务器上安装公钥3.下载私钥到本地(重要,否则后面无法登录)4. 修改配置文件,禁用密码并打开密钥登录5. 重启sshd服务6. 配置xshell使用密钥登录 一&am…

线段树及例题动态求连续区间和 Java代码

线段树 作用 1、单点修改 2、区间查询 相比于树状数组,线段树代码更复杂但应用更广泛 例题 Acwing 1264. 动态求连续区间和 给定 n n n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [ a , b ] [a,b] […

leetcode 200 . 岛屿数量

链接 : . - 力扣(LeetCode) 广搜 : BFS 适合于解决两个点之间的最短路问题 ; 以起始点为中心一圈一圈的进行搜索 , 一旦遇到终点 , 记录之前走过的结点就是一条最短路 ; 代码模板 : int dir[4][2] {0, 1, 1,…

自动化测试基础——Pytest框架之YAML详解以及Parametrize数据驱动

文章目录 一、YAML详解1.YAML作用2.YAML语法结构3.YAML数据类型3.1.对象3.2.数组3.3.标量 4.YAML的引用5.YAML类型转换 二、YAML的读写与清空1.YAML的读2.YAML的写3.YAML的清空 三、pytest的parametrize简单数据驱动四、pytest的parametrize结合yaml实现数据驱动五、解决pytest…

FreeRTOS操作系统学习——空闲任务及其钩子函数

空闲任务 当 FreeRTOS 的调度器启动以后就会自动的创建一个空闲任务,这样就可以确保至少有一任务可以运行。但是这个空闲任务使用最低优先级,如果应用中有其他高优先级任务处于就绪态的话这个空闲任务就不会跟高优先级的任务抢占 CPU 资源。空闲任务还有…

FlinkSQL ChangeLog

01 Changelog相关优化规则 0101 运行upsert-kafka作业 登录sql-client,创建一个upsert-kafka的sql作业(注意,这里发送给kafka的消息必须带key,普通只有value的消息无法解析,这里的key即是主键的值) CREA…

EC600模块通过AT指令接入阿里云物联网平台并发布属性

摘要:本文介绍一下如何通过EC600模块的AT指令,将设备属性值发送到阿里云物联网平台的方法。 这个模块供电可以是 5-16V 和电脑通过USB串口连接,4线即可。未来集成到自己的系统中的时候,可以直接发送指令即可。 使用的软件是FreeAT…

【Vue3】Hooks:一种全新的组件逻辑组织方式

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

STM32作为SPI slave与主机异步通信

背景 最近被测试提了个BUG,说某款产品在用户按下前面板的按键后,对应的按键灯没有亮起来。前面板跟主机是通过SPI口通信,前面板是从机,从机想要主动发送消息,需要通过GPIO中断来通知主机: 上图前面板是ST…

阿里云不杀熟,云服务器优惠价格99元一年,新老用户均可购买

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

14 程序地址空间

背景 kernel 2.6.32 32位平台 空间布局图 如何理解地址划分 地址划分,本质是调整地址空间的定义start和end,内存中定义了管理每个区域范围的结构体,叫mm_struct,每个进程都有一个这个结构体指针变量 验证上面划分的结构&#…

2024.3.1 训练记录(5)

昨晚cf上大分了开心捏,三月了得想想新的高效一点的训练方法了不能再像个无头苍蝇乱撞了 目前的想法是1700-2000板刷cf,遇到不会的算法就学,思维还需要再提升一下,暑假开始补没有接触过的算法 文章目录 CF 1937D PinballCF 1916D…

十四经脉最全总结(什么是经脉、十二经脉动态图、经脉走向、人体和手足哪面为阳,哪面为阴?)

目录 一.什么是经脉二.人体和手足哪面为阳?哪面为阴?三.任督二脉3.1 任脉3.2 督脉 四.十二经脉4.1 什么是 厥阴,少阴,太阴;少阳,阳明,太阳?4.2 十二经脉总分布4.3 手三阴经1.手厥阴心…

4、pod运维replicationCtroller、replicaSet、DeamonSet、Job、Cronjob

1、kubenetes 会自动重新运行失败的pod应用 pod运行失败,会自动重启,但是节点失败,pod会被移除, 除非配置了relicationController来管理资源 2、保持pod的健康存活 配置探针,发送http请求 3、查看前一个pod的运行日…

mysql-视图,创建表,存储过程,循环,判断实操命令

数据库操作命令在IDEA工具database的console命令 数据库表结构与视图 -- 查询隔离级别 select transaction_isolation;-- 设置隔离级别 set session transaction isolation level read committed ; set session transaction isolation level REPEATABLE READ ;start transacti…

蚂蚁感冒c++

题目 思路 “两蚂蚁碰面会掉头,若其中一只蚂蚁感冒了,会把感冒传染给碰到的蚂蚁”,这句话看作是“两蚂蚁碰面会互相穿过,只是把感冒的状态传给了另一只蚂蚁”,因为哪只蚂蚁感冒了并不是题目的重点,重点是有…