- 博客(76)
- 收藏
- 关注
原创 知识点总结
最小步数ans=max(abs(负数合),abs(正数合));先求原数组的差分数组,再求差分数组中正数的合与负数的合,使一个数组变为全0数组的最小步数。
2024-03-02 22:30:56
154
原创 P1443 马的遍历(超详解)
有一个 n×m 的棋盘,在某个点 (x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。一个 n×m 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 −1)。对于全部的测试点,保证 1≤x≤n≤400,1≤y≤m≤400。输入只有一行四个整数,分别为 n,m,x,y。
2023-11-06 22:38:22
412
原创 java中字符串的初始化和常用API(代码实现)
1,length();返回字符串长度2,split();字符串分割3,indexOf 字符查询和字符串查询4,equals() 字符串比较相同返回true不同返回false5,compareTo() 字符串按照字典序比较大小,大于返回整数小于返回负数等于返回06,startsWith() 判断是否以某一个前缀开头。
2023-11-05 20:09:22
264
原创 java中数组的常用API
1,length;返回数组长度数组排序3,Arrays.toString(a)一维数组转化为字符串});二维数组排序5,deepToString(b) 二维数组转化为字符串初始化一维数组。
2023-11-05 13:11:39
312
原创 P1605 迷宫
给定一个N×M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。
2023-10-30 14:27:30
74
原创 P2404 自然数的拆分问题
任何一个大于 11 的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。dfs递归求解,假设1到n-1每个数都有n个,现在在这n(n-1)个数里选取任意个数字,使这些数字的和为n,因此这n(n-1)个数只有选和不选两种状态,正是dfs的经典应用,得到的结果可能会有重复的。输入:待拆分的自然数 n。输出:若干数的加法式子。数据保证,2≤n≤8。
2023-10-26 19:55:30
136
原创 AcWing5277. 三元组
给定一个长度为 n 的正整数数组 a1,a2,…,an请你计算,一共有多少个三元组 (i,j,k)(1≤i<j<k≤n),使得 ai⋅aj⋅ak 为最小可能值。
2023-10-15 15:51:47
190
原创 P1996 约瑟夫问题
n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 11 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。输出一行 n 个整数,按顺序输出每个出圈人的编号。输入两个整数 n,m。
2023-10-14 11:25:39
339
原创 AcWing 788. 逆序对的数量(归并排序)
基本思想归并排序是用分治思想,分治模式在每一层上有三个步骤:(1)分解:将n个元素分解成n/2个元素的子序列。(2)解决:用合并排序法对两个子序列递归排序。(3)合并:合并两个已排序的子序列得到排序结果。
2023-09-05 13:29:24
129
原创 P1886 滑动窗口 /【模板】(双端队列)+双端队列用法
有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。对于 100%100% 的数据,1≤k≤n≤106,ai∈[−2^31,2^31)。输入一共有两行,第一行有两个正整数 n,k。第二行 n 个整数,表示序列 a。对于 50%50% 的数据,1≤n≤105;输出共两行,第一行为每次窗口滑动的最小值。第二行为每次窗口滑动的最大值。
2023-09-03 11:52:46
228
原创 2023河南萌新联赛(八)(F题 小前前)
例如 对于[3,4,8,5,9,7]这个数组来说,[3,4],[8,5,9]是它的连续子序列,[3,8,5],[4,7]则不是。给定一个长度为n的数组a,并给出q次询问,每次询问给出三个数,分别是l,r,x。的相或 ( | ) 的值再或 ( | ) 上x,让其值最大,并输出这个值。连续子序列为从数组开头删除若干个数,数组末尾删除若干个数得到的结果。接下来有q行每行分别有三个数表示该次询问的l,r,x。对任意的 i(1≤i≤n), 1≤ai≤2^60−1。输出q行,第i行代表第i次询问的答案。
2023-08-30 20:36:01
200
原创 最大公约数(gcd)和最小公倍数(lcm)
在坐标里,将点(0, 0)和(a, b)连起来,通过整数坐标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。则: gcd(a/m ,b/m)=gcd(a,b)/m。如果m是a和b的最大公约数,
2023-08-18 11:56:25
331
原创 B3644 【模板】拓扑排序 / 家谱树
有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列,使得每个人的后辈都比那个人后列出。
2023-08-18 11:16:36
281
原创 P6867 [COCI2019-2020#5] Politicari
利用暴力可以过一般的样例,通过枚举可以找到图中的环,进而减少操作次数。矩阵的主对角线(就是从左上到右下的那条对角线)全是。第一行:两个正整数,
2023-08-17 17:17:00
134
原创 A. Copil Copac Draws Trees(Codeforces Round 875 (Div. 1))
Copil Copac is given a list of n−1n-1n−1 edges describing a tree of nnn vertices. He decides to draw it using the following algorithm:The number of readings is defined as the number of times Copil Copac performs step 111.Find the number of readings needed
2023-08-16 10:33:27
278
原创 C. Yet Another Permutation Problem(Codeforces Round 893 (Div. 2))
Alex got a new game called “GCD permutations” as a birthday present. Each round of this game proceeds as follows:Alex has already played several rounds so he decided to find a permutation a1,a2,…,ana_1, a_2, \ldots, a_na1,a2,…,an such that its score is
2023-08-16 10:17:42
227
原创 最小生成树(Kruskal)克鲁斯卡尔算法
理论上,他们是 N 行,每行由 N 个用空格分隔的数组成,实际上,由于每行 80 个字符的限制,因此,某些行会紧接着另一些行。由 V中的全部 n个顶点和 E 中 n−1条边构成的无向连通子图被称为 G的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。当然,他需要你的帮助。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。共一行,若存在最小生成树,则输出一个整数,表示最小生成树的树边权重之和,如果最小生成树不存在则输出。
2023-08-14 16:18:09
751
1
原创 P8604 [蓝桥杯 2013 国 C] 危险系数
y), 如果能找到一个站点 z,当 z 被敌人破坏后,x 和 y 不连通,那么我们称 z 为关于 x,y 的关键点。相应的,对于任意一对站点 x 和 y,危险系数DF(x,y) 就表示为这两点之间的关键点个数。暴搜,我们可以求出所有的路径,并标记所有路径中的点,当某个点被标记的数量等于总路径数量时,这个点就为关键点。输入数据第一行包含 2个整数 n(2≤n≤1000),m(0≤m≤2000),分别代表站点数,通道数。最后 1 行,两个数 u,v,代表询问两点之间的危险系数 DF(u,v)。
2023-08-14 10:59:46
1527
原创 多元最短路(Floyd)
对于 100% 的数据n≤100,m≤4500,任意一条边的权值 w 是正整数且 1⩽w⩽1000。接下来 m 行,每行三个整数 u,v,w,代表 u,v 之间存在一条边权为 w 的边。第 i 行的第 j 个整数代表从 i 到 j 的最短路径。第一行为两个整数 n,m,分别代表点的个数和边的条数。给出一张由 n 个点 m 条边组成的无向图。求出所有点对 (i,j) 之间的最短路径。输出 n 行每行 n 个整数。
2023-08-13 14:28:55
684
原创 P1722 矩阵 II
给定一个1×2n 的矩阵(usqwedf:这不是一个 2n 的队列么),现让你自由地放入红色算筹和黑色算筹,使矩阵平衡[即 ∀i∈[1,2n],1∼i 格中红色算筹个数大于等于黑色算筹]。递推方程 dp[i][j]=dp[i-1][j]+dp[i-1][j-1];问有多少种方案满足矩阵平衡(注意红色算筹和黑色算筹的数量必须相等)。众所周知,在中国古代算筹中,红为正,黑为负……如果你在百忙之中抽空看题,请自动跳到第六行。方案数 t 对 100取模后的结果。方案一:红,黑,红,黑。方案二:红,红,黑,黑。
2023-08-12 11:13:30
1152
原创 P8605 [蓝桥杯 2013 国 AC] 网络寻路
X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中间节点必须不同。如图 11 所示的网络。1→2→3→1是允许的。1→2→1→2 或者 1→2→3→2 都是非法的。
2023-08-11 19:03:53
972
原创 next_permutation与prev_permutation(全排列函数)
【代码】next_permutation与prev_permutation(全排列函数)
2023-08-04 17:08:09
147
原创 分组背包(模板)
有 N组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。
2023-08-04 11:21:11
192
原创 多重背包(模板)
接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。把相同的物品按2的n次方进行分组,然后按01背包的思想对分好组的物品进行挑选。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。第 i种物品最多有 si 件,每件体积是 vi,价值是 wi。有 N 种物品和一个容量是 V 的背包。输出一个整数,表示最大价值。
2023-08-04 11:18:08
172
原创 P1164 小A点菜
餐馆虽低端,但是菜品种类不少,有 N 种 (N≤100),第 i 种卖ai 元 (ai≤1000)。由于是很低端的餐馆,所以每种菜只有一份。小 A 奉行“不把钱吃光不罢休”,所以他点单一定刚好把 uim 身上所有钱花完。他想知道有多少种点菜方法。uim 神犇拿到了 uoi 的 ra(镭牌)后,立刻拉着基友小 A 到了一家……第二行起 N 个正数 ai(可以有相同的数字,每个数字均在 1000 以内)一个正整数,表示点菜方案数,保证答案的范围在 int 之内。第一行是两个数字,表示 N 和 M。
2023-08-03 17:54:37
365
原创 P1049 [NOIP2001 普及组] 装箱问题
现在从 n 个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积。接下来 n 行,每行有一个正整数,表示第 i 个物品的体积。对于 100%数据,满足 0<n≤30,1≤V≤20000。共一行一个整数,表示箱子最小剩余空间。第一行共一个整数 V,表示箱子容量。第二行共一个整数 n,表示物品总数。
2023-08-03 16:10:53
258
原创 01背包详解(二维到一维)
有 N件物品和一个容量为 V 的背包,每件物品有各自的价值且只能被选择一次,要求在有限的背包容量下,装入的物品总价值最大。「0-1 背包」是较为简单的动态规划问题,也是其余背包问题的基础。动态规划是不断决策求最优解的过程,「0-1 背包」即是不断对第 i个物品的做出决策,「0-1」正好代表不选与选两种决定。
2023-08-03 11:58:36
90
原创 P1036 [NOIP2002 普及组] 选数
已知 n 个整数 1,2,⋯ ,x1,x2,⋯,xn,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。第二行 n 个整数,分别为 1,2,⋯ ,x1,x2,⋯,xn(1≤xi≤5×106)。第一行两个空格隔开的整数 n,k(1≤n≤20,k<n)。例如上例,只有一种的和为素数:3+7+19=29。现在,要求你计算出和为素数共有多少种。输出一个整数,表示种类数。
2023-08-02 22:35:14
445
原创 P1162 填涂颜色
由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 个方向。现要求把闭合圈内的所有空间都填写成 2。先把圈外面的0全部变成3然后再对整个矩阵进行遍历把所有的0全部变成2,再把所有的3变成0最后输出,遍历的时候要遍历到n+1z否则就会出现下面这种情况。接下来 n 行,由 0 和 1 组成的 n×n 的方阵。每组测试数据第一行一个整数n(1≤n≤30)。方阵内只有一个闭合圈,圈内至少有一个 0。对于 100% 的数据1≤n≤30。已经填好数字 2 的完整方阵。
2023-07-31 17:07:34
326
原创 P1734 最大约数和
选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。取数字 4 和 6,可以得到最大值 (1+2)+(1+2+3)=9。对于 100%的数据,1≤S≤1000。输入一个正整数 S。输出最大的约数之和。
2023-07-31 16:21:17
322
原创 B3637 最长上升子序列
最长上升子序列## 题目描述这是一个简单的动规板子题。给出一个由 $n(n\le 5000)$ 个不超过 $10^6$ 的正整数组成的序列。请输出这个序列的**最长上升子序列**的长度。最长上升子序列是指,从原序列中**按顺序**取出一些数字排在一起,这些数字是**逐渐增大**的。## 输入格式第一行,一个整数 $n$,表示序列长度。第二行有 $n$ 个整数,表示这个序列。## 输出格式一个整数表示答案。## 样例 #1### 样例输入 #1```6```
2023-07-30 23:40:00
253
1
原创 C 游游的二进制树
题目描述游游拿到了一棵树,共有nnn个节点,每个节点都有一个权值:0或者1。这样,每条路径就代表了一个二进制数。游游想知道,有多少条路径代表的二进制数在[l,r][l,r][l,r]区间范围内?(请注意:路径长度至少为1,例如,节点3到节点3虽然有一个权值,但并不是合法路径!
2023-07-30 23:37:12
364
原创 2023河南萌新联赛第(三)场:郑州大学
先设一个变量记录所有攻击中普通攻击最高的值,然后把让怪兽依次减去所有最高伤害中的大于最高普通攻击的伤害,如果怪兽没有被击杀的话,就一直用最高普通攻击伤害一直减。数据保证不会出现类似(a(b)c)的括号镶嵌,只会出现d(a)(b)(c)这样的并列括号,且保证括号是匹配的,不会出现)k(的情况。当然,还有很多逗号','。只有一把回旋镖,你可以先打两次伤害为3的,再打一次倾尽全力的,造成的伤害为5。的逗号','换成句号'.',数据保证不会存在类似(a(b)c)这样的括号镶嵌,只会存在()()()()这样的。
2023-07-28 11:26:54
313
原创 P1021 [NOIP1999 提高组] 邮票面值设计
可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以 MAX=7,面值分别为1分、3分。这题大概题意就是选k个数,用这k个数进行组合,k个数可以重复选取,但是所选的数的总数量不能超过n,然后求一个这k个数所能组成的最大值max,并且需要k个数能组成1~max中的所有数,这个max才是合法的。给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1至MAX之间的每一个邮资值都能得到。
2023-07-23 18:11:01
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人