自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排列与组合

按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

2025-03-31 19:05:06 216

原创 最长公共子序列

使用二维数组dp[i][j]来表示序列a的前i个元素和序列b的前j个元素的最长公共子序列的长度。

2025-03-27 23:37:28 163

原创 LIS(合唱队形+蓝桥勇士)

LIS 最长递增子序列,在原序列的基础上剔除一些元素使其形成最长递增子序列,保持原序列不变。

2025-03-27 19:00:41 790

原创 安全序列(动态规划)

此时前i-k-1个位置放置油桶的方案数为dp[i-k-1],也就是第i个位置放置油桶的时候,前i-k-1个位置有dp[i-k-1]种放置油桶的方式满足间隔要求组合起来也就是前i个位置放置油桶的方案数为dp[i-k-1],当前位置放与不放组合起来为 (dp[i-k-1]+dp[i-1])总体的思想: 对于dp[i]表示前i个位置放置油桶的方案数,我们考虑第第i个位置的两种选择,放与不放油桶。不放:当位置i选择不放的时候,当选择不放的时候 ,位置i的方案数就等于位置i-1的方案数,个位置不放油桶” 的方案数。

2025-03-27 12:29:31 633

原创 P2440 木材加工(二分)

要保护环境。

2025-03-26 23:07:31 300

原创 P1824 进击的奶牛

Farmer John 建造了一个有 N(2≤N≤105) 个隔间的牛棚,这些隔间分布在一条直线上,坐标是 x1​,x2​,⋯,xN​(0≤xi​≤109)。他的 C(2≤C≤N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,Farmer John 想把这些牛安置在指定的隔间,所有牛中相邻两头的最近距离越大越好。那么,这个最大的最近距离是多少呢?

2025-03-26 22:29:29 326

原创 离散化构造

【代码】离散化构造。

2025-03-20 11:57:42 68

原创 区间更新(一维差分数组)

每一组数据第一行有两个整数 n,m(0<n,m<105)n,m(0<n,m<105)。第二行有 nn 个整数,分别代表 a[1],a[2],...,a[n](0≤a[i]<10)a[1],a[2],...,a[n](0≤a[i]<10) 的初始值。接下来就 mm 行,每一行有 33 个整数 x,y,z(0<x≤y≤n,0<z<10)x,y,z(0<x≤y≤n,0<z<10)。给定一个长度为 nn 的数组 a[1],a[2],...,a[n]a[1],a[2],...,a[n]。

2025-03-20 11:11:54 311

原创 统计子矩阵(二维前缀和)

对于 100%100% 的数据, 1≤N,M≤500;0≤Aij≤1000;给定一个 N×MN×M 的矩阵 AA, 请你统计有多少个子矩阵 (最小 1×11×1, 最大 N×M)N×M) 满足子矩阵中所有数的和不超过给定的整数 KK?对于 70%70% 的数据, N,M≤100N,M≤100.对于 30%30% 的数据, N,M≤20N,M≤20.大小为 1×11×1 的有 10 个。大小为 1×21×2 的有 3 个。大小为 1×41×4 的有 1 个。

2025-03-19 13:44:08 135

原创 区间次方和

给定一个长度为 nn 的整数数组 aa 以及 mm 个查询。每个查询包含三个整数 l,r,kl,r,k 表示询问 l∼rl∼r 之间所有元素的 kk 次方和。请对每个查询输出一个答案,答案对 109+7109+7 取模。第一行输入两个整数 n,mn,m 其含义如上所述。第二行输入 nn 个整数 a[1],a[2],...,a[n]a[1],a[2],...,a[n]。接下来 mm 行,每行输入三个整数 l,r,kl,r,k 表示一个查询。输出 mm 行,每行一个整数,表示查询的答案对 109+7109+7

2025-03-19 11:58:44 267

原创 小郑的蓝桥平衡串(前缀和)

例如,abababababab 和 aababbaababb 都是平衡串,因为每种字符各有三个,而 abaababaab 和 aaaabaaaab 都不是平衡串,因为它们的字符数量不相等。小郑拿到一个只包含 LL、QQ 的字符串,他的任务就是找到最长平衡串,且满足平衡串的要求,即保证子串中 LL、QQ 的数量相等。总通过次数: 3247 | 总提交次数: 3415 | 通过率: 95.1%平衡串指的是一个字符串,其中包含两种不同字符,并且这两种字符的数量相等。

2025-03-19 11:55:25 266

原创 地宫取宝(记忆化搜索)

输入一行 3 个整数,用空格分开:n,m,k (1≤n,m≤50,1≤k≤12)n,m,k (1≤n,m≤50,1≤k≤12)。接下来有 nn 行数据,每行有 mm 个整数 Ci (0≤Ci≤12)Ci​ (0≤Ci​≤12) 代表这个格子上的宝物的价值。要求输出一个整数,表示正好取 kk 个宝贝的行动方案数。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是 kk 件,则这些宝贝就可以送给小明。

2025-03-18 19:05:29 123

原创 混境之地5(记忆化搜索)

