从图书馆编目到数组搜索:探索缺失的第一个正整数 生活中的算法 想象你是一位图书馆管理员,正在整理一排连续编号的图书。这些书应该从1号开始按顺序排列,但是有些编号的书不见了。你的任务是找出第一个缺失的编号。这就像是在做点名,发现第一个没来上课的同学。 这个场景在生活中很常见。比如: 餐厅服务员查看哪个 ...
1. 组合优化 1.1. 蛮力搜索算法会尝试所有可能的组合并从中选择最好的那个 1.2. 旅行商问题是众多组合优化(combinatorial optimization)问题中的一个,它要求许多固定元素以可能的最佳方式进行组合 1.2.1. 固定元素可以有无数种排列方式 1.2.2. 目标是找到唯一 ...
从购物清单到数组乘积:探索除自身外数组的乘积问题 生活中的算法 想象你是一家糕点店的老板,今天要制作不同种类的蛋糕。每个蛋糕都需要面粉、鸡蛋、糖和黄油,但用量不同。比如: 奶油蛋糕:2斤面粉,4个鸡蛋,1斤糖,0.5斤黄油 巧克力蛋糕:1斤面粉,3个鸡蛋,1.5斤糖,1斤黄油 水果蛋糕:3斤面粉,6 ...
从风扇叶片到数组轮转:探索轮转数组问题 生活中的算法 想象你在看一个风扇缓缓转动,每次转动三个叶片的距离。原本在上方的叶片转到了右侧,原本在右侧的叶片转到了下方...这就是一个生动的轮转过程。再比如,幼儿园老师让小朋友们围成一个圈,喊"向右移动3个位置",每个小朋友就会走到新的位置上。 这种轮转在生 ...
浅谈斜率优化 概论 列出状态转移方程,如果能化简为以下的形式: \[dp[i]=\min/\max(c[i]+d[j]+C) \]此时我们就可以利用单调队列优化从做 \(O(n^2)\) 到 \(O(n)\) 的复杂度。 现在考虑更一般的情况,如果化简为以下形式: \[dp[i]=\min/\max ...
旅行商问题是确定一系列城市间最短旅行路线,属NP困难问题,穷举搜索很慢,最快算法也只能找到近似解,其决策问题是NP完全问题。 ...
从日程安排到区间合并:探索合并区间问题 生活中的算法 想象你是一位活动策划师,桌上摆着许多便利贴,每张写着不同的活动时间段:9:00-11:00的晨会、10:30-12:00的培训、14:00-16:00的项目汇报、15:00-17:00的团队建设...有些活动时间明显重叠了,为了让日程更清晰,你需 ...
一、 题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排 ...
从股市走势到动态规划:探索最大子数组和问题 生活中的算法 想象你是一位股票交易员,手上有一支股票的每日涨跌数据。你想找出哪段连续的交易日能获得最大的收益。如果某天股票上涨5元,我们记为+5,下跌3元记为-3。找出总和最大的一段连续交易日,就是在寻找最大子数组和。 这个问题在现实生活中很常见。比如分析 ...
1. 人工智能现身 1.1. 在20世纪四五十年代,计算机在本质上被看成一种快速计算器 1.1.1. 主机一个接一个地运行大量的数据处理作业(job),不与用户发生交互 1.1.2. 最终的大量打印结果由操作员按批次(batch)展示给他们心怀感激的客户 1.2. 在工业级算术的扩张过程中,个别有远 ...
1. 天气预报 1.1. 自古以来,生命就与变幻莫测的天气息息相关 1.1.1. 在很多情况下,只要能提前一天得知天气情况,人类就可以避免灭顶之灾 1.1.2. 公元前2000年,准确预测天气是众神的特权 1.2. 大约在公元前650年,巴比伦人曾尝试通过观察云的形成来更精确地预测天气 1.3. 在 ...
一、 题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼10^9 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排 ...
计算机发展历经机械计算、巴贝奇差分机与分析机设想,图灵提出图灵机与算法定义,楚泽、艾肯等推动初代计算机研发,最终诞生通用数字计算机。 ...
1. 不断扩展的圆圈 1.1. 哥贝克力石阵 1.1.1. 哥贝克力石阵令人印象深刻,但它真正的不同寻常之处在于其建造年代 1.1.2. 该遗址可追溯到公元前10000年至公元前8000年,远远早于古苏美尔 1.1.3. 成为世界上已知的最古老的巨石遗址 1.2. 圆的根本特征是从中心点到边缘的距离 ...
题目大意 详细题目传送门 一个长为 \(n\) 的序列 \(a\),有 \(m\) 次操作 把区间 \([l,r]\) 中大于 \(x\) 的数减去 \(x\)。 查询区间 \([l,r]\) 中 \(x\) 的出现次数。 \(1\le n\le 10^6\),\(1\le m\le 5\times ...
苏美尔文字起源于湿黏土陶筹,楔形文字记录了苏美尔语,促进社会发展。阿卡德、巴比伦帝国相继统治,文字变迁。19世纪欧洲考古学家破译文字。美索不达米亚算法复杂,包括六十进制和毕达哥拉斯定理。埃及数学留存少,欧几里得算法著名。 ...
算法是解决问题的步骤或规则,起源于阿拉伯数学家名字。算法广泛应用于计算和信息处理,包括插入排序、快速排序等。计算机通过程序执行算法,算法让生活更易,增进对宇宙理解。 ...
数组 1. 二分查找 题目 力扣题目链接 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = ...
题目大意 详细题目传送门 求有多少个 \(n\) 位数 \(v=\overline{a_1a_2\cdots a_n}\) 满足每一位都小于等于右边的下一位,且有给出 \(p\) 使 \(v|p\)。 \(n\leq10^{18},p\leq500\) 思路 注意到 \(n\) 很大,但 \(p\) ...
Preface 作为一名半退役选手,个人感觉本场难度不是太大,感觉和去年比难度貌似是下降了。在打的时候实在是由于乱七八糟的原因(包括不限于眼瞎,眼瞎,还有眼瞎),打得一般般。 感觉本场模拟题偏多,实在是吃屎。 我会在代码一些有必要的地方加上注释,签到题可能一般就不会写了. 以下是代码火车头: #in ...