DP---动态规划
王文波~
清。。
展开
-
任务安排1
有 N 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变。机器会把这 N 个任务分成若干批,每一批包含连续的若干个任务。从时刻0开始,任务被分批加工,执行第 i 个任务所需的时间是 TiTi。另外,在每批任务开始前,机器需要 S 的启动时间,故执行一批任务所需的时间是启动时间 S 加上每个任务所需时间之和。一个任务执行后,将在机器中稍作等待,直至该批任务全部执行完毕。也就是说,同一批任务将在同一时刻完成。每个任务的费用是它的完成时刻乘以一个费用系数 CiCi。请为机器规划一个分组方案原创 2020-07-06 10:43:08 · 268 阅读 · 1 评论 -
理想的正方形
有一个 a×ba×b 的整数组成的矩阵,现请你从中找出一个 n×nn×n 的正方形区域,使得该区域所有数中的最大值和最小值的差最小。输入格式第一行为三个整数,分别表示 a,b,na,b,n 的值;第二行至第 a+1a+1 行每行为 bb 个非负整数,表示矩阵中相应位置上的数。输出格式输出仅一个整数,为 a×ba×b 矩阵中所有“n×nn×n 正方形区域中的最大整数和最小整数的差值”的最小值。数据范围2≤a,b≤10002≤a,b≤1000,n≤a,n...原创 2020-07-05 20:09:38 · 673 阅读 · 0 评论 -
绿色通道
高二数学《绿色通道》总共有 nn道题目要抄,编号 1,2,…,n1,2,…,n,抄第 ii题要花 aiai分钟。小 Y 决定只用不超过 tt分钟抄这个,因此必然有空着的题。每道题要么不写,要么抄完,不能写一半。下标连续的一些空题称为一个空题段,它的长度就是所包含的题目数。这样应付自然会引起马老师的愤怒,最长的空题段越长,马老师越生气。现在,小 Y 想知道他在这 tt分钟内写哪些题,才能够尽量减轻马老师的怒火。由于小 Y 很聪明,你只要告诉他最长的空题段至少有多长就可以了,不需输出方案。输入格式第原创 2020-07-05 18:45:00 · 257 阅读 · 0 评论 -
烽火传递
烽火台是重要的军事防御设施,一般建在交通要道或险要处。一旦有军情发生,则白天用浓烟,晚上有火光传递军情。在某两个城市之间有 nn 座烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确传递,在连续 mm 个烽火台中至少要有一个发出信号。现在输入 n,mn,m 和每个烽火台的代价,请计算在两城市之间准确传递情报所需花费的总代价最少为多少。输入格式第一行是两个整数 n,mn,m,具体含义见题目描述;第二行 nn 个整数表示每个烽火台的代价 aiai。输出格式输出仅一个整数,表示最小代价。原创 2020-07-05 17:04:52 · 310 阅读 · 0 评论 -
旅行问题
John 打算驾驶一辆汽车周游一个环形公路。公路上总共有 nn 个车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米。John 必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所有的车站,并回到起点。在一开始的时候,汽车内油量为零,John 每到一个车站就把该站所有的油都带上(起点站亦是如此),行驶过程中不能出现没有油的情况。任务:判断以每个车站为起点能否按条件成功周游一周。输入格式第一行是一个整数 nn,表示环形公路上的车站数;接下来 nn 行,每行两个整数 pi原创 2020-07-05 15:01:29 · 269 阅读 · 0 评论 -
修剪草坪
在一年前赢得了小镇的最佳草坪比赛后,FJ 变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,FJ 希望能够再次夺冠。然而,FJ 的草坪非常脏乱,因此,FJ 只能够让他的奶牛来完成这项工作。FJ 有 NN 只排成一排的奶牛,编号为 11 到 NN。每只奶牛的效率是不同的,奶牛 ii 的效率为 EiEi。编号相邻的奶牛们很熟悉,如果 FJ 安排超过 KK 只编号连续的奶牛,那么这些奶牛就会罢工去开派对。因此,现在 FJ 需要你的帮助,找到最合理的安排方案并计算 FJ 可以得到的最大效原创 2020-07-04 23:11:40 · 171 阅读 · 0 评论 -
最大子序和
输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大。注意: 子序列的长度至少是1。输入格式第一行输入两个整数n,m。第二行输入n个数,代表长度为n的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围1≤n,m≤3000001≤n,m≤300000输入样例:6 41 -3 5 1 -2 3输出样例:7#include <iostream>#include <cstdio>#原创 2020-07-04 18:43:35 · 148 阅读 · 0 评论 -
不要62
杭州人称那些傻乎乎粘嗒嗒的人为 6262(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有 44 或 6262 的号码。例如:62315,73418,8891462315,73418,88914 都属于不吉利号码。但是,6115261152 虽然含有 66 和 22,但不是 连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照号区间原创 2020-07-04 16:39:30 · 162 阅读 · 0 评论 -
数字游戏 II
由于科协里最近真的很流行数字游戏。某人又命名了一种取模数,这种数字必须满足各位数字之和 mod Nmod N 为 00。现在大家又要玩游戏了,指定一个整数闭区间 [a.b][a.b],问这个区间内有多少个取模数。输入格式输入包含多组测试数据,每组数据占一行。每组数据包含三个整数 a,b,Na,b,N。输出格式对于每个测试数据输出一行结果,表示区间内各位数字和 mod Nmod N 为 00 的数的个数。数据范围1≤a,b≤231−11≤a,b≤231−1,1≤N<1001≤N<原创 2020-07-04 15:46:32 · 550 阅读 · 0 评论 -
Windy数
Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为 22 的正整数被称为 Windy 数。Windy 想知道,在 AA 和 BB 之间,包括 AA 和 BB,总共有多少个 Windy 数?输入格式共一行,包含两个整数 AA 和 BB。输出格式输出一个整数,表示答案。数据范围1≤A≤B≤2×1091≤A≤B≤2×109输入样例1:1 10输出样例1:9输入样例2:25 50输出样例2:20#include <iostream>#includ原创 2020-07-04 14:17:39 · 285 阅读 · 0 评论 -
数字游戏
科协里最近很流行数字游戏。某人命名了一种不降数,这种数字必须满足从左到右各位数字呈非下降关系,如 123123,446446。现在大家决定玩一个游戏,指定一个整数闭区间 [a,b][a,b],问这个区间内有多少个不降数。输入格式输入包含多组测试数据。每组数据占一行,包含两个整数 aa 和 bb。输出格式每行给出一组测试数据的答案,即 [a,b][a,b] 之间有多少不降数。数据范围1≤a≤b≤231−11≤a≤b≤231−1输入样例:1 91 19输出样例:918#inclu原创 2020-07-04 10:42:49 · 151 阅读 · 0 评论 -
度的数量
求给定区间 [X,Y][X,Y]中满足下列条件的整数个数:这个数恰好等于 KK个互不相等的 BB的整数次幂之和。例如,设 X=15,Y=20,K=2,B=2X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:17=24+2017=24+2018=24+2118=24+2120=24+2220=24+22输入格式第一行包含两个整数 XX和 YY,接下来两行包含整数 KK和 BB。输出格式只包含一个整数,表示满足条件的数的个数。数据范围1≤X≤Y≤231−11≤X≤Y≤231原创 2020-07-03 23:22:48 · 399 阅读 · 0 评论 -
树形DP----------皇宫看守
太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫各个宫殿的分布,呈一棵树的形状,宫殿可视为树中结点,两个宫殿之间如果存在道路直接相连,则该道路视为树中的一条边。已知,在一个宫殿镇守的守卫不仅能够观察到本宫殿的状况,还能观察到与该宫殿直接存在道路相连的其他宫殿的状况。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮助陆小凤布置侍卫,在...原创 2020-07-03 21:38:11 · 104 阅读 · 0 评论 -
树形DP---------战略游戏
鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他找不到解决问题的方法,这让他很伤心。现在他有以下问题。他必须保护一座中世纪城市,这条城市的道路构成了一棵树。每个节点上的士兵可以观察到所有和这个点相连的边。他必须在节点上放置最少数量的士兵,以便他们可以观察到所有的边。你能帮助他吗?例如,下面的树:只需要放置1名士兵(在节点1处),就可观察到所有的边。输入格式输入包含多组测试数据,每组测试数据用以描述一棵树。对于每组测试数据,第一行包含整数N,表示树的节点数目。接下来N行,每行按如下方法描述一原创 2020-07-03 15:28:29 · 96 阅读 · 0 评论 -
数字转换
如果一个数 xx 的约数之和 yy(不包括他本身)比他本身小,那么 xx 可以变成 yy,yy 也可以变成 xx。例如,44 可以变为 33,11 可以变为 77。限定所有数字变换在不超过 nn 的正整数范围内进行,求不断进行数字变换且不出现重复数字的最多变换步数。输入格式输入一个正整数 nn。输出格式输出不断进行数字变换且不出现重复数字的最多变换步数。数据范围1≤n≤500001≤n≤50000输入样例:7输出样例:3样例解释一种方案为:4→3→1→74→3→1→7。#inc原创 2020-07-03 14:03:02 · 670 阅读 · 1 评论 -
树形DP--------树的中心
给定一棵树,树中包含 nn 个结点(编号11~nn)和 n−1n−1 条无向边,每条边都有一个权值。请你在树中找到一个点,使得该点到树中其他结点的最远距离最近。输入格式第一行包含整数 nn。接下来 n−1n−1 行,每行包含三个整数 ai,bi,ciai,bi,ci,表示点 aiai 和 bibi 之间存在一条权值为 cici 的边。输出格式输出一个整数,表示所求点到树中其他结点的最远距离。数据范围1≤n≤100001≤n≤10000,1≤ai,bi≤n1≤ai,bi≤n,1≤ci≤10原创 2020-07-03 10:32:59 · 211 阅读 · 0 评论 -
树形DP-----------树的最长路径
给定一棵树,树中包含 nn 个结点(编号11~nn)和 n−1n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 nn。接下来 n−1n−1 行,每行包含三个整数 ai,bi,ciai,bi,ci,表示点 aiai 和 bibi 之间存在一条权值为 cici 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤100001≤n≤10000,1原创 2020-07-02 21:14:35 · 175 阅读 · 0 评论 -
树形DP---------------二叉苹果树
有一棵二叉苹果树,如果树枝有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 NN 个节点,编号为 11 至 NN,树根编号一定为 11。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵苹果树的树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。这里的保留是指最终与1号点连通。输入格式第一行包含两个整数 NN 和 QQ,分别表示树的节点数以及要保留的树枝数量。接下来 N−1N−1 行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第原创 2020-07-02 20:04:33 · 122 阅读 · 1 评论 -
状态压缩DP-----------玉米田
农夫约翰的土地由M*N个小方格组成,现在他要在土地里种植玉米。非常遗憾,部分土地是不育的,无法种植。而且,相邻的土地不能同时种植玉米,也就是说种植玉米的所有方格之间都不会有公共边缘。现在给定土地的大小,请你求出共有多少种种植方法。土地上什么都不种也算一种方法。输入格式第1行包含两个整数M和N。第2…M+1行:每行包含N个整数0或1,用来描述整个土地的状况,1表示该块土地肥沃,0表示该块土地不育。输出格式输出总种植方法对100000000取模后的值。数据范围1≤M,N≤121≤M,N≤1原创 2020-05-30 11:20:04 · 148 阅读 · 0 评论 -
状态压缩DP---------------骑士
在 n×nn×n 的棋盘上放 kk 个国王,国王可攻击相邻的 88 个格子,求使它们无法互相攻击的方案总数。输入格式共一行,包含两个整数 nn 和 kk。输出格式共一行,表示方案总数,若不能够放置则输出00。数据范围1≤n≤101≤n≤10,0≤k≤n20≤k≤n2输入样例:3 2输出样例:16#include <iostream>#include <cstdio>#include <cstring>#include <algorith原创 2020-05-21 19:53:40 · 384 阅读 · 0 评论 -
区间DP--------------棋盘分割
将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行)原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小。均方差 ,其中平均值 ,xixi为第 i 块矩形棋盘的总分。请编程对给出的棋盘及n,求出均方差的最小值。输入格式第1行为一个整数n。第2行至第9行每原创 2020-05-17 17:02:07 · 97 阅读 · 0 评论 -
区间DP-------------------加分二叉树
设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为didi,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数 若某个子树为空,规定其加分为1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,…,n)且原创 2020-05-17 14:50:27 · 117 阅读 · 0 评论 -
区间DP-----------------凸多边形的划分
给定一个具有 NN 个顶点的凸多边形,将顶点从 11 至 NN 标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成 N−2N−2 个互不相交的三角形,对于每个三角形,其三个顶点的权值相乘都可得到一个权值乘积,试求所有三角形的顶点权值乘积之和至少为多少。输入格式第一行包含整数 NN,表示顶点数量。第二行包含 NN 个整数,依次为顶点 11 至顶点 NN 的权值。输出格式输出仅一行,为所有三角形的顶点权值乘积之和的最小值。数据范围N≤50N≤50,数据保证所有顶点的权值都小于109109原创 2020-05-17 13:40:41 · 430 阅读 · 0 评论 -
区间DP-------------能量项链
在Mars星球上,每个Mars人都随身佩带着一串能量项链,在项链上有 N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 mrn(...原创 2020-05-17 10:25:22 · 211 阅读 · 1 评论 -
区间DP--------------------环形石子合并
将 nn 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。请编写一个程序,读入堆数 nn 及每堆的石子数,并进行如下计算:选择一种合并石子的方案,使得做 n−1n−1 次合并得分总和最大。选择一种合并石子的方案,使得做 n−1n−1 次合并得分总和最小。输入格式第一行包含整数 nn,表示共有 nn 堆石子。第二行包含 nn 个整数,分别表示每堆石子的数量。输出格式输出共两行:第一行为合并得分总和最小值,第原创 2020-05-16 18:26:49 · 302 阅读 · 0 评论 -
状态机模型--------------设计密码
你现在需要设计一个密码 SS,SS需要满足:SS的长度是 NN;SS只包含小写英文字母;SS不包含子串 TT;例如:abcabc和 abcdeabcde是 abcdeabcde的子串,abdabd不是 abcdeabcde的子串。请问共有多少种不同的密码满足要求?由于答案会非常大,请输出答案模 109+7109+7的余数。输入格式第一行输入整数N,表示密码的长度。第二行输入字符串T,T中只包含小写字母。输出格式输出一个正整数,表示总方案数模 109+7109+7后的结果。数据范围原创 2020-05-16 11:23:01 · 188 阅读 · 0 评论 -
状态机模型------------ 股票买卖 V
给定一个长度为 NN 的数组,数组中的第 ii 个数字表示一个给定股票在第 ii 天的价格。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 11 天)。输入格式第一行包含整数 NN,表示数组长度。第二行包含 NN 个不超过 1000010000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤10原创 2020-05-15 22:28:32 · 169 阅读 · 0 评论 -
状态机模型-----------------股票买卖 IV
给定一个长度为 NN 的数组,数组中的第 ii 个数字表示一个给定股票在第 ii 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 kk 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。输入格式第一行包含整数 NN 和 kk,表示数组的长度以及你可以完成的最大交易数量。第二行包含 NN 个不超过 1000010000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤1051≤N≤105,1原创 2020-05-14 23:07:40 · 171 阅读 · 0 评论 -
状态机模型------------大盗阿福
阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有 NN 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?输入格式输入的第一行是一个整数 TT,表示一共有 TT 组数据。接下来的每组数据,第一行是一个整数 NN ,表示一共有 NN 家店铺。第二行是 NN 个原创 2020-05-13 22:55:30 · 149 阅读 · 0 评论 -
背包模型--------------能量石
岩石怪物杜达生活在魔法森林中,他在午餐时收集了N块能量石准备开吃。 由于他的嘴很小,所以一次只能吃一块能量石。 能量石很硬,吃完需要花不少时间。吃完第 i 块能量石需要花费的时间为SiSi秒。杜达靠吃能量石来获取能量。 不同的能量石包含的能量可能不同。 此外,能量石会随着时间流逝逐渐失去能量。 第 i 块能量石最初包含EiEi单位的能量,并且每秒将失去LiLi单位的能量。 当杜达开始吃一块能量石时,他就会立即获得该能量石所含的全部能量(无论实际吃完该石头需要多少时间)。 能量石中包含的能量最多降低至0原创 2020-05-12 16:33:26 · 238 阅读 · 0 评论 -
背包模型------------------背包问题求方案数
有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vivi,价值是 wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7109+7 的结果。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有 NN 行,每行两个整数 vi,wivi,wi,用空格隔开,分别表示第 ii 件物品的体积和价值。输出格式输出一个整数,表示 方案原创 2020-05-12 14:18:33 · 179 阅读 · 0 评论 -
背包模型------------有依赖的背包问题
有 NN个物品和一个容量是 VV的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是 ii,体积是 vivi,价值是 wiwi,依赖的父节点编号是 pipi。物品的下标范围是 1…N1…N。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,VN,V,用空格隔开,分别表示物品个数和原创 2020-05-12 13:14:14 · 202 阅读 · 0 评论 -
背包模型------------混合背包问题
有 NN种物品和一个容量是 VV的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 sisi次(多重背包);每种体积是 vivi,价值是 wiwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有 NN行,每行三个整数 vi,wi,sivi,wi,si,用空格隔开,分别表示第 ii种物品的体积、价值和数原创 2020-05-12 11:28:14 · 201 阅读 · 0 评论 -
背包模型------------------货币系统
给你一个n种面值的货币系统,求组成面值为m的货币有多少种方案。输入格式第一行,包含两个整数n和m。接下来n行,每行包含一个整数,表示一种货币的面值。输出格式共一行,包含一个整数,表示方案数。数据范围n≤15,m≤3000n≤15,m≤3000输入样例:3 10125输出样例:10using namespace std;const int N = 20, M = 3100;int a[N], f[M];int main(){ int n, m; sc原创 2020-05-10 16:44:06 · 109 阅读 · 0 评论 -
背包模型-------------- 货币系统
在网友的国度中共有 n 种不同面额的货币,第 i 种货币的面额为 a[i],你可以假设每一种货币都有无穷多张。为了方便,我们把货币种数为 n、面额数组为 a[1…n] 的货币系统记作 (n,a)。 在一个完善的货币系统中,每一个非负整数的金额 x 都应该可以被表示出,即对每一个非负整数 x,都存在 n 个非负整数 t[i] 满足 a[i]× t[i] 的和为 x。然而,在网友的国度中,货币系统可能是不完善的,即可能存在金额 x 不能被该货币系统表示出。例如在货币系统 n=3, a=[2,5,9] 中原创 2020-05-10 16:25:55 · 122 阅读 · 0 评论 -
背包模型----------开心的金明
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。 设第j件物品的价格为v原创 2020-05-08 22:23:13 · 89 阅读 · 0 评论 -
背包模型-----------金明的预算方案
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2个附...原创 2020-05-07 21:29:26 · 116 阅读 · 0 评论 -
背包模型-----------机器分配
总公司拥有M台 相同 的高效设备,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。盈利与分配的设备数量有关。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入格式第一行有两个数,第一个数是分公司数N,第二个数是设备台数M;接下来是一个N*M的矩阵,矩阵中的第 i 行第 j ...原创 2020-05-06 22:39:11 · 192 阅读 · 0 评论 -
背包模型------------背包问题求具体方案
有 NN 件物品和一个容量是 VV 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vivi,价值是 wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是 1…N1…N。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有 NN...原创 2020-05-06 18:48:46 · 120 阅读 · 0 评论 -
背包模型-----------买书
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。问小明有多少种买书方案?(每种书可购买多本)输入格式一个整数 n,代表总共钱数。输出格式一个整数,代表选择方案种数。数据范围0≤n≤10000≤n≤1000输入样例1:20输出样例1:2输入样例2:15输出样例2:0输入样例3:0输出样例3:1#include <iostream...原创 2020-05-05 15:04:11 · 205 阅读 · 0 评论