第 11 行输入三个正整数 n,mn,m 和 kk , n,mn,m 表示混境之地的大小, kk 表示使用一次喷气背包可以升高的高度。对于所有测试样例, 1≤n,m≤10001≤n,m≤1000 , 1≤k,hij≤1061≤k,hij​≤106。第 22 行输入四个正整数 A,B,C,DA,B,C,D ,表示小蓝当前所在位置的坐标,以及混境之地出口的坐标。第 33 行至第 n+2n+2 行,每行 mm 个整数,表示混境之地不同位置的高度。小蓝想知道他能否逃离这个混境之地,如果可以逃离这里,输入。

2025-03-18 16:57:28 361

原创 P1025 [NOIP 2001 提高组] 数的划分(dfs)

将整数 n 分成 k 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1.问有多少种不同的分法。

2025-03-17 20:18:58 251

原创 特殊的多边形

假设一个 nn 边形 nn 条边为 a1,a2,a3,⋯,ana1​,a2​,a3​,⋯,an​,定义该 nn 边形的值 v=a1×a2×a3×⋯×anv=a1​×a2​×a3​×⋯×an​。

2025-03-16 23:34:16 165

原创 数字王国之军训排队

数字王国开学了,它们也和我们人类一样有开学前的军训,现在一共有 nn 名学生,每个学生有自己的一个名字 aiai​(数字王国里的名字就是一个正整数,注意学生们可能出现重名的情况),此时叛逆教官来看了之后感觉十分别扭,决定将学生重新分队。例:有 44 名学生 (2,3,4,4)(2,3,4,4),最少可以分成 (2,3)(2,3)、(4)(4)、(4)(4) 共 33 队。排队规则为:将学生分成若干队,每队里面至少一个学生,且每队里面学生的名字不能出现倍数关系(注意名字相同也算是倍数关系)。

2025-03-16 21:19:23 202

原创 小朋友崇拜圈(DFS)

题目描述班里 N 个小朋友,每个人都有自己最崇拜的一个小朋友(也可以是自己)。在一个游戏中,需要小朋友坐一个圈,每个小朋友都有自己最崇拜的小朋友在他的右手边。求满足条件的圈最大多少人?小朋友编号为 1,2,3,⋯N。

2025-03-15 00:13:00 182

原创 N皇后问题(python 回溯法)

N皇后问题。

2025-03-13 20:13:25 91

原创 试题 算法训练 最大最小公倍数

资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。

2024-03-30 20:25:42 166 1

原创 试题 算法训练 区间k大数查询

资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s。

2024-03-30 19:14:36 187 1

原创 P3367 【模板】并查集

采用并查集的思想,并查集可以解决的问题是,1.查询两个集合是否属于一个集合,2.将两个集合合并成一个集合。1.当问到是否属于一个集合时就是查询一下这两棵树的根节点是否一样,2当要合并这两个集合时也是将一个集合的根节点搭在另一个集合的根节点上,相当于画一条线。对于 100%100% 的数据,1≤N≤10e4,1≤M≤2×10e5,1≤Xi​,Yi​≤N,Zi∈{1,2}Zi​∈{1,2}。当 Zi​=2 时,输出Xi​ 与 Yi​ 是否在同一集合内,是的输出。对于 30%30% 的数据,N≤10,M≤20。

2024-03-16 14:54:02 412 1

原创 U410974 区间和

相当于是在负这么多到正这么多的数轴上去找1到10e5这么多个数,如果直接按照前缀和进行操作那么会超时,这个时候可以采取离散化的方法,接下来,进行 m 次询问,每个询问包含两个整数 l 和 r ,你需要求出在区间 [l,r] 之间的所有数的和。初看题目,会觉得这个题目是关于求前缀和的,然后看到说明提示时会发现,数的范围很大。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。再接下来 m 行,每行包含两个整数 l 和 r。

2024-03-12 16:12:24 454 1

原创 P8772 [蓝桥杯 2022 省 A] 求和

可以将a1​⋅a2​+a1​⋅a3​+⋯+a1​⋅an​+a2​⋅a3​+⋯+an−2​⋅an−1​+an−2​⋅an​+an−1​⋅an​,合并同类项,即。给定 n 个整数 1,2,⋯ ,a1​,a2​,⋯,an​, 求它们两两相乘再相加的和,即。第二行包含 n 个整数 1,2,⋯a1​,a2​,⋯an​。输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。即S=ai(sn-si)i从1到n之和。输入的第一行包含一个整数 n。题目思路结合了给我讲题的师兄。

2024-03-09 16:07:18 540

原创 一位前缀和

接下来 m 行,每行包含两个整数 l 和 r ,表示一个询问的区间范围。−1000≤数列中元素的值≤1000−1000≤数列中元素的值≤1000。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。接下来再输入 m 个询问,每个询问输入一对 l,r。前缀和构造的公式:s[i+1]=s[i]+a[i]第二行包含 n 个整数,表示整数数列。共 m 行,每行输出一个询问的结果。第一行包含两个整数 n 和 m。输入一个长度为 n 的整数序列。求区域的公式:s[r]-s[l]思路:这道题是求一维前缀和。

2024-03-09 15:32:15 593

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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