
动态规划
动态规划
SSL_lyw
蒟蒻中学生一枚
弱弱弱弱弱弱到不行的菜鸡
展开
-
【SSL】数字游戏
数字游戏Description小W发明了一个游戏,他在黑板上写出了一行数字a1,a2,a3,……,an,然后给你M个回合的机会,每会回你可以从中选择一个数字擦去它,接着剩下来的每个数字ai都要递减一个值bi。如此重复m个回合,所有你擦去的数字之和就是你所得的分数。 小W和他的好朋友小Y玩了这个游戏,可是他发现,对于每个给出的a和b序列,小Y的得分总比他高,所以他就很不服气。于是他想让你帮他算算,对于每个a和b序列,可以得到的最大得分是多少。Input输入文件的第一行是一个整数n(1<=n原创 2020-12-19 08:45:26 · 265 阅读 · 1 评论 -
【SSL_1644】取数字问题
取数字问题Description给定M*N的矩阵,其中的每个元素都是-10到10之间的整数。你的任务是从左上角(1,1)走到右下角(M,N),每一步只能向右或向下,并且不能走出矩阵的范围。你所经过的方格里面的数字都必须被选取,请找出一条最合适的道路,使得在路上被选取的数字之和是尽可能小的正整数。Input第一行两个整数M,N,(2<=M,N<=10),分别表示矩阵的行和列的数目。接下来的M行,每行包括N个整数,就是矩阵中的每一行的N个元素。Output仅一行一个整数,表示所选道路上原创 2020-08-23 21:42:09 · 213 阅读 · 0 评论 -
【SSL_P1652】CIM
CIMDescription给出一个1到n的排列,每次可以移动一个数到一个任意位置。问要达到状态1,2,3……n至少移动多少次?Inputn (1<=n<=100000)n个数Output移动次数!Sample Input52 1 4 5 3Sample Output2解题思路这道题其实就是求n-最长上升子序列的长度。动态转移方程:if(a[i]>=f[m])m++;f[m]=a[i];if(a[i]>=f[m]){m++;f[m]=a[i];}i原创 2020-08-23 15:27:21 · 291 阅读 · 0 评论 -
【SSL_P1055】能量项链
能量项链Description在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为(Mars单位),新产生的珠子的原创 2020-08-23 14:18:12 · 198 阅读 · 0 评论 -
【SSL_P1203】书的复制
书的复制Description现在要把m本有顺序的书分给k个人复制(抄写),每个人的抄写速度都一样,一本书不允许分给两个或两个以上的人抄写,分给每个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写最多的人用去的时间。Input第一行两个整数,m,k(k<=m<=500)第二行为m个整数,第i个数表示第i本书的页数。Output最短时间Sample Input9 31 2 3 4 5 6 7 8 9原创 2020-08-23 11:10:09 · 207 阅读 · 0 评论 -
【SSL】苹果
苹果Description农场的夏季是收获的好季节。在Farmer John的农场,他们用一种特别的方式来收苹果:Bessie摇苹果树,苹果落下,然后Farmer John尽力接到尽可能多的苹果。 作为一个有经验的农夫, Farmer John将这个过程坐标化。他清楚地知道什么时候(1<=t<=1,000,000)什么位置(用二维坐标表示,-1000<=x,y<=1000)会有苹果落下。他只有提前到达那个位置,才能接到那个位置掉下的苹果。 一个单位时间,Farmer J原创 2020-08-23 08:48:50 · 188 阅读 · 0 评论 -
【SSL】矩阵乘积
矩阵乘积DescriptionInputn表示矩阵的个数(<=100)n+1个数,表示矩阵(<=100)Output最小的乘法次数Sample Input55 10 4 6 10 2Sample Output348解题思路这道题原创 2020-08-23 08:07:59 · 159 阅读 · 0 评论 -
【SSL】电子眼
电子眼Description中山市石一个环境优美、气候宜人的小城市。因为城市的交通并不繁忙,市内的道路网很稀疏。准确地说,中山市有N-1条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马路。作为一条交通网络,显然每两个路口之间都是可达的。为了更好地管理中山市的交通,市长决定在一些路口加装电子眼,用来随时监视路面情况。这些装在路口的电子眼能够监视所有连接到这个路口的马路。现在市长想知道最少需要在多少个路口安装电子眼才能监视所有的马路。市长已经把所有的路口都编上了1~N的号码。给你中山原创 2020-08-22 20:33:00 · 172 阅读 · 0 评论 -
【SSL】乘积最大
乘积最大Description今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:312, 当N=3,K=原创 2020-08-22 09:38:11 · 148 阅读 · 0 评论 -
【SSL】加法最大
加法最大Description设有一个长度为n的数字字符串,分成k+1个部份,使其k+1部份相加的和为最大。例如:数字串’340670’,k=1,其加法有 3+40670=40673 34+0670=704 340+670=1010 3406+70=3476 34076+0=34076其最大和为40676。问题:当数字串和k给出后,找出一个分法使和为最大。InputOutputSample Input6 1340670Sample Output40673解题思路这道题看似原创 2020-08-22 09:21:21 · 288 阅读 · 0 评论 -
【SSL】没有上司的舞会
没有上司的舞会DescriptionUral大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。Input第一行一个整数N。(1<=N<=6000)接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。最后一行输原创 2020-08-21 20:32:49 · 184 阅读 · 0 评论 -
【SSL】叠放箱子
叠放箱子Description某港口有一批集装箱,将其编号,分别为1至N。每一个箱子的外型尺寸都是一样的,现在要将其中某些集装箱叠放起来,集装箱叠放的规则如下: 1)每个集装箱上最多只能直接叠放一个集装箱。 2)编号较小的集装箱不能放在编号较大的集装箱之上。 3)每个集装箱都给出了自身的重量和可承受的重量,每个集装箱之上的所有集装箱重量之和不得超过该集装箱的可承受的重量。现在要求你编程,从中选出最多个集装箱,使之在满足以上条件的情况下叠放起来,即要求叠得尽可能地高。Input第一行是原创 2020-08-21 15:46:32 · 243 阅读 · 4 评论 -
【SSL】机器分配
机器分配Description总公司拥有高效生产设备M台,准备分给下属的N个公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M《=15,N〈=10。分配原则:每个公司有权获得任意数目的设备,但总台数不得超过总设备数M。Input第一行保存两个数,第一个数是设备台数M,第二个数是分公司数N。接下来是一个M*N的矩阵,表明了第I个公司分配J台机器的盈利。Output最大盈利Sample Input15 1036 67原创 2020-08-21 09:53:58 · 172 阅读 · 5 评论 -
【SSL】合并石子
合并石子Description在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请设计一个程序,计算出将N堆石子合并成一堆的最小得分。Input每组数据第1行为一个正整数N(2<=N<=100),以下N行,每行一个正整数,小于10000,分别表示第i堆石子的个数(1<=i<=N)。Output对于每组数据输出一个正整数,即最小得分Sample Input71378原创 2020-08-21 08:24:50 · 776 阅读 · 2 评论 -
【SSL】合唱队形
合唱队形DescriptionN位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<…Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。Input输入的第一行是一个整数N(2<=N<=100),表示原创 2020-08-20 21:45:56 · 876 阅读 · 2 评论 -
【SSL】完全背包(二维数组)
完全背包(二维数组)Description设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。Input第一行:两个整数,M(背包容量,M<= 200)和N(物品数量,N<= 30); 第2…N+1 行:每行二个整数Wi,Ui,表示每个物品的重量和价值。Output仅一行,一个数,表示最大总价值。Sample Input12 4原创 2020-08-20 15:53:49 · 494 阅读 · 2 评论 -
【SSL】最大连续数列的和
最大连续数列的和Description求最大连续子序列的和Input第一行输入n(n<=500),第二行为n个以空格分开的整数(-1000到1000之间);Output该序列中最大的连续子序列的和Sample Input61 2 -5 6 7 8Sample Output21解题思路这道题其实就是从从前往后加,如果现在的数加上前面的数小于0,就将这个数赋值为0,最后再在这个数列里找出最大值。状态转移方程:if(a[i]+f[i−1]<0)f[i]=0;else原创 2020-08-20 14:46:00 · 778 阅读 · 6 评论 -
【SSL】最佳浏览路线
最佳浏览路线Description某旅游区的街道成网格状(见图),其中东西向的街道都是旅游街,南北向的街道都是林荫道。由于游客众多,旅游街被规定为单行道。游客在旅游街上只能从西向东走,在林荫道上既可以由南向北走,也可以从北向南走。阿隆想到这个旅游区游玩。他的好友阿福给了他一些建议,用分值表示所有旅游街相邻两个路口之间的道路值得浏览得程度,分值从-100到100的整数,所有林荫道不打分。所有分值不可能全是负值。 例如下图是被打过分的某旅游区的街道图:阿隆可以从任一路口开始浏览,在任一路口结束浏览。原创 2020-08-20 11:29:30 · 236 阅读 · 2 评论 -
【SSL】勇闯黄金十二宫---射手宫
勇闯黄金十二宫—射手宫Description第九个他们来到射手宫,身为射手座黄金圣斗士的艾尔里斯是狮子座圣斗士艾尔里亚的哥哥,他早在13年前就发现了撒加杀了真教皇,并且自己做了假教皇。然而他却被撒加迫害致死。现在星矢四人已经来到了射手宫。艾尔里斯的灵魂想考验一下这些圣斗士们的水平,在射手宫的墙上留下了一道题目。 “已知艾尔里斯和弟弟艾尔里亚的基因基本相同,由于基因表达起来不方便,所以就用n个数字来表示。(因为至今共发现100000种基因,所以每个数字都<=100000)兄弟之间的基因个数是相同的原创 2020-08-20 08:56:52 · 535 阅读 · 4 评论 -
【SSL】糖果盒
糖果盒Description一个被分为 n*m 个格子的糖果盒,第 i 行第 j 列位置的格子里面有 a [ i ][ j ] 颗糖。本来 tenshi 打算送这盒糖果给某 PPMM 的,但是就在要送出糖果盒的前一天晚上,一只极其可恶的老鼠夜袭糖果盒,有部分格子被洗劫并且穿了洞。tenshi 必须尽快从这个糖果盒里面切割出一个矩形糖果盒,新的糖果盒不能有洞,并且 tenshi 希望保留在新糖果盒内的糖的总数尽量多。请帮tenshi设计一个程序 计算一下新糖果盒最多能够保留多少糖果。Input从文原创 2020-08-19 20:05:41 · 294 阅读 · 4 评论 -
【SSL】旅行
旅行DescriptionACM队员们到Z镇游玩,Z镇是一个很特别的城镇,它有m+1条东西方向和n+1条南北方向的道路,划分成MN个区域。Z镇的名胜位于这些区域内,从上往下第i行,从左往右数第j列的区域记为D(i,j)。ACM队员们预先对这MN个区域打分V(i,j)(分数可正可负)。分数越高表示他们越想到那个地方,越低表示他们越不想去。为了方便集合,队员们只能在某一个范围内活动。我们可以用(m1,n1)与(m2,n2)(m1<=m2,n1<=n2)表示这样一个范围:它是这些区域的集合: ,原创 2020-08-19 16:29:55 · 203 阅读 · 9 评论 -
【SSL】货币系统
货币系统各位看官老爷们给点赞和评论吧~~OrzDescription母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。[In their own rebellious way],他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,…}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x原创 2020-08-19 10:11:51 · 206 阅读 · 2 评论 -
【SSL】购买干草
购买干草Description约翰的干草库存已经告罄,他打算为奶牛们采购H(1≤H≤50000)磅干草,他知道N(1≤N≤100)个干草公司,现在用1到N给它们编号。第i个公司卖的干草包重量为Pi(1≤Pi≤5000)磅,需要的开销为Ci(l≤Ci≤5000)美元.每个干草公司的货源都十分充足,可以卖出无限多的干草包.帮助约翰找到最小的开销来满足需要,即采购到至少H磅干草.Input第1行输入N和H,之后N行每行输入一个Pi和Ci.Output最小的开销.Sample Input2 15原创 2020-08-19 09:48:12 · 960 阅读 · 0 评论 -
【SSL】竞赛得分
竞赛得分Description学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分。现在要进行一次竞赛,总时间T固定,有若干类型可选择的题目,每种类型题目可选入的数量不限,每种类型题目有一个si(解答此题所得的分数)和ti(解答此题所需的时间),现要选择若干题目,使解这些题的总时间在T以内的前提下,所得的总分最大。输入包括竞赛的时间,M(1 <= M <= 10000)和题目类型数目N(1 <= N <= 10000)。后面的每一原创 2020-08-19 09:24:20 · 343 阅读 · 1 评论 -
【SSL】完全背包
完全背包Description设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。Input第一行:两个整数,M(背包容量,M<= 200)和N(物品数量,N<= 30); 第2…N+1 行:每行二个整数Wi,Ui,表示每个物品的重量和价值。Output仅一行,一个数,表示最大总价值。Sample Input12 4 2 1原创 2020-08-19 09:04:58 · 967 阅读 · 2 评论 -
【SSL】开心的金明
开心的金明Description金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的原创 2020-08-19 07:41:05 · 200 阅读 · 7 评论 -
【SSL】石子归并
石子归并Description你有一堆石头质量分别为W1,W2,W3…WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。Input测试数据第一行为整数N(1<=N<=20),表示有N堆石子。第二行为N个数,为每堆石子的质量。Output每组测试数据只需输出合并后两堆的质量差的最小值。Sample Input55 8 13 27 14Sample Output3解题思路这道题其实可以用搜索,但我的方法是动规。它的状态转移公式是:if(原创 2020-08-18 21:19:27 · 1078 阅读 · 3 评论 -
【SSL】城市交通
城市交通Description有n个城市,编号1~n,有些城市之间有路相连,有些则没有,有路则当然有一个距离。现在规定只能从编号小的城市到编号大的城市,问你从编号为1的城市到编号为n的城市之间的最短距离是多少?Input先输入一个n,表示城市数,n小于100。下面的n行是一个n*n的邻接矩阵map[i,j],其中map[i,j]=0表示城市i和城市j之间没有路相连,否则为两者之间的距离。Output输出格式:一个数,表示最少要多少时间。输入数据保证可以从城市1飞到城市n。Sample I原创 2020-08-18 19:18:24 · 292 阅读 · 2 评论 -
【2005年分区联赛普及组三】采药
采药Description辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是辰辰,你能完成这个任务吗?Input输入的第一行有两个整数T(1 <= T &l原创 2020-08-18 14:33:45 · 171 阅读 · 3 评论 -
【SSL】数字金字塔(进阶)(两种方法)
数字金字塔(进阶)Description考虑在下面被显示的数字金字塔。写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每一步可以走到左下方的点也可以到达右下方的点。7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30Input第一个行包含 R(1<= R<=1000) ,表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大原创 2020-08-18 07:47:50 · 321 阅读 · 2 评论 -
【SSL_1458】数字金字塔
数字金字塔Description你和权权是一对很好很好的朋友。有一天,你们无聊得很,便上网冲浪,突然在一个叫做USACO的网中找到了一个游戏:《数字金子塔》。游戏规则是这样的:求一个数字金字塔中从最高点开始在底部任意处结束的路径经过数字的和的最大,其中的每一步可以走到下方的点也可以到达右下方的点。例如在下面的例子中,从7 — 3 — 8 — 7 –- 5的路径产生了最大和:30。73 88 1 02 7 4 44 5 2 6 5你们便约定了谁能计算出最后的值便是赢者。你仰天(天花板)长叹:原创 2020-08-17 21:43:50 · 376 阅读 · 5 评论 -
【SSL】公共子串
公共子串Description设有A、B两个字符串,找出A、B共同子串,每个字符串无相同字符,可以不连续,但顺序不能颠倒。Input第一行字符串A第二行字符串BOutput最长公共子串的长度.Sample InputabcfbcabfcabSample Output4解题思路这道题其实可以用下面这幅图表示:这里2表示输入数据里的a,4表示b,只有小部分,剩下的自己推,这里行的2与列的2相等,就是1加这个位置的左上角的数,如果不相等,就选择上面和左边最大的那个数。最后输出原创 2020-08-19 15:16:27 · 182 阅读 · 3 评论