动态规划
面向大海的编程
这个作者很懒,什么都没留下…
展开
-
判断整除
计蒜客里的习题用dp[i][j]表示前i个数可以形成j的余数(如果可以则为true否则为false)#include<bits/stdc++.h>using namespace std;const int MAXN=10010;int main(){ int n,k; int num[MAXN]; bool dp[MAXN][100]; fill(dp[0],dp[0]+MAXN*100,false); scanf("%d%d",&n,&k); fo原创 2020-11-22 19:26:55 · 147 阅读 · 0 评论 -
开餐馆
蒜头君想开家餐馆. 现在共有 n 个地点可供选择。蒜头君打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列 m1, m2, … mn来表示他们的相对位置。由于地段关系, 开餐馆的利润会有所不同。我们用 p 表示在 m 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于 k。请你帮助蒜头君选择一个总利润最大的方案。输入格式标准的输入包含若干组测试数据。输入第一行是整数 T(1≤T≤1000),表明有 T 组测试数据。紧接着有 T组连续的测试。每原创 2020-11-22 09:10:27 · 1235 阅读 · 0 评论 -
干草出售
农民约翰面临一个很可怕的事实,因为防范失措他存储的所有稻草给澳大利亚蟑螂吃光了,他将面临没有稻草喂养奶牛的局面。在奶牛断粮之前,约翰拉着他的马车到农民唐的农场中买一些稻草给奶牛过冬。已知约翰的马车可以装的下C(1≤C≤50,000) 立方的稻草。农民唐有 H(1≤H≤5,000) 捆体积不同的稻草可供购买,每一捆稻草有它自己的体积 (1≤V ≤C)。面对这些稻草约翰认真的计算如何充分利用马车的空间购买尽量多的稻草给他的奶牛过冬。现在给定马车的最大容积 C 和每一捆稻草的体积 V ,约翰如何在不超过原创 2020-11-21 19:59:46 · 204 阅读 · 0 评论 -
踩方格
有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b. 走过的格子立即塌陷无法再走第二次;c. 只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走 n 步,共有多少种不同的方案。2 种走法只要有一步不一样,即被认为是不同的方案。输入格式允许在方格上行走的步数 n(n≤20)。输出格式计算出的方案数量。输出时每行末尾的多余空格,不影响答案正确性样例输入 复制2样例输出 复制7递归回溯记忆化搜索#includ原创 2020-11-20 11:40:27 · 180 阅读 · 0 评论 -
魔法宝石(动态规划)
Bessie 去珠宝商店想要买一些魔法宝石。商店里有 n 个宝石,每个宝石的重量为 wi幸运值为 vi。Bessie 的购物车只能装重量之和不超过 mm 的商品,现在她想知道如何选择宝石,能让购买的幸运值之和最大。输入格式第一行两个整数 n,m,表示宝石的数量和购物车的承重能力。接下来 n 行,每行两个整数 wi,vi,表示每个宝石的重量和幸运值。样例输入复制4 61 42 63 122 7样例输出复制23裸背包问题#include<bits/stdc++.h>us原创 2020-11-19 21:30:58 · 997 阅读 · 2 评论 -
铺砖
对于一个 2 行N 列的走道。现在用 1×2,2×2 的砖去铺满。问有多少种不同的方式。输入格式一个数字 N,0≤n≤250。输出格式方案数。(对 100007 取模)。输出时每行末尾的多余空格,不影响答案正确性样例输入12样例输出13样例输入28样例输出2复171思路特别简单就是动态规划 做一下笔记#include<bits/stdc++.h>using namespace std;const int MAXN=251;const int MOD=1000原创 2020-11-19 21:12:32 · 1061 阅读 · 1 评论 -
递推三角形(动态规划)
蒜头君拿出两根长度为 a, b的木棍,将两端钉在一起,做了一个可以开口大小可以变化的 V 字,如下图所示。现在有一堆长度为 1 或2 的木棍边角料(可以认为它们的数目无限多)。蒜头君想要用若干块边角料将点 X、Y 连接起来组成第三条边,使得这个三角形成为一个直角三角形,求方案数对 10007 取模的结果。注意连接的顺序不同,视为不同的方案,可根据样例进一步理解。输入格式输入为一行,是两个空格隔开的整数 a,b(1≤a,b≤1000)输出格式输出为一行,是一个整数,为取木棍的方案数对 1000710原创 2020-11-19 20:43:16 · 273 阅读 · 0 评论 -
买书(动态规划)
小蒜手里有 n 元钱全部用来买书,书的价格为 10 元,20 元,50 元,100 元。问小蒜有多少种买书方案?(每种书可购买多本)输入格式一个整数 n,代表总共钱数。(1≤n≤1000)输出格式一个整数,代表选择方案种数。输出时每行末尾的多余空格,不影响答案正确性样例输入120样例输出12样例输入215样例输出20dp[i]表示组成金额i的方案数,初始化的时候令dp[0]=1;num[0],num[1],num[2],num[3]分别为10 20 50 100则dp[j]原创 2020-11-19 19:12:10 · 411 阅读 · 0 评论 -
数字组合(动态规划)
小蒜有 n(1≤n≤20) 个正整数,找出其中和为 (t 也是正整数)的可能的组合方式。如:n=5 个数分别为 1,2,3,4,5 t=5;那么可能的组合有 5=1+4 和 5=2+3 和 5=5 三种组合方式。输入格式输入的第一行是两个正整数 n 和 t,用空格隔开,其中1≤n≤20, 表示正整数的个数,t 为要求的和 (1≤t≤1000)接下来的一行是 n 个正整数,用空格隔开。输出格式和为 tt 的不同的组合方式的数目。输出时每行末尾的多余空格,不影响答案正确性样例输入5 51 2原创 2020-11-18 20:51:51 · 908 阅读 · 0 评论 -
大盗阿福(动态规划)
知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入格式输入的第一行是一个整数 T(T≤50) ,表示一共有 T 组数据。接下来的每组数据,第一行是一个整数N(1≤N≤100,000),表示一共有 N 家店铺。第二行是 NN 个被空格分开的正整数,表示每一家店铺中的现金数量。每家店铺中的现金数量均不超过 1000。输出格式对于每组数据,输出一行。该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。提示对于第一组样例,阿福选择第 2 家店铺行窃,获得的现金数量为 88。原创 2020-11-18 20:00:55 · 278 阅读 · 0 评论 -
放苹果(动态规划)
小蒜想知道把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,共有多少种不同的分法?(用 KK 表示)5,1,1 和 1,5,1 是同一种分法。输入格式第一行是测试数据的数目 t(0≤t≤20)。以下每行均包含两个整数 M 和 N,以空格分开。 1≤M,N≤10。输出格式对输入的每组数据 M 和 N,用一行输出相应的 K。输出时每行末尾的多余空格,不影响答案正确性样例输入17 3样例输出8**我们先令dp(m,n)表示水果为m个,盘子为n个时的情况可以分为两种情况原创 2020-11-18 19:43:05 · 681 阅读 · 0 评论