自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 树状数组(简易试图)//用于求动态数组的前缀和

那么可以显然:如果我们想要某一个位置+b。但我们依次求1到n的时候有些数据用不到。

2023-04-07 11:24:13 161

原创 最长上升子序列(转换成二分问题)

给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。

2023-04-07 10:27:43 100

原创 多重背包问题(转换成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关注的人

提示
确定要删除当前文章?
取消 删除