算法----4.动规
ur_ytii
这个作者很懒,什么都没留下…
展开
-
dp---放苹果
题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入描述:每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出描述:对输入的每组数据M和N,用一行输出相应的K。示例1输入复制7 3输出复制8#include<cstdio>#pragma warning (disable:4996)using namespace原创 2021-03-25 21:31:30 · 91 阅读 · 0 评论 -
dp---选物品凑成体积为40---递归或dp打表
题目描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,原创 2021-03-21 21:22:50 · 99 阅读 · 0 评论 -
dp---最大子矩阵---辅助数组用来保存任意连续行每列的和,然后对辅助数组任意两行相减后,求每行的连续最大字段和
题目描述已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。输入输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2原创 2021-03-20 20:18:44 · 67 阅读 · 0 评论 -
dp---从前往后求最长递增+从后往前求最大递增。注意后者和从前往后求最大递减不一样
http://codeup.cn/problem.php?cid=100000632&pid=2题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <=原创 2021-03-20 18:50:53 · 99 阅读 · 0 评论 -
dfs或dp---选最小邮票数凑成目标和
题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。输入描述: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。输出描述: 对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。示例1输入复制...原创 2021-03-20 17:42:32 · 83 阅读 · 0 评论 -
dfs---选这个数or不选这个数两条路径
一个数组中有若干正整数,将此数组划分为两个子数组,使得两个子数组各元素之和a,b的差最小,对于非法输入应该输出ERROR。输入描述:数组中的元素输出描述:降序输出两个子数组的元素和示例1输入复制10 20 30 10 1010 20 abc 10 10输出复制40 40ERRORAC代码:#include<cstdio>#include<stdlib.h>#include<iostream>#incl原创 2021-03-20 10:29:56 · 116 阅读 · 0 评论 -
dp---最长不上升子序列
http://codeup.cn/problem.php?cid=100000632&pid=1#include<cstdio>#include<stdlib.h>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#pragma warning(disable:4996)using namespace std;#inc.原创 2021-03-20 10:11:41 · 161 阅读 · 0 评论 -
dp---前i天和后i天的利润最大和---4121:股票买卖
总时间限制:1000ms内存限制:65536kB描述最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了某只股票在未来 N 天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。现在,阿福想知道他最多可以获得多少利润。输入输入的第一行是一个整数原创 2021-03-17 09:22:33 · 150 阅读 · 0 评论 -
dp---完全背包---有几种加法方式
题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入n(不超过1000000),输出f(n)%1000000000。输入描述:每组输入包括一个整数:N(1原创 2021-03-16 19:18:36 · 100 阅读 · 0 评论 -
dp---1088:滑雪
总时间限制:1000ms内存限制:65536kB描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上原创 2021-03-14 20:07:05 · 60 阅读 · 0 评论 -
dp-n个物品装入容量为m的背包2755:神奇的口袋
总时间限制:10000ms内存限制:65536kB描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来原创 2021-03-14 18:49:14 · 212 阅读 · 0 评论 -
dp-01背包---n个物品装入容量为m的背包,求最大价值。4131:Charm Bracelet
4131:Charm Bracelet查看 提交 统计 提示 提问总时间限制:1000ms内存限制:65536kB描述Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the N(1 ≤ N≤ 3,402) available charms. Ea原创 2021-03-14 18:30:40 · 189 阅读 · 0 评论 -
dp跳板,若为7ffffff则相加时会越界,然后WA!!需要复习poj-1661:帮助 Jimmy
总时间限制:1000ms内存限制:65536kB描述"Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。设计一个程原创 2021-03-14 12:48:23 · 89 阅读 · 0 评论 -
想了一下午!动规,在i之前的所有充电桩j,j->i要么充电,要么不充 S - 龟兔赛跑
据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以恒定的速度(VR m/s)一直跑。兔子一直想找机会好好得教训一下乌龟,以雪前耻。最近正值HDU举办50周年校庆,社会各大名流齐聚下沙,兔子也趁此机会向乌龟发起挑战。虽然乌龟深知获胜希望不大,不过迫于舆论压力,只能接受挑战。比赛是设在一条笔直的道路上,长度为L米,规则很简单,谁先到达终点谁就算获胜。无奈乌龟自从上次获胜以后,成了名龟原创 2021-02-17 07:36:58 · 100 阅读 · 0 评论 -
G - 阿牛的EOF牛肉串
今年的ACM暑期集训队一共有18人,分为6支队伍。其中有一个叫做EOF的队伍,由04级的阿牛、XC以及05级的COY组成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做点什么来纪念这段激情燃烧的岁月,想了一想,阿牛从家里拿来了一块上等的牛肉干,准备在上面刻下一个长度为n的只由"E" "O" "F"三种字符组成的字符串(可以只有其中一种或两种字符,但绝对不能有其他字符),阿牛同时禁止在串中出现O相邻的情况,他认为,"OO"看起来就像发怒的眼睛,效果不好。你,NEW ACMer,EOF的崇拜者,能帮阿牛原创 2021-02-16 18:37:27 · 89 阅读 · 0 评论 -
E - 不容易系列之(3)—— LELE的RPG难题
人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.以上就是著名的RPG难题.如果你是Cole,我想你一定会想尽办法帮助LELE解决这个问题的;如果不是,看在众多漂亮的痛不欲生的Col原创 2021-02-16 18:35:56 · 66 阅读 · 0 评论 -
D - 一只小蜜蜂...
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。Input输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。Output对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。Sample Input21 23 6Sample Output13AC代码:#include原创 2021-02-16 18:32:17 · 561 阅读 · 0 评论 -
A - 超级楼梯
https://vjudge.net/contest/423078#problem/A有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。Output对于每个测试实例,请输出不同走法的数量Sample Input223Sample Output12#include<cst原创 2021-02-16 18:29:31 · 79 阅读 · 0 评论 -
相邻块不同色问题-- 不容易系列之(3)—— LELE的RPG难题
https://vjudge.net/contest/423078#problem/E人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.以上就是著名的RPG难题.如果你是Cole原创 2021-02-15 21:55:35 · 1035 阅读 · 1 评论 -
F - 骨牌铺方格 2*n铺砖,递推--
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。Output对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。Sample Input132Sample Output132AC代码:ans[i] = ans[i - 1] +原创 2021-02-15 22:00:53 · 403 阅读 · 0 评论 -
变量尽量都初始化!!
https://pintia.cn/problem-sets/994805342720868352/problems/9948055142846791681007 Maximum Subsequence Sum (25分)Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, Ni+1, ..., Nj } where 1原创 2021-01-13 11:29:38 · 64 阅读 · 0 评论 -
最长回文子串并打印出来,p数组的作用
问题 A: 【字符串】最长回文子串[命题人 : 外部导入]时间限制 : 1.000 sec内存限制 : 128 MBhttp://codeup.hustoj.com/problem.php?cid=100000629&pid=0题目描述 输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同。如abba和yyxyy。在判断回文时,应该忽略所有标点符号和空格,且忽略大小写,但输出应保持原样(在回文串的首部和...原创 2021-01-12 20:16:49 · 120 阅读 · 0 评论 -
最大连续字段和并输出起始终止
http://acm.hdu.edu.cn/showproblem.php?pid=1231最大连续子序列Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 46917Accepted Submission(s): 21498Problem Description给定K个整数的序列{ N1, N2, ..., NK },其任...原创 2021-01-12 17:30:22 · 163 阅读 · 1 评论 -
最长上升子序列(百练2757)
总时间限制:2000ms内存限制:65536kB描述:一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(...原创 2019-03-17 12:27:24 · 195 阅读 · 0 评论 -
最长公共子序列(POJ1458)
总时间限制:1000ms内存限制:65536kB描述A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, ..., xm > another sequence...原创 2019-03-17 15:34:52 · 95 阅读 · 0 评论 -
最佳加法表达式(百练4152)
总时间限制:1000ms内存限制:65536kB描述:给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入:有不超过15组数据。每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=50)。第二行是若干个数字。数字总数n不超过50,...原创 2019-03-17 16:06:43 · 433 阅读 · 0 评论 -
神奇的口袋(百练2755)
总时间限制:10000ms内存限制:65536kB描述:有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。...原创 2019-03-17 19:26:17 · 117 阅读 · 0 评论 -
BLMOOC2711合唱队形
总时间限制:1000ms内存限制:65536kB描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+...原创 2019-07-30 11:10:14 · 163 阅读 · 0 评论 -
k倍区间
给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入-----第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai ...原创 2019-03-23 12:43:09 · 368 阅读 · 0 评论 -
分巧克力
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: 1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x...原创 2019-03-23 11:58:00 · 203 阅读 · 0 评论 -
数字三角形(POJ1163)
找一个sum数组把已经求出最大和记录下来。#include <iostream>#include <cstdio>#include <cmath>using namespace std;int a[105][105];int n;int maxsum[105][105];int MaxSum(int i,int j){...原创 2019-03-17 09:25:05 · 176 阅读 · 0 评论