- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RooksPlacement 在一个的棋盘上,要求放置个车,使得不存在一个车同时能被两个车攻击。 求方案数模后的值。 首先我们观察什么情况下会出现一个车同时被两个车攻击,很明显当某一行或某一列车的个数超过2时,会存在车同时被两个车攻击。并且如果出现某一个车的同行同列都存在别的车,那么也是不行的。注意到每行每行最多只能放两个车,所以考虑用动态规划解决本题。 用状态表示考虑了前行、已经放置了个车时的方案数,其中表示前行中已经放了一个车并且还能再放车的列数、表示没法再放车的列数。用表示没有放过车的列数,很显然。我们考虑向后转移,共有四种转移。 第行不放任何车,那么将加上。 第行放一个车,并且选择没有放过车的某一列放,那么将加上。 第行放一个车,并且选择已经放过一个车但还能再放车的某一列放,那么将加上。 第行放两个车,那么将加上。 整个动态规划算法的时间复杂度为,空间复杂度通过滚动数组可以优化到。 Two Subsequences 给定个长度为的01串,将要这个串分为两组和, 每组内还按照原来的顺序排列。定义为中的串按顺序排列,并且相邻两项会尽可能利用公共部分, 例如、,同时定义。 求一个分组方案,使得最小。 观察的计算方法,能发现是将中最后一个串拼上去,因为所有串长度都是,因此只需要考虑和前一个串的公共部分。设为最大的满足的后缀和的前缀相等,由于,不难想到用位运算加速,这样求可以只要的时间,进而可以观察出。 然后回到原题要求的东西,很容易想到用状态表示一个子序列以结尾、另一个以结尾时的最优解,这样时间复杂度为。注意到这里状态数就是二维的,优化状态通常难度很大,因此考虑重新设计状态。 观察一下可以发现,分成两组其实就是将分成若干段,编号为奇数的段属于一组、编号为偶数的段属于另外一组,可以先累加,然后只需要考虑分隔的地方对代价的改变量。用表示前个数分为若干段、并且在和处分开时的最优代价,不难写出如下的转移方程: 虽然看上去暴力转移的话,时间复杂度和之前的算法一样,但是状态数减少后优化时间复杂度就成为了可能。注意到并且,就想到枚举的值。用表示当满足满足的后位为时,的最小值。有了后,的转移只需要的时间,并且可以在的时间内更新,这样整个算法的时间复杂度优化为。 RooksParty 在一个的棋盘上放种颜色的车,第种颜色要放个, 要求不同颜色的车不能互相攻击,也就是不能有不同颜色车在同一行或同一列。求方案数模后的值。 每次考虑放入同一种颜色的车,放入后某些行或列就无法再放别的车了,可以发现剩下的能放车的格子还是一个矩形。 用状态表示在的棋盘中放入前种车、并且保证每一行每一列至少有一个车的方案数, 通过枚举第种车占用的行数和列数,不难得到转移方程: 其中表示第种颜色的车占用行列时的方案数。 下面的问题就是如何计算,这个的方案数其实就是将个棋子放入的棋盘中,使得每行每列至少有一个棋子。如果没有每行每列至少一个棋子的限制,方案数显然为。考虑有行和列是空的,不难看出其他有棋子的行和列可以形成矩形,和类似,由此得到的转移方程: 转移时需注意和不同时为0。还有需要在一开始预处理组合数。 可以看出,整个算法的时间复杂度为,空间复杂度为。 竞选演说 陶陶要竞选A国的元首,A国有座城市,这些城市用正整数进行编号,城市间通过条双向道路连接,能够保证任意两个城市间都有路径相连。 A国首都的编号为1,陶陶开始时人在首都,然后他要沿着城市间的道路到别的城市拉人气,通过每条道路需要固定的天数。每到一座城市,陶陶可以选择使用天进行一场振奋人心的演说。座城市里分布着名陶陶的崇拜者,每位崇拜者对陶陶都有一个崇拜度,如果陶陶在某座城市进行演说,就可以选择这座城市中的某些崇拜者跟随自己,最终陶陶要回到首都参与最终的投票,如果能够拉到足够多的崇拜者跟随自己,陶陶就有很大的胜算了。 竞选演说 现在离最终的投票只剩下天了,在剩下的时间里要拉足名崇拜者,陶陶希望这名崇拜者中,对自己崇拜程度最小的人的崇拜度尽可能大。 对于的数据满足,;对于的数据满足,;对于的数据满足,,。 典型动态规划题分析 送礼物 Crash买来了件礼物,他要将这些礼物送给他的好友们。 Crash先将礼物们排成一排,从左到右用正整数编号,每件礼物有一个正整数的价值,依次用表示。Crash送给每位好友的礼物一定是编号上连续的一段,满足这些礼物中任意两件礼物的价值差不会超过,同时送给每个好友的礼物个数不少于。 给出和每件礼物的价值,问Crash最多能送出多少件礼物。 用表示对前个礼物分组、能送出的最多礼物数。转移为枚举,使得第件礼物可以送出。或者选择不送出第件礼物,直接从转移。 为了判断第件礼物是否可以送出,需要求中的最大值和最小值,可以倒着循环,时间复杂度为。 Cool Tky来到一个雄奇的金字塔挖宝,但是这是一
您可能关注的文档
最近下载
- DIY烟油配方整理.xlsx VIP
- 2025中数联物流科技(上海)有限公司招聘笔试备考试题及答案解析.docx VIP
- 2025中国数联物流纪委办公室、巡视办公室相关岗位招聘笔试模拟试题及答案解析.docx VIP
- 开利VRV空调样册B-XCT-38VP-202106-02.pdf VIP
- 七年级(上)生物分组实验教案.pdf VIP
- 江苏省淮安市洪泽区洪泽外国语中学2024-2025学年九年级下学期3月月考语文试题(原卷版+解析版).docx VIP
- 2026年护士护理个人工作计划(三篇).pdf VIP
- 赤城县非凡矿业有限责任公司矿山地质环境保护与土地复垦方案.pdf VIP
- 2025《水下清淤机器人的结构方案设计》13000字(论文).docx
- [硕士]宣钢近北庄铁矿滑坡机理及稳定性分析.pdf VIP
原创力文档


文档评论(0)