
动态规划
这个类型的题写过好多,,,但都是很杂乱的放在我的文件夹里,慢慢移动吧
满地都是六便士他却抬头看向了月亮
一个喜欢写代码的小菜鸟
展开
-
2889. 再探石子合并
设有 N 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2堆,代价为 4,得到 4 5 2, 又合并 1,2堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24;如果第二步是先合原创 2022-05-16 16:02:51 · 117 阅读 · 0 评论 -
275. 传纸条
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。 在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回...原创 2022-05-16 13:44:15 · 89 阅读 · 0 评论 -
274. 移动服务
一个公司有三个移动服务员,最初分别在位置 1,2,3处。如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p 到 q 移动一个员工,需要花费 c(p,q)。这个函数不一定对称,但保证 c(p,p)=0。给出 N 个请求,请求发生的位置分别为 p1∼pN。公司必须按顺序依次满足所有请求,且过程中不能去其他额外的位置,目标是最小化公司花费,请你帮忙计算这个最小花费。输入格式第 11原创 2022-05-15 15:06:41 · 86 阅读 · 0 评论 -
273. 分级
给定长度为 N 的序列 A,构造一个长度为 N 的序列 B,满足:B非严格单调,即B1≤B2≤…≤BN或B1≥B2≥…≥BN。 最小化S=∑Ni=1|Ai−Bi|。只需要求出这个最小值 S。输入格式第一行包含一个整数 N。接下来 N 行,每行包含一个整数 Ai。输出格式输出一个整数,表示最小 S 值。数据范围1≤N≤2000,0≤Ai≤106输入样例:71324539输出样例:3分析:这个需要先打表,可以发现b数组的值一定...原创 2022-05-15 14:23:23 · 105 阅读 · 0 评论 -
271. 杨老师的照相排列
有 N个学生合影,站成左端对齐的k排,每排分别有N1,N2,…,Nk 个人。 (N1≥N2≥…≥Nk)第1排站在最后边,第k排站在最前边。学生的身高互不相同,把他们从高到底依次标记为1,2,…,N。在合影时要求每一排从左到右身高递减,每一列从后到前身高也递减。问一共有多少种安排合影位置的方案?下面的一排三角矩阵给出了当N=6,k=3,N1=3,N2=2,N3=1时的全部16 种合影方案。注意身高最高的是 1,最低的是 6。123 123 124 124 125...原创 2022-05-15 13:12:38 · 144 阅读 · 0 评论 -
4418. 选元素
给定一个长度为n的整数序列a1,a2,…,an。请你从中挑选x个元素,要求:原序列中的每一个长度为k的连续子序列都至少包含一个被选中的元素。 满足条件1的前提下,所选x个元素的相加之和应尽可能大。输出最大可能和。输入格式第一行包含三个整数n,k,x。第二行包含nn个整数a1,a2,…,an。输出格式如果无法满足题目要求,则输出−1。否则,输出一个整数,表示所选元素的最大可能和。数据范围前三个测试点满足1≤k,x≤n≤6。所有测试点...原创 2022-05-07 21:28:28 · 515 阅读 · 0 评论 -
背包问题求具体方案
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是 1…N。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 NN 行,每行两个整数 vi,wi,用空格隔开,分别表示第 ii 件物品的体积和价值。输出格式输出一行,包含若干个用空格隔原创 2022-04-13 17:50:17 · 78 阅读 · 0 评论 -
传球游戏。
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:nn 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了 mm 次以后,又回到小蛮手里。两种传球的方法被视作不同的方法,当且原创 2022-04-12 16:58:00 · 197 阅读 · 0 评论 -
没有上司的舞会
Ural 大学有 N 名职员,编号为 1∼N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数 N。接下来 N 行,第 i 行表示 ii号职员的快乐指数 Hi。接下来 N−1 行,每行输入一对整数 L,K,表示 K原创 2022-04-03 15:16:42 · 83 阅读 · 0 评论 -
石子合并~
设有 NN 堆石子排成一排,其编号为 1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 44 堆石子分别为 1 3 5 2, 我们可以先合并 1、2堆,代价为 4,得到 4 5 2, 又合并 1,2堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24;如果第二步是原创 2022-04-03 15:11:39 · 81 阅读 · 0 评论 -
最长公共上升子序列
熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列 A和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。不过,只要告诉奶牛它的长度就可以了。数列 A 和 B的长度均不超过 3000。输入格..原创 2022-04-03 15:06:48 · 56 阅读 · 0 评论 -
状态压缩,dp
之后慢慢整理吧~原创 2021-09-18 23:52:41 · 91 阅读 · 0 评论 -
状态压缩:玉米田
农夫约翰的土地由M×NM×N个小方格组成,现在他要在土地里种植玉米。非常遗憾,部分土地是不育的,无法种植。而且,相邻的土地不能同时种植玉米,也就是说种植玉米的所有方格之间都不会有公共边缘。现在给定土地的大小,请你求出共有多少种种植方法。土地上什么都不种也算一种方法。输入格式第11行包含两个整数MM和NN。第2..M+12..M+1行:每行包含NN个整数00或11,用来描述整个土地的状况,11表示该块土地肥沃,00表示该块土地不育。输出格式输...原创 2021-10-05 12:57:49 · 112 阅读 · 0 评论 -
动态规划:线性DP 最长公共子序列
给定两个长度分别为NN和MM的字符串AA和BB,求既是AA的子序列又是BB的子序列的字符串长度最长是多少。输入格式第一行包含两个整数NN和MM。第二行包含一个长度为NN的字符串,表示字符串AA。第三行包含一个长度为MM的字符串,表示字符串BB。字符串均由小写字母构成。输出格式输出一个整数,表示最大长度。数据范围1≤N,M≤10001≤N,M≤1000输入样例:4 5acbdabedc输出样例:3...原创 2021-12-02 15:42:39 · 201 阅读 · 0 评论 -
动态规划:最长上升子序列
给定一个长度为NN的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数NN。第二行包含NN个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤10001≤N≤1000,−109≤数列中的数≤109−109≤数列中的数≤109输入样例:73 1 2 1 8 5 6输出样例:4#include <iostream>using namespace std;const int N=10...原创 2021-12-02 15:54:12 · 135 阅读 · 0 评论 -
动态规划:线性DP
线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题、区间DP等有固定的模板。线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值。因此,除了少量问题(如:LIS、LCS、LCIS等)有固定的模板外,大部分都要根据实际问题来推导得出答案。自己最近写的关于线性DP的题(持续更新中):最长公共子序列...原创 2021-12-02 15:51:54 · 583 阅读 · 0 评论 -
动态规划:区间 DP
区间 DP 常用模版所有的区间dp问题,第一维都是枚举区间长度,一般 len = 1 用来初始化,枚举从 len = 2 开始,第二维枚举起点 i (右端点 j 自动获得,j = i + len - 1)for (int i = 1; i <= n; i++) { dp[i][i] = 初始值}for (int len = 2; len <= n; len++) //区间长度 for (int i = 1; i + len - 1 <= n;...原创 2021-12-02 15:44:25 · 116 阅读 · 0 评论 -
CSP202109-4 收集卡牌
题目描述小林在玩一个抽卡游戏,其中有n种不同的卡牌,编号为1到n。每一次抽卡,她获得第i种卡牌的概率为pi。如果这张卡牌之前已经获得过了,就会转化为一枚硬币。可以用k枚硬币交换一张没有获得过的卡。小林会一直抽卡,直至集齐了所有种类的卡牌为止,求她的期望抽卡次数。如果你给出的答案与标准答案的绝对误差不超过10−4,则视为正确。提示:聪明的小林会把硬币攒在手里,等到通过兑换就可以获得剩余所有卡牌时,一次性兑换并停止抽卡。输入格式从标准输入读入数据。输入共两行。第一行...原创 2021-10-10 18:52:50 · 1910 阅读 · 2 评论 -
状态压缩:毕业旅行问题
小明目前在做一份毕业旅行的规划。打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,希望能够通过合理的路线安排尽可能的省些路上的花销。给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销。注意:北京为11号城市。输入格式城市个数nn。城市间的车票价钱nn行nn列的矩阵m[n][n]m[n][n]。输出格式输出一个整数,表示最小车费花销。数据范围1<n≤...原创 2021-10-01 16:48:43 · 163 阅读 · 0 评论 -
状态压缩:蒙德里安的梦想
求把N×MN×M的棋盘分割成若干个1×21×2的的长方形,有多少种方案。例如当N=2,M=4N=2,M=4时,共有55种方案。当N=2,M=3N=2,M=3时,共有33种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数NN和MM。当输入用例N=0,M=0N=0,M=0时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1≤N,M≤111≤N,...原创 2021-10-01 20:05:53 · 88 阅读 · 0 评论 -
CSP202104-4 校门外的树
XX校最近打算美化一下校园环境。前段时间因为修地铁,XX校大门外种的行道树全部都被移走了。现在XX校打算重新再种一些树,为校园增添一抹绿意。XX校大门外的道路是东西走向的,我们可以将其看成一条数轴。在这条数轴上有nn个障碍物,例如电线杆之类的。虽然障碍物会影响树的生长,但是障碍物不一定能被随便移走,所以XX校规定在障碍物的位置上不能种树。nn个障碍物的坐标都是整数;如果规定向东为正方向,则nn个障碍物的坐标按照从西到东的顺序分别为a1,a2,⋯,ana1...原创 2021-09-17 17:36:55 · 736 阅读 · 0 评论