- 博客(9)
- 收藏
- 关注
原创 多重背包问题(转换成01背包问题)
有N种物品和一个容量是V的背包。第i种物品最多有si件,每件体积是vi,价值是wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。
2023-04-07 07:26:39
516
原创 最长公共子序列
.问题描述: 输入两个字符串 输出最长公共子序列的长度。若最大公共子序列的长度大于0,则还会输出一个最大公共子序列。 举例: cnblogs与belong 4 blog (注意:子序列是不连续的,而子串是连续的。但它们的字符出现顺序均与所输入字符串的字母先后顺序一致。) 1.状态表示dp[i][j] : 只看第一个序列a 前i个字母,第二个序列b 前j个字母的公共子序列 2.属性 max 3.状态计算 分别有四种情况 1.不用a[i],不用b[i] (0,0) ...
2022-04-06 01:31:44
173
原创 数字三角形(线性dp)
给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输入格式 第一行包含整数n,表示数字三角形的层数。 接下来n行,每行包含若干整数,其中第i 行表示数字三角形第i 层包含的整数。 输出格式 输出一个整数,表示最大的路径数字和。 数...
2022-04-04 23:00:09
444
原创 完全背包问题
有 N种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 ii种物品的体积是 vi,价值是 wi 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。 输出格式 输出一个整数,表示最大价值。 数据范围 0<N,V≤10000<N,V≤1000 0<vi,wi≤
2022-04-04 22:09:18
130
原创 01背包问题(二维-->一维)
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 v,价值是 w 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数, N,V ,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 vi, wi,用空格隔开,分别表示第 i 件物品的体积和价值。 输出格式 输出一个整数,表示最大价值。 数据范围 0<N,V≤10000<N,V≤1000 0<v..
2022-04-04 13:17:29
643
1
原创 N皇后问题
/* N 皇后问题源自国际象棋,所有棋子中权力最大的称为皇后, 它可以直着走、横着走、斜着走(沿 45 度角),可以攻击移动 途中遇到的任何棋子。N 皇后问题的具体内容是:如何将 N 个皇 后摆放在 N*N 的棋盘中,使它们无法相互攻击。 输入 N 输出 所有可能性 Q代表皇后 *代表其余棋子 */ /* 首先考虑横竖不能有皇后 那么我们可以通过全排列来解决 例如 0 1 3 2--->(0,0)(1,1),(2,3),(3,2) 其次考虑斜着的 有斜率为1和-1的 ...
2022-04-03 18:34:53
439
原创 开关01问题
一共有五个开关,当开关为开的时候开的时候就要发生fun事件。 for (int i = 0; i < 1 << 5; i++) for (int j = 0; j < 5; j++) if (i >> j & 1) fun(); 枚举0000 到 1111(2进制) 每一位是1则发生fun 相关题目: 费解的开关 飞行员兄弟 附上费解的开关代码 #include <iostream> #include <cstring
2022-04-03 18:30:57
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人