竞赛
考级
结课最后一题这么简单¿ 最重要的是,输出的是“再见,世界”¿¿¿
#include<bits/stdc++.h> using namespace std; int main(){ int dx[8]={-1,1,0,0,-1,1,-1,1},dy[8]={0,0,-1,1,-1,-1,1,1}; } /* 中心:x ,y; 上: x-1,y; 下: x+1,y; 左: x ,y-1; 右: x ,y+1 左上:x-1,y-1; 左下:x+1,y-1; 右上:x-1,y+1; 右下:x+1,y+1; /*
招人啦~~~ 我和“极客网咖(可互关)”的小伙伴都在ACGO等你,快用这个专属链接加入我们吧!https://www.acgo.cn/application/1956238107838242816 声明 本团极客网咖主玩和平,王者,三角洲,mc等 若入团申请被拒绝,可联系༺ཌༀཉི༒澜༒ༀད༻ 想改分组也可以联系管理员 请入团成员尽量改名为极客_XXX_XXX的形式 点个赞吧!!! 点个赞吧!!! 点个赞吧!!! 前五个人给管理员 扮酷扮酷扮酷 要打的私信我或者管理员 合作公司 : 极客电竞 段位系统: 王者部 :国服>省标>市标>区标 和平部 :经典模式 【无敌战神 > 王牌 > 皇冠 > 钻石 】 地铁逃生 【地铁大亨 > 大目标 > 中目标 > 小目标 】 (骂人,冒充管理员违反规定会进小黑屋) 监狱系统 一级知章>二级知章>三级知章 一级知章=死罪 二级知章=大罪 三级知章=小罪 竞赛规则 禁止使用ai不可一个人用多个账号参赛,违者看情况处罚(最低二级知章)!!! 不可交换代码使用,违者进入二级知章!!! 附:发文章/公告栏技巧 -> 反转字符 邀请链接https://www.acgo.cn/application/1956238107838242816 欢迎各位成员多多招人!!! 欢迎各位成员多多招人!!!
https://www.acgo.cn/application/1942941440919638016(谢谢你们,😘)
666
123
234
这里是CML团队的学术讨论贴,非团员请勿进入。 这里是团队建议想与举报箱,团员请勿在这里发水贴,违者团队法律处置
这里是CML团队的学术讨论贴,非团员请勿进入。 团员请勿在这里发水贴,违者团队法律处置
团队招人啦!!! 如果想进我们团队的先空降https://www.acgo.cn/application/1941707591331131392 就是我们团队了,想进团就可以找团长,团长有很大几率会同意的! 再通过审核就可以进团啦! 进团需求: 1.你会c++ 2.不要求年龄,成年未成年都可以进团! 3.进团了要遵守团队的团规! 做到以上几点就可以进团了!!!我们在团里等着你
功能很多,不用下载,平时做题画图用很好 网址:https://excalidraw.com
2025年最后一期集中营回家时间の传送门 换源版
铭记历史,珍视和平,开创未来 2025年8月15日,日本宣布无条件投降整整八十周年。这不仅是历史的回望,更是民族记忆的凝固与世界和平的见证。八十年前,无数先烈以血肉之躯捍卫了国家的尊严与人民的自由,他们用牺牲换来了今日的安宁与发展。 今天,我们缅怀先辈,向所有为正义而奋斗的人们致以最崇高的敬意。我们坚信,唯有坚持创新、协作与共赢,才能让和平之花在世界长久绽放。ZDZL将继续秉持责任与担当,汇聚技术与智慧的力量,守护和平,推动未来。 Remembering History, Cherishing Peace, Building the Future August 15, 2025, marks the 80th anniversary of Japan’s unconditional surrender. This day is more than a remembrance of the past—it is a preserved national memory and a testament to the hard-won peace of the world. Eighty years ago, countless heroes defended the dignity of our nation and the freedom of its people, trading their lives for the peace and progress we enjoy today. Today, we honor their sacrifices and extend our highest respect to all who have fought for justice. We believe that only through innovation, collaboration, and shared prosperity can the flower of peace continue to bloom across the world. ZDZL remains committed to responsibility and vision, harnessing the power of technology and wisdom to safeguard peace and shape the future. 歴史を刻み、平和を守り、未来を創る 2025年8月15日、日本が無条件降伏を宣言してから80周年を迎えます。この日は、単なる歴史の記憶ではなく、民族の記憶であり、世界の平和がいかに得られたかを証明する日です。80年前、数え切れない先人たちが国の尊厳と人々の自由を守るために立ち上がり、その命を捧げて今日の安定と発展を築きました。 私たちは彼らの犠牲を偲び、正義のために戦ったすべての人々に最大限の敬意を表します。そして、革新・協力・共栄によってこそ、平和の花は世界に咲き続けると信じています。ZDZLは責任と使命感を持ち、技術と知恵の力を結集し、平和を守り、未来を切り拓きます。
关于动态规划的全面讲解 Khalil Fong的动态规划讲解 前言———————————————————————动态规划(Dynamic Programming) 从它诞生以来 就一直是一个C++中的核心算法 但因其的难度性劝退了众多的码农 动态规划不是以其的数学推算或是程序编写能力出众 而是它就像是一种从思维演算到题目建模的一类编程算法. 这篇文章以动态规划出发 向各位解释其DP的本质 运用范围 核心特点 and 解题方法&思路 向各位提供超详细的动态规划解析. 1.基础动态规划 动态规划的核心特点便是将一个大问题拆解成多个小问题 这些问题在逐步解决的同时不断地记录下来 这样就提高了解题效率 这两种方法便是动态规划中的划分子问题和记忆化搜索. 动态规划可以解决的问题多是像这两类: 1) 子问题重叠: 在划分完子问题后 发现有一些问题在递归时会出现步骤 or 答案重复计算的问题 这样做会使得时间和空间有一定浪费 可能单个子问题发生不是大事 但多个子问题发生此事可能会超时或超空间. 2) 最优子结构: 这类问题是以一个个子问题达到最优解 从而使全局都达到最优解 简单来说 就是让每一个局部问题都竭尽所能的达到最好 从而使全局都达到最好. 动态规划的核心 动态规划以子问题重叠 最优子结构 最优原理和无后效性闻名 前两个已经说过了 我们来讲一讲后面两个最优原理和无后效性的核心概念是由美国数学家 理查德·贝尔曼(Richard Bellman) 所提出的 他在20世纪50年代系统地发展了动态规划这一数学优化方法,并首次明确提出了最优化原理(Principle of Optimality)以及无后效性(Markovian property)的概念. 无后效性指在某个阶段(例如dpidp_idpi 被确定已经有某个权值)被确定有着一个状态时 其阶段的状态就不会在改变了 也不会影响的后面的决策 只与现在的决策有关 也就是过去的事件不会影响未来 只与目前有关联. 最优原理指在每一个子问题中都达到最优的效果 从而使全局达到最好 最优性原理是动态规划里最重要的一块基石. 附 如何解决动态规划 解决动态规划这类的问题需要分多个步骤 思想如下: STEP 1:确定LEVEL AND STEP(层级和步骤) 以题目为准 我们把一个题目转换成多个子问题 又将一个子问题转换成多个子子问题 如俄罗斯套娃一般的细分下去 每一个需要解决的问题就是一种层级 对于每个DP问题来说 我们第一步要干的就是将一个大问题拆成多个小问题 在逐步解决每个局部问题 同时 我们还需要找到一个变量 能够把所有的小问题都串联在一起 在刚刚的斐波那契数列中 斐波那契数列的项数就是变量 它连接了每一个子问题. STEP 2:找到状态转移方程 在划分完子问题后 我们要想一想一件事情 就是如何将所有的子问题给串联起来 我们得到了很多子问题 也得到了我们需要的变量 接下来就是使用变量 将子问题都串联到一起 我们需要使用一句代码完成这件事情 那这时 状态转移方程就派上用场了. (我们可以提前列出一个公式 以其为中心编写核心程序). 状态转移方程和子问题及变量都密不可分 所以 我们在编写状态转移方程时需要多用上变量改变子问题 最好包括到所有的变量 以便为后面的程序提供更多可能. STEP 3:处理边界问题 在找到状态转移方程后 我们的思路构建已经完成一大半了 但一些边界问题我们还是需要处理一下 比如说斐波那契数列中的初始化问题 F(0)=0F(0) = 0F(0)=0和F(1)=1F(1) = 1F(1)=1这样的边界值处理 虽然这是一件极小的事情 但在这类地方犯错误就会引起蝴蝶效应 导致后面的值一错再错 so这样的问题一定要处理好. 2.问题实践 2.1.斐波那契数列: 斐波那契数列是动态规划中最简单的一件问题也是最经典的一件问题 原问题看斐波那契数列 看完后 我们可以知道 斐波那契数列的数值为1 1 2 3 5 8 ...... 它的递推方法我们也可以看出 就是第n个值=第n - 1个值+第n - 2个值 除此之外 它的第0个值=0 第1个值=1 在此我们列出它的公式: F(0)=0(1)F (0) = 0\tag{1} F(0)=0(1) F(1)=1(2)F(1) = 1 \tag{2} F(1)=1(2) F(N)=F(N−1)+F(N−2)N≥2(3)F(N) = F(N - 1) + F(N - 2)\tag{3} \\ N \geq 2 F(N)=F(N−1)+F(N−2)N≥2(3) (像不像一架飞机👍👍👍) 注意 在这里 我们处理了边界问题 避免了答案出错. 观看代码 在这里 我们将代码搬上来: 代码讲解 在这段程序中的核心代码如下: 中间的一行代码就是我们最最最主要的代码 我们将其称之为状态转移方程 它可以说是这道题之中最关键的代码 但它的组成便是建立在递推和记忆化搜索之上 我们只要以最优子结构方式 一步一步的去进行推算 最后再得到答案 这种代码的生成 便是很好体现了动态规划的主题思想 其以非常简洁的方式将其写出. 所以 动态规划以记忆和重新使用的方式 大大提高了代码的时间效率 以至于不让代码时间超时 这便是拿空间换时间的精确体现. 动态规划是一种典型的拿空间换时间的思想(毕竟现在的社会 时间成本比空间成本高太多了)————————此话引自Macw07老师一文讲清动态规划的本质中的感叹 代码的启发 从这篇代码中我们可以看出 在记忆过某个子问题后and可以转移到下一个状态时 子问题的状态就不会再去改变 这就说明了一个问题 就是动态规划不具有后效性 也可以说 不具有后效性的算法才可以不去重复计算子问题 也就可以更加节省时间. 递归和动态规划 虽然说 递归和动态规划有着某种相同之处 但细分来看 它们还是有不同之处的: * 递归 通过自己调用自己的方式 将整个问题划分为子问题 再以重复计算的方式达到题目目标 效率低下. * 动态规划(DP) 通过将整问题划分为子问题 随后再记忆已完成的子问题 避开重复计算的可能 从而达到目标 效率超高(在这里 我不是踩一捧一 只是将两种算法进行比较). 在某种情况下 你可以将带有记忆化的递归 视为动态规划. 分治思想和动态规划 动态规划的核心和分治思想的核心有点相似 它们都与子问题有关 都会把整问题分成多个局部问题 但分开看 我们可以找到细致的区别: * 分治思想主要解决的问题还是子问题不重叠 它的算法强度并不高. * 动态规划主要解决的问题还是子问题重叠 在解决这类问题时 它的用处很广泛. 在解决子问题重叠问题上 DP时一个更好的选择. 模板代码 以下为无注释版代码: 做题时间 以下为斐波那契数列练习题: A.7297 兔子数列 A21007.月落乌啼算钱(斐波那契数列) A21013.斐波那契数列 2.2爬楼梯 A想要爬上一层楼梯 楼梯共有n格台阶 A可以走一格或两格 请帮A想一想 A要爬上第n格有着多少种方法呢? 这种题目也是一道动态规划的经典例题 可惜许多初学者都不会做这样的题目 根据第一题的经验 我们一起来做一下这道题目. 首先 我们以假设的方式去找出它的递推方法 我们假设要走到第5格台阶 那么唯一能走到的便只有两种方法: 1.从第4格走到第5格. 2.从第3格走到第5格. 这可以说明一件事 便是一个台阶和它前两个台阶有着关联(无后效性) 那么 我们也就可以推测 上到第n格台阶的方案数就是上到前两格台阶的方案数 这样 我们就可以列出公式: F(0)=0F(1)=1F(2)=2F(N)=F(N−1)+F(N−2);N≥3F(0) = 0\\ F(1) = 1\\ F(2)= 2\\ F(N) = F(N - 1) + F(N - 2);\\ N\geq3 F(0)=0F(1)=1F(2)=2F(N)=F(N−1)+F(N−2);N≥3 (像不像一支宝剑👍👍👍) 注意要处理边界化问题 其非常重要. 观看代码 代码解析 此程序的的核心代码如下: 大家可能注意到了 这段代码和原来的斐波那契数列的核心代码是一模一样的 它的状态转移方程也同样是: 其实爬楼梯这道题就是斐波那契数列的进阶版 在我们刚刚列公式时就已经可以看出 它的公式只比斐波那契多出了F(2)=2F(2) = 2F(2)=2而已 所以在这里我们不多讲述. 模板代码 做题时间 A30913.爬楼梯 A30652.【递归】【入门】爬楼梯 U36981.上楼梯 2.3数字金字塔 顺推法 有一座用数字做成的金字塔 金字塔的第nnn层有着nnn个数字 从最顶部开始 请你找出一条路线 可以使此路的权值达到最大 样例如下: 答案: 在这道题中 许多码农会被其独特的输入给震惊到 但不要怕 我们一起以解决动态规划的步骤与去两道题带给我们的经验一起做一做. 在这里 我们可以想到从第一层开始 一层一层的推下去 这样做的方法也可以达到我们想要的目标 这种方法叫做顺推法 同时 由于我们在往下走时只能选择两条路 像是从第一层的1向第二层走时 我们就只可以挑选2或是3 在每一层中 我们都需要挑选一个数字 从而达到最大权值 这才是问题所在. 那么 如果从顶层开始计算 我们就要以下一层的某个阶段去看 还需要进行记忆化和最优子结构 在每个阶段中都需要记录其线路的最大权值 我们来举个例子: 就以上面的数字金字塔来说 我们将目光投向第2层 这其中有着一个权值2及3 当线路到达了2时 这条线路的总权值为1 + 2 = 3 而线路经过3时 线路的总权值为1 + 3 = 4 这时 我们就已经将总权值给记录下来了 在记录下来后 我们再去看下一层的权值. 以这样的方式 我们便可以列出公式 就是将自己上面最大的一个总权值加上自己的权值. 我们以dp[i][j]dp[i][j]dp[i][j]表示每个状态 其中iii表示层数 jjj表示列数(第iii行的第jjj个数字)w[i][j]w[i][j]w[i][j]表示此阶段的权值 我们列出下面公式: dp[i][j]=max(dp[i−1][j],dp[i−1][j−1],dp[i−1][j+1])+w[i][j]dp[1][1]=w[1][1]dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - 1],dp[i - 1][j + 1]) + w[i][j]\\ dp[1][1] = w[1][1] dp[i][j]=max(dp[i−1][j],dp[i−1][j−1],dp[i−1][j+1])+w[i][j]dp[1][1]=w[1][1] 你发现什么了吗? 没错 就是我们的处理边界问题(不要忘记哦). 在列出公式后 我们写出程序: 观看代码 代码讲解 这篇程序的核心代码如下: 在forforfor循环中的一句代码便是整篇程序中的状态转移方程 此方程的意义在上面已经讲述过 因此We are talk anymore~~~~~~ 逆推法 请不要以为这就结束了 我们其实还有一种方法去解决此问题 我们将其称之为倒推法. 倒推法的思想是从最底部开始推起 以最优子结构和记忆化的方式一直到第1层 这样有一个好处就是在最后找到最大总权值时不用判断哪个更大 只需将dp[1][1]dp[1][1]dp[1][1]输出就好了 这就是好处 但坏处就是在开始编写时 我们需要把dp[n][i]dp[n][i]dp[n][i]都添加上w[n][i]w[n][i]w[n][i]的权值 这样才可以进行第n−1n - 1n−1层的推算. 而它的公式与上一个顺推法有些许不同 由于它是从下一直往上推断 所以其阶段是以上面的权值判断下方的线路总权值(没听懂的同学可以借助公式理解此话). 以nnn表示为层级数 dp[i][j]dp[i][j]dp[i][j]表示每个状态 其中iii表示层数 jjj表示列数(第iii行的第jjj个数字) w[i][j]w[i][j]w[i][j]表示此阶段的权值 我们将公式列出: dp[i][j]=max(dp[i+1][j],dp[i+1][j+1],dp[i+1][j−1])+w[i][j]dp[n][j]=w[n][j]dp[i][j] = max(dp[i + 1][j],dp[i + 1][j +1],dp[i + 1][j - 1]) + w[i][j] \\ dp[n][j] = w[n][j] dp[i][j]=max(dp[i+1][j],dp[i+1][j+1],dp[i+1][j−1])+w[i][j]dp[n][j]=w[n][j] 你发现了吗 我们这次列出的公式还是进行了边界化处理 所以说在列出公式时 我们应该敏锐的察觉到处理边界这件事情. 观看程序 在列出公式之后 我们列出程序: 代码讲解 代码核心: 你应该看出来了 在这一次 我们罗列了两个forforfor循环作为程序核心 这两步代码在上面的意义已经讲述 因此 We are talk anymore too. 模板代码 数学金字塔(顺推法): 数字金字塔(逆推法): 练习时间 A627.数字三角形 A7930.数字金字塔 A22681.数字三角形 Number Triangles 2.4最长公共子序列 给定两个字符串 求出这两个字符串的最长公共子序列LCS 这里的子序列不需要连续 但一定要保持顺序. 样例: 这道题与前面的题目难度有一些不同 我们顺着思路 一起来做一做这道题目. 我们以递推的方式去想一想 考察一下两个字符串的前缀 根据每次都一步一步的去判断最长公共子序列的方式我们便可以推出状态的表示方法为A[1=>i]andB[1=>j]A[1 => i] and B[1 => j]A[1=>i]andB[1=>j](这里指的是从a[1]a[1]a[1]至a[i]a[i]a[i] b[1]b[1]b[1]至b[i]b[i]b[i] 及AAA的前iii个字符和BBB的前jjj个字符) 以这样的方式去定义每个阶段是目前的题目是最好的解决方法. 但如果someone问我为什么我们要这么定义的话我还真回答不上来 但别担心 只要这么定义就好了 只是将其认知为这样的方法更好用就ok了 但在我观看完Macw07老师的一文讲清动态规划的本质后 发现这种问题还会有理由 在这里 我简要阐述一下 Macw07老师的观点(作者本人非常认同老师的想法 小生不才 若想学习到更多知识 可以点击链接去观看一下Macw07老师的原话): Q1:为什么要将每个阶段定义为A[1=>I]A[1 => I]A[1=>I]和B[1=>J]B[1 => J]B[1=>J] R1:递归思想的启发 * 如同上楼梯一般 在我们知道了A[i=>i−1]andB[j=>j−1]A[i => i - 1]andB[j =>j - 1]A[i=>i−1]andB[j=>j−1]的最长公共子序列后 那我们也可以根据A[i−1]andB[j−1]A[i - 1]andB[j - 1]A[i−1]andB[j−1]的关系去判断A[1=>i]andb[1=>j]A[1 => i]andb[1 => j]A[1=>i]andb[1=>j]的最长公共子序列. * 将整个字符串已不断增加前缀的方式去判断LCSLCSLCS是一个很好的方法. R2:易于表示动态变化 * 算法只需表示当前情况 不必考虑未来. * 动态规划的核心避免重复计算 通过子问题的答案推出最终答案. Q2:为何选择子字符串的前缀 R1:动态规划的特性 动态规划从最小的问题开始求解 而前缀是自然的分解方式: * 对于 A[1=>i]andB[1=>j]A[1 => i]and B[1 => j]A[1=>i]andB[1=>j] 最小的子问题是 i=0orj=0i=0 or j=0i=0orj=0 即两个字符串中任意一个为空时 LCSLCSLCS长度为 0 * 从空字符串到完整字符串的逐步扩展非常符合动态规划的思路. R2:逐步拓展问题规模 通过管理问题规模 我们可以更好的向前发展 在一个二维数组dp[i][j]dp[i][j]dp[i][j]之中 我们可以以小问题构造出大问题: * 如果我们从其他部分(如整个字符串开始下手的话) 我们将会碰到麻烦 出现问题 不能很好的去解决问题 但利用前缀的方式 可以只判断最后一个字符 再结合原来的最长公共子序列结果 就能够解决当前的子问题. 以上就是全部理由 在结束观看之后 细心的同学已经可以推出此问题的公式(状态转移方程)了 但可能大家没有做到......don't worry 在这一步 我们开始探索公式. 我们考虑多种情况 一步步的推算公式. SCENE1:A[I−1]==B[J−1]A[I - 1] == B[J - 1]A[I−1]==B[J−1] 在这里 因为两个字符相同 所以它们可以加入最长公共子序列 这时在dp动态数组上 此次dp[i][j]=dp[i−1][j−1]+1dp[i][j] = dp[i - 1][j - 1] + 1dp[i][j]=dp[i−1][j−1]+1(注:这里的 dp[i][j]dp[i][j]dp[i][j] 表示字符串 AAA 的前 iii 个字符和字符串 BBB 的前 jjj 个字符的最长公共子序列的长度. SCENE2:A[I−1]!=B[J−1]A[I - 1] != B[J - 1]A[I−1]!=B[J−1] 因为两个字符不相同 我们不可以将它们加入最长公共子序列 这是在dp动态数组上 此次dp动态数组需要判断前一个LCSLCSLCS的大小 所以在这里 我们的dp数组只能决定是排除AAA的最后一个字符还是排除BBB的最后一个字符 以找到更长的公共子序列 因此可得dp[i][j]=max(dp[i−1][j],dp[i][j−1])dp[i][j] = max(dp[i - 1][j],dp[i][j - 1])dp[i][j]=max(dp[i−1][j],dp[i][j−1]). dp[i−1][j]dp[i-1][j]dp[i−1][j] 表示排除AAA的最后一个字符后 字符串AAA的前i−1i-1i−1个字符和字符串BBB的前jjj个字符的最长公共子序列的长度. dp[i][j−1]dp[i][j-1]dp[i][j−1]表示排除BBB的最后一个字符后 字符串AAA的前iii个字符和字符串BBB的前j−1j-1j−1个字符的最长公共子序列的长度. 我们以这种方式得到最长公共子序列的最大值后即可输出. 观看代码 此代码不做讲解 自行理解. 2.6最长上升子序列 给点一个数列A 请你在此数列中找出一个最大的最长上升子序列(意为非递减序列). 样例: 这道题的难度相较于其文章前面的题型都提升了一定的难度 让我们一起来解一下这道题. 我们以拆分出子问题的方式去做出此题 以每个元素做单位 将这个元素前面看成此数列的一个子串 逐步的去分析最长上升子序列的长度. 我们以这样的方式去进行思考之后就会发现 每一个元素似乎都有可能变成最长上升子序列的最后一个元素 包括第一个也不例外 所以 在输出答案的时候 我们就要判断每一个元素前面的最长上升子序列的长度的最大值 同时 所有的元素都可以自成一个最长上升子序列 所以 在考虑边界化的时候 我们就要将所有的元素的初始值都化为1. 对于每个子串的最长上升子序列 我们判断其元素为末尾时 是否可以添加到前面的字串的最长上升子序列里 此时就需要判断此元素是否严格递增于前面的最长上升子序列 还需要判断总最长上升子序列的长度取决于以此元素为结尾的子串的最长上升子序列还是前面的子串的最长上升子序列加上现在的元素的长度 只要判断好这些 我们自然能够写出代码. 观看代码 此代码不做讲解 大家自行观看. 2.7背包问题 请大家去看一看我之前写过的一篇帖子 链接如下: 关于动态规划(背包问题)讲解 在这里 我们不做讲解. 刷题时间 A21154.物品选取 A22579.部分背包问题 A628.钞票问题 在这里面 我们讲解了七种不同的动态规划题目 在很多的 C++ 竞赛之中 我们总是可以发现动态规划的身影 其算法难度非常高 需要每位同学都多加练习 才能熟练的掌握此算法的核心. 后话 对于动态规划 我认为还是要去进行更多的刷题 在做多题目过后就会找到规律 很多题目都可以用公式解决 很多题目实际上都是有迹可循的 我也可以理解每个人对待这类算法的感觉 动态规划这个算法的核心确实较为难懂 但只要多加练习 每个人都可以学会并且运用动态规划. 以上就是我们本篇文章的主要内容了 希望看到这里的同学都可以为这篇文章点一个小赞(只需要动一下鼠标就能为我带来很大的鼓励 求求了). 在此鸣谢: Macw07老师的精选文章一文讲清动态规划的本质 此文章对这篇动态规划讲解有着很高的帮助and帮我理清了文章结构 其内部参考文献非常有干货 列在文章末尾. Ysjt | 深 ™老师的精选文章#创作计划#动态规划【C++优质版】也对此动态规划讲解文章有着很大帮助 为我创作这篇帖子提供了好的思路. 还有很多位ACGO社区的小伙伴们的帖子也为我提供了很多的价值 在此感谢每一个人的帮助. 参考文献: GeeksforGeeks. (n.d.). Dynamic Programming. Retrieved Gupta, R. (2023). Mastering Dynamic Programming: A Step-by-Step Guide. Medium. Retrieved Stanford University. (n.d.). Dynamic Programming. Retrieved Stanford University. (2013). Dynamic Programming Lecture Notes (CS161). Retrieved Bellman, R. (1966). Dynamic Programming. Science, 153(3731), 34–37. doi 【算法】动态规划 一文写清楚什么是动态规划 【动态规划】动态规划算法基本概念,原理应用和示例代码
第三十节:方源!你又来抢? 几乎与此同时,在另一边。 “父亲母亲大人,事情基本就是这样子的。”方正站在笔直,口中恭谨地道。 堂中,方源的舅父古月冻土,以及舅母坐在宽背大椅上,均皱着眉头。 舅母咬牙切齿,一边为方正抱打不平,一边又有些幸灾乐祸:“方源这个小兔崽子,他勒索其他人也就罢了,想不到他连亲弟弟都不放过。竟然如此绝情绝义!不过他这次放下如此大错,估计不久后就要被学堂开除了。” “好了,你少说几句吧。”舅父叹了一口气,又对方正道,“你失了元石,不过也只是一块,不要紧。下去到账房那里再领一枚,这里没有你的事,你下去好好修行。以你的甲等资质,成为第一个中阶蛊师,极有可能。你不要浪费你的天资,我和母亲都期待着你成为第一呢。” “是,父亲母亲,孩儿告退了。”方正满怀心事地退了下去。 他暗暗思考:“哥哥今天堵住学堂大门,抢了所有学员。造成了如此恶劣的影响,恐怕真的要被开除了。到那个时候,我该不该为他求情呢?” 他脑海中有两个声音在对峙。 一个声音说道:“不用求情,他连你这个亲弟弟的元石都要抢。就算被开除,也是他咎由自取。天作孽尤可活,自作孽不可活啊!” 另一个声音则道:“他可是你的亲哥哥,长着相似的脸,血浓于水啊。好吧,即便是你不认他,也得求情。你若不求情,外人会怎么看你呢,恐怕会觉得你无情无义吧。” 看着方正离开了厅堂,舅母忍耐不住,高兴地道:“老爷,我们断了方源的生活费。这个小兔崽子忍耐不住,这次犯下了大错了!居然敢堵在学堂大门当众斗殴,还勒索,这是挑衅学堂家老啊。我看他被开除,是八九不离十的事情了。” 舅父却摇头:“你把事情想得太简单了。方源不会被开除的,甚至可能任何惩罚都没有。” “为什么?”舅母大为不解。 舅父冷笑一声:“斗殴打架是受到鼓励的,只要不出严重后果。这次斗殴,有学员死了吗?没有。” 舅母有些不服“老爷怎么知道就没有?打斗这种事情,总是有意外发生的。” 舅父闭上双眼,倚在靠背上:“你这婆娘,就是天真。你真当学堂家老是摆设么?侍卫什么时候出动的?他们在最后出动,这就说明场面一直在控制之下。若是有人重伤,他们早就冲出来了,不会等到最后的。” “你不是蛊师,不会明白,学堂里并不禁止学员之间的争斗,甚至保持鼓励态度。打斗越多,对战斗就越有帮助。有的学员,甚至还能打出铁交情。长辈们也不会追究这个事情。这已经是惯例了。若谁要护犊子出头,谁就坏了这规矩。” 舅母听得傻眼,不甘心地道:“那方源抢了这么一大笔元石,什么屁事都没有?就这样放过他了?有了这么一大笔元石,对他的修行帮助太大了。” 舅父睁开双眼,满脸的阴霾:“还能怎么办?难道你让我过去亲手把他的元石抢过来吗?不过此事也不是不可以利用。方源连弟弟方正都抢劫勒索,这就是他的败笔。方正是甲等资质,总有一天会比他强大,我们就利用这件事情,分化挑拨方正。让方正彻底远离方源,为我们所用!”…, 就这样,过去了三天。 方源抢劫勒索的风波,没有扩散,没有闹大,反而有了渐渐平息的趋势。 没有什么长辈破坏规矩,来亲自找方源的麻烦,学堂家老自然也睁一只眼闭一只眼。 虽然这期间,有过两三个少年,不忿元石被强抢的结果,重新挑战了方源。 但在方源轻而易举地将他们打趴下后,所有人都意识,自己若是不勤学苦练拳脚,是赢不了方源的。 在这些少年中,刮起了一阵苦练拳脚基本功的热潮。 拳脚教头乐坏了,他从未见过有这么一届的学员,对基本拳脚有如此的热情和执着。以前他教导的时候,学员们无不是兴趣缺缺,哈欠连天。如今却是炯炯有神,不断求教。 学堂家老特意来询问他这边的情况。 拳脚教头带着兴奋的语气,禀告道:“学员们表现出了出人意料的热情,转变太大了。只是其中有一个叫做方源的,还是和以前一样的懒散。” 学堂家老笑起来,拍拍他的肩膀道:“你所说的这个学员,就是导致其他人转变的源头啊。” 拳脚教头诧异不解。 当然变化远不止这些。 经此一事,方源毫无疑问地成了全体学员的公敌,被所有人敌视和孤立。 再没有人跟他讲一句话,没有人和他打一声招呼。 少年们无不卯足了劲,私底下勤学苦练基础拳脚。在身后长辈们的鼓励和授意下,他们已经决定,务必要亲手把场子找回来。 平静的表面下,暗流在汹涌。 又四天过去。 学堂家老再次分发元石补贴,方源也到了再次动手的时候。 “方源,你抢一次不够,还想抢我们的元石?!”学员们被方源又堵在门口,惊怒交加。 方源站在大门中央,束手在背后,表情冷酷,语气平淡:“每人一块元石,就可免受皮肉之苦。” “方源,你欺人太甚。我要向你挑战!”古月漠北怒吼一声,率先战了出来。 “哦?”方源眉角微微扬起。 漠北举起双拳冲了过去,几个回合后,他昏倒在地。 “漠北你太没用了,看我的!”古月赤城大吼一声,冲向方源。 攻防转换了一下,他就步入了漠北的后尘。 方源的战斗经验是他们的千万倍还不止,虽然刚刚修行,但每一份力量均是用得恰到好处。 这群少年才刚刚起步,若一拥而上,还可能带给他点小小的麻烦。但是这样一个个上来挑战,比第一次抢劫还要轻松。 一刻钟之后,他带着一个鼓鼓囊囊的钱袋子,悠然而去。留下一地的少年,有的昏迷一动不动,有的抱着肚子或者捂着裤裆,在呻吟嚎叫。 “兄弟们,快来收拾场子了。”侍卫们呼喊着,纷纷涌了上去。
第二十九节:不择手段 “把酒都放到床下。”方源指挥着客栈的四个伙计。 他们每人手中都提着数坛青竹酒。这是方源勒索了其他学员之后,就来到客栈,一口气又购买了二十坛。 每坛两块元石,方源为了酒虫,一下子砸出四十块元石。 刚刚鼓起来的钱袋,瞬间就瘪了一半,只剩下三十九块元石。不过也算是物有所值,这些酒能够支撑酒虫一段较长的时间了。 “好咧。”伙计们连忙应道,对蛊师他们不敢有丝毫的不敬。 再加上方源购买了这么多的酒,可以说是客栈的大顾客了。在掌柜面前轻轻一句话,就能让这些伙计轻而易举地丢掉工作。 伙计们走后,方源关上宿舍房门,盘坐在床榻上。 已经是夜里了。 天空中月明星稀,夜风中流淌着暗香。 房间里没有点灯,方源抚平心绪,心神投入元海。 元海波涛生灭,海水散发着青铜色的光泽。每一股海水,都是一转蛊师特有的青铜真元。 元海只达到整个空窍的四成四,这是方源丙等资质的局限。 空窍四壁,是一层薄薄的白色光膜,支撑又包裹着空窍。 在元海上空,空无一物。春秋蝉在方源的调动下,已经再次隐藏,在沉睡中修养去了。 倒是真元海面上,漂浮着一只白胖可爱的酒虫。 它在真元海水中肆意撒欢,有时候潜游入海,有时候摆头甩尾,溅点水滴。 方源念头一动,酒虫顿时响应,停止了嬉戏,团成一个汤圆形状,地漂浮起来,升到空窍中央地带,脱离了青铜海面。 “去。”方源调动一成真元,形成一股细流,逆冲而上,悉数灌注到酒虫体内。 酒虫早已经被他炼化,因此来者不拒,把这股真元全数吸收进身体里面。 顿时,四成四的海面,就下降了一小截。 将真元化为动力,团成一团的酒虫开始绽放出白色的毫光。毫光中氤氲的酒气渐渐生出,最终汇成一团淡白色的酒雾。 酒雾奇妙,也不飘散,而是笼罩在酒虫的身边。 “起。”方源念头一动,再调动出一成真元。 青铜海水扑上酒雾,酒雾融入海水当中,越来越少,最终一丝都不剩。而那一成青铜真元,也凭空消失了一般体积,只剩下了半成。 但这半成真元,却比先前的更加凝练。原本的真元,是翠绿色,散发着铜的光泽。现在的这股真元,虽然同样有一种铜的色泽,但是绿色却更深一层,是苍绿色。 苍绿色真元,是一转中阶蛊师才具备的真元。酒虫的作用,就是凝练真元,将蛊师的真元提升一个小境界! 蛊师有九大境界,从低到高分外一转、二转,直至九转。每一大境界中又细分四个小境界,分别是初阶、中阶、高阶和巅峰。 方源此时只是一转初阶蛊师,但是在酒虫的帮助下,却有了半成的一转中阶的蛊师真元! “我要凝练出半成中阶真元,就得消耗两成初阶真元。我要将空窍中四成四的元海,都转换成中阶真元,就得耗费近十八成的初阶真元。要想尽快地达成这个目标,就得借助元石了。” 想到这里,方源睁开双眼,从袋子里掏出一颗鸭蛋大小的完整元石。 元石是一种椭圆体半透明的石块,灰白色,随着石内天然真元不断损耗,它的体型也会不断缩小。…, 他右手慢慢合拢,将元石紧握在手心中,汲取着里面的天然真元,不断地补充到自己的空窍之中。 空窍中原本下降的海面,随之缓慢地上升起来。 元石就是拿来用的,方源一点也不吝啬,更不会节省。 “我没有靠山,没有亲朋好友的资助,所以只能靠抢劫勒索。今天只是第一次,以后每隔七天学堂发放元石补贴的时候,我就继续堵住学堂大门口。” 抢劫勒索一次,怎么能满足方源的胃口。蛊师修行,元石最缺少不得了。 至于此次抢劫的影响,方源一点都不担心。 这个世界,不同于地球。 在地球上,学校往往都禁止斗殴,以稳定和谐为主。但是这个世界,战斗是主题。 不管是蛊师还是凡人,都要为了生存而战斗。有时候是和恐怖的野兽搏斗,有时候是拼战恶劣狂暴的天气,有时候为了争夺资源,和其他蛊师交战。 因此有节制的打架斗殴,反而被人们所鼓励和提倡。 从小到大,从打架斗殴到生死激战,这是大多数人类的生活写照。 这个世界面积广大无边,单单方源生活的南疆,就比七八个地球的总面积还要广阔。这里的生活环境十分恶劣,人类通常以家族的形式,建造山寨,龟缩一隅。 每隔一段时间,都有兽潮,或者是极恶天气,来冲击山寨。 蛊师成为守护山寨的中坚力量,每年减员的状况都比较严重。 生活需要有强大战斗意志的人。家族需要战斗蛊师,从不嫌多。 况且,方源出手是有分寸的。 他从不攻击下巴,因为这会容易造成颅底骨折,容易出人命。也不攻击别人的后脑勺,打斗的时候,他没有用拳,也没有用肘,或手指戳,而是用的手掌。踢脚的次数也屈指可数。 倒下去的学员,没有重伤,顶多是轻伤。 方源并不嗜杀,他只是把杀当做一种手段。 每次动手,他都有明确的目标。什么样的手段,是能让他达到目标的捷径,他就用哪一个。 换句话说,他行事不择手段。 …… 阴云漂浮过来,遮盖住月光。 一层阴影笼罩住古月山寨。 更夫梆、梆、梆地敲着梆子,提示人们已经是深夜,小心火烛,小心防范野兽袭击,以及可能潜入进来的外寨蛊师。 山寨中还有不少灯火未熄。 在赤之分家,古月赤练的书房中,灯火明亮。 这个位高权重的老人,正以一种温和的语气,慰问自己的孙子古月赤城:“听说你今天被那方源打了?” 古月赤城右眼黑了一圈,他气愤地道:“是的,爷爷。方源那个家伙,只是区区丙等,竟然如此嚣张。他把我们都堵在门口,不顾同窗的情谊,抢劫我们的元石。更可气的是,学堂方面居然睁一只眼闭一只眼。直到方源扬长而去,侍卫们才赶过来。爷爷,这次您可得帮孙儿出这口恶气啊!” 古月赤练却摇摇头:“这是你们小辈之间的事情。你也只不过被勒索了区区一块元石,更没有受到重伤,爷爷我师出无名啊。况且就算你被打成重伤,爷爷也不会为你出头的,你明白为什么吗?” 古月赤城愣住了,他苦苦思索,半晌口中迟疑地道:“爷爷,我有些懂你的意思。您是希望**自己的力量,找回场子是吗?”…, “你只是理解了一个方面。”古月赤练点点头,“你要记住,你不仅仅只代表个人,还代表我们赤之分脉的形象。我们赤家和漠家对峙多年,你的一举一动就代表着赤家未来的希望。爷爷可以暗地里帮助你,但是你必须竖立起自强自立的形象,否则支持我们的家老们看不到未来的希望,都会舍我们赤家而去。” 说到这里,古月赤练叹息一声:“这也是为什么,爷爷要帮助你作弊,让你冒充乙等资质的原因。我们赤家需要一个强有力的继承人,才能让那些支持我们的人坚持下去。” 古月赤城这才恍然:“爷爷,孙儿懂了。” 古月赤练摇头:“光懂还没有用,要去努力奋发。方源这件事是个小麻烦,你接下来须勤学苦练基本拳脚,把场子找回来。同时,也不要忘了,努力修行,早日晋升中阶。最好是夺得班头的位置,这是莫大的荣耀,对我们赤家也是一种帮助。” “是的,爷爷。”古月赤城大声应和。 “呵呵呵,这股精神气才像我们赤脉的继承人模样。孙儿你好好努力,爷爷为尽全力帮助你的。”
第二十八节:无本生意! “为什么要阻止?”学堂家老眉头扬起,笑了起来。他伸出手指,遥遥指着方源,又道,“此子已经掌控全局,下手极有分寸。你们看他砍人脖颈,都只劈砍左右侧,从不砍人的后脑后颈。这是因为他也知道,砍左右侧脖颈,能让人当场昏厥。砍后脑后颈却有致死的可能,所以就主动放弃了这样的攻击方式。” “你们看这些倒在地上的少年,哪一个是受了重伤的?没有!就算有重伤,又怎么样,凭借我们学堂中的治疗蛊师,还不能治好这种跌打损伤么?” “可是家老大人,此子实在太嚣张了。就堵在大门口,根本就不把我们这些侍卫放在眼里。我们被无视也就罢了,关键是族人会怎么看待我们学堂呢。竟然任由一名小小的丙等学员大闹学堂,而不去阻拦。事情传出去,对大人您的名誉恐怕也有影响。”侍卫眯着眼睛,觐言道。 “哼,是你们觉得被这小子无视,自身的尊严受到了冒犯了吧?”学堂家老不悦,冷笑一声,犀利如刃的目光扫视下去,众侍卫都纷纷低下了头,齐道不敢。 “斗殴有什么不好的?只要不出人命,更能激发出学员们的竞争思想,锤炼他们的战斗意志。这样的斗殴我们若要禁止,就是扼杀了学员们的战斗激情!往届难道就没有斗殴吗,每一届都有,而且发生的很频繁。只是以往都是在后半年,少年们都掌握了一些战斗手段,有了力量就忍不住技痒,正好又是好斗的年龄。这些人你们以前为什么不阻止呢?”学堂家老寒声质问。 “可能是因为往届的斗争,都是单个对战,很少有这样大的规模吧。不过这个方源也实在太能闹腾了!”侍卫头目答道。 “不不不。”学堂家老摇头,“这是因为你们不敢阻止。因为后半年之后,蛊师就有了超越凡人的战斗力量,你们区区凡人之躯,拿什么阻止?现在你们要阻止方源,可能是觉得他才刚刚修行,力量不足。又觉得他无视了你们,尊严被冒犯。可是你们要记住,这些学员姓的都是古月!是我古月一族的族人,是你们的主子!哪怕年龄再小,力量再薄弱,也是你们的主子!” 家老语调陡然转厉。 “你们不姓古月,算什么东西?看你们忠心,所以给个侍卫的位置,奖励你们一些甜头。但实质上,你们还是奴仆。只是奴仆罢了!一个奴仆,也敢妄议主子,管主子的事情?”家老脸色阴沉如水。 “属下不是这个意思,不是这个意思啊!” “属下不敢!属下不敢!” 侍卫们均吓得面如土色,纷纷跪到地上,叩头不止。 学堂家老冷哼一声,指着刚刚说方源太闹腾的侍卫头目:“你妄议主子,革去头领之职。” 顿了一顿,家老又对其他人道:“半个月后,重新考核新的头领。” 其他侍卫顿时双眼发亮,心中陡然振奋。 “侍卫头目,每个月能多拿半块元石!” “能当上头目,就是人上之人呐。除了主子们,看其他人还敢给我脸色?” “我若是当上了这头目,该有多风光啊……” “好了,都杵在这里干什么?还不滚下去,等斗殴完了,清扫场地去!”家老喝斥道。 “是,是,是。” “属下等告退!” 侍卫们诚惶诚恐地下了楼。走在楼梯上,不知谁脚步一乱,跌倒了下去。顿时又牵连出一连串的跌撞倒地之声。…, 不过摄于学堂家老的威势,侍卫们都憋红了脸,辛苦地忍住,没有发出一点其他的杂音。 “哼,奴才就像是狗,每隔一段时间浑身骨头就痒了,非得敲打一下,让他们知道敬畏。再抛出些蝇头小利的狗骨头,让他们狗咬狗,争相给我族卖命。所谓一手大棒,一手萝卜,这就是上位者的不二法门。”学堂家老听着楼下的动静,心中得意地冷笑一声,又转过头,透过窗户,看向学堂大门口。 门口处的地上,又新添了十多个学员。 方源昂首傲立着,对面有三位少女背靠着背,缩在一旁。 “你,你,你别过来!” “再过来,我们就用月刃射你了!!” 她们手中都浮现出一层水蓝的光辉,看来被逼急了,居然调用真元催动了月光蛊。 方源身躯仍旧是寻常的十五岁少年,若她们发出月刃攻击,还真的不太好办。 不过他并不害怕,不屑地冷笑着,向少女们步步逼近:“你们胆子真大呀,忘记学堂的规矩了吗?学堂内不允许使用蛊虫进行打斗,否则就要被开除。你们要想被开除,就尽管出手吧。” “这……”少女们迟疑了。 “的确有这条规定。”她们手中的蓝光渐渐消散。 方源眼中厉芒一闪,瞅准了这个破绽,猛地冲上前去,手掌挥舞,辣手摧花,砰砰砍昏两个。 还剩一个,斗志沦丧,双膝一软,就瘫倒在地上。她哭得梨花带雨,向方源哀求:“方源你不要过来,求求你放过我吧。” 方源居高临下,俯视着少女,冷酷的声音传来:“一块元石。” 少女娇躯一颤,恍然大悟,连忙打开钱袋子,取出三四块元石,捧在手心,举向方源:“你不要打我,我都给你,我都给你!” 方源面无表情,慢慢地探出右手,伸出食指和拇指,从少女的手中轻轻地捏出一块元石。 少女娇躯颤抖不止,方源的手带着少年特有的苍白纤细,但是在她眼中,却如魔爪般狰狞可怖。 “我早就说过,只取一块元石。”方源顿了一顿,平淡地道,“你可以走了。” 少女怔怔地看了方源好一会儿,这才想起身,但是她四肢发软,站都站不起来。 她的心中已经充满了对方源的恐惧,害怕得一点力气都使不出来。 学堂家老看到这一幕,不禁摇摇头。 借此良机发现学员们各自的战斗天赋,也是他观察的目的之一。 这个瘫倒在地的少女虽然有丙等资质,但是这样的心性,只能作为后勤蛊师,在家族里从事生产,别指望她上战场了。 “倒是这个方源……”学堂家老摩挲着下巴,双眼眯着,闪过精光。 他觉得这个方源真有意思,不仅有战斗才情,更知道分寸。只勒索一块元石,并未超出他心中的底线。但若是方源要勒索两块,那就过分了,他就得出面干涉。 学堂中的补贴,本来就只有三块。被勒索一块,无伤大雅。但是要勒索去两块,那还发什么补贴呢?干脆直接都送给方源好了。 很快,最后一批学员也到了。他们只有五人,其中就有方源的孪生弟弟。 “哥哥,你怎么能这样?!你胆子也太大了,竟然直接在大门口殴打同窗,勒索他们的元石!”古月方正看得目瞪口呆,他简直不敢相信眼前的景象,“我劝你快快向学堂家老主动认错,否则你闹出这么大的事情,可不是开玩笑的,说不定就要被开除!”…, 方源笑了笑:“你说的很有道理。” 方正舒了一口气,看样子哥哥还不是彻底疯了,能听得了劝说就好。 但很快他就听到方源又道:“每人一块元石。” “什么?”方正诧异地张大了嘴,“就连我也要交吗?” “我亲爱的弟弟,你当然可以不交。”方源语气很温和,“但是下场就会和他们一样。” 方源指了指倒在地上的,或是昏迷,或是呻吟的少年们。 “连亲弟弟都不放过啊!” “这个方源疯了,太凶残了……” “我们打不过他,好汉不吃眼前亏,还是先交了渡过眼前难关。” “没错,先交了元石,反正只交一块,回去后汇报给师长,有他好受的!” 有前车之鉴的情况下,剩下的少年们都带着不忿的眼神,乖乖地接受了方源的勒索。 “等一等。”他们正要离开,却被方源叫住。 “方源,你难道想出尔反尔吗?”少年们顿时紧张起来。 方源对着一地的少年们,,轻轻地叹息一声:“难道你们会觉得,我会蹲下来一个个搜他们的身吗?” 少年们楞了一下,这才纷纷恍然,一个个涨红了脸,犹犹豫豫地站在原地。 方源盯着他们,眯起了眼睛。 眼缝中寒光一闪,五位少年顿时一阵心悸,同时感到头皮发麻。 “好了,方源,我们懂你的意思了。” “帮你这一次就是了。” 迫于方源的淫威,他们只好一个个低下头,搜出地上少年们的钱袋,并从中取出一块元石。然后汇集到一起,交给方源。 全班共有五十七人,每人被勒索抢劫一块元石,方源的手中就有了五十六块。 他之前原本有二十块,但是花了十块,买了几坛青竹酒。再加上他自己的补贴和奖励,如今手头上,就有七十九块元石。 “抢劫勒索这种无本生意,才是最赚钱的啊。”方源将陡然暴涨的钱袋子揣进怀中,大摇大摆地走了。 留下一地的少年们,在地上挺尸。 还有几位少年,方正就夹杂在其中,呆呆地看着方源渐渐离去的背影。 “快上。” “都速度点,把小主子们都妥善安排好了。” “治疗蛊师呢,在哪里,快请过来!” 侍卫们大呼小叫,一拥而上,争相表现着。为了一个小小的头目之位,他们干劲十足。
可以有人翻译一下吗?
难的怎么想都想不出来
共33447条