算法
文章平均质量分 58
备战算法竞赛
黑夜蔓蔓
这个作者很懒,什么都没留下…
展开
-
13年12月CCF计算机软件能力认证
我们把一个数称为有趣的,当且仅当:1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。3. 最高位数字不为0。给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方格; '+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格; '-':原创 2023-09-18 22:26:03 · 217 阅读 · 0 评论 -
背包 问题
有n件物品(可以被分成几组)和一个容量为m的背包,第i件物品的体积是v[ i ],价值是w[ i ],组号为p[ i ],每组只能选一个物品,求在不超过背包容量的前提下,可以放的物品的最大价值是多少。有n种物品和一个容量为m的背包,第 i 种物品有s[ i ]件,每件体积是v[ i ],价值是w[ i ],求在不超过背包容量的前提下,可以放的物品的最大价值是多少。三种背包混合起来,即有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。原创 2023-08-15 21:19:30 · 195 阅读 · 0 评论 -
2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)
2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)亚运奖牌榜出院骰子游戏相对论大师相对成功与相对失败原创 2023-07-23 22:39:51 · 3515 阅读 · 15 评论 -
约 数
1.试除法求约数试除法求约数给定 nn 个正整数 aiai,对于每个整数 aiai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数 nn。接下来 nn 行,每行包含一个整数 aiai。输出格式输出共 nn 行,其中第 ii 行输出第 ii 个整数 aiai 的所有约数。数据范围1≤n≤1001≤n≤100,2≤ai≤2×1092≤ai≤2×109输入样例:268输出样例:1 2 3 6 1 2 4 8 #in原创 2022-02-13 19:26:23 · 118 阅读 · 0 评论 -
质 数
1.定义对大于1的自然数,只包含1和它本身两个约数(只能被1和它本身整除)2.质数的判定——试除法试除法判定质数给定 n 个正整数 ai,判定每个数是否是质数。输入格式第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。输出格式共 n行,其中第 i 行输出第 i个正整数 ai是否为质数,是则输出 Yes,否则输出 No。数据范围1≤n≤1001≤n≤100,1≤ai≤231−11≤ai≤231−1输入样例:226输出样例:..原创 2022-02-13 16:51:07 · 349 阅读 · 0 评论 -
快 速 幂
快速幂思路:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...原创 2022-02-21 22:48:44 · 59 阅读 · 0 评论 -
算术基本定理
算数基本定理:任何一个≥2的自然数 N都可以唯一分解成有限个素数(质数)的幂的乘积。N = P1^a1 * P2^a2 * P3^a3 * ……* Pr^ar这里P1 < P2 < P3 .. … < Pr 均为素数,其中指数ai是正整数原创 2022-02-13 18:51:30 · 314 阅读 · 0 评论 -
2022寒假day1
q1:乐乐爱喝水乐乐在沙漠里走丢了。目前他有n升水,每天他会喝正整数升的水。乐乐现在想知道有多少种不同的喝法使他完全喝完这n升水。输入第一行包含一个正整数T(T ≤ 10),表示有T组数据。 接下来的T行,每行包含一个整数n (1≤n≤1000000),表示乐乐初始有n升水。输出包含T行。每行是一个二进制数,表示能够喝完这n升水的方案数。样例输入 Copy236样例输出 Copy100100000提示对于第一组数据,总共有...原创 2022-01-17 21:53:35 · 192 阅读 · 0 评论 -
2022寒假day2
q1:最短子串时间限制: 1.000 Sec 内存限制: 128 MB题目描述给出字符串S,字符串的每一个字符是’1’或’2’或’3’。你要从S中选取一段连续字符,不妨假设这段连续的字符构成的字符串是T,你的目标是使得T的长度最短,而且字符’1’、’2’、’3’在T中都出现过。如果无法完成目标则输出0,否则输出T的最短长度。输入一个字符串S,长度不超过200000。输出一个整数。样例输入 Copy112233样例输出 Copy4提示对于60%的原创 2022-01-20 18:58:27 · 941 阅读 · 0 评论 -
36数字游戏
题目描述有一天,小明给佳佳出了一道题,给出一个正整数n,佳佳可以进行如下三种操作:1、使n减去12、如果n是2的倍数,使n除以23、如果n是3的倍数,使n除以3问佳佳最少可以通过几步操作,将n变为0。为了考验佳佳的知识水平,小明给出了T个数字n1,n2,…,nT,让佳佳对每个数字都给出答案。然而佳佳一心只想着晚上吃啥,想让聪明的你来帮助他解决这个问题,并答应解决后请你吃饭,于是你义不容辞地接下了这个任务。输入第一行一个正整数T,表示总共有T个数字;接下来T行,每行一个正整数ni原创 2022-02-08 16:12:46 · 311 阅读 · 0 评论 -
36问题 E: 朋友
题目描述经过六年的努力,小明终于被一所知名中学录取。优秀的小明总是对一些奇奇怪怪的事情感兴趣,这次他想知道谁在这所新学校拥有的朋友最多,由于大家都才刚报到,所以小明只知道大家两两之间是否是朋友关系。输入的第一行有两个整数n和m,n表示总人数,m表示总关系数。 接下来n行,每行有2个以空格隔开的整数a和b,表示a和b是朋友,a和b均为1到n之间的整数。不会给出重复的朋友关系。输出仅有一行,表示朋友数最多的人所拥有的朋友,每两个整数之间用空格隔开,按照字典序从小到大输出。如果存...原创 2022-02-08 15:42:13 · 89 阅读 · 0 评论 -
2022寒假day3
q1:2的幂数时间限制: 1.000 Sec 内存限制: 128 MB题目描述小明开始学习二进制转化到十进制,其中要用到2的幂(2的3次幂就是3个2相乘),他觉得这个很有意思。既然通过2的幂相加可以得到十位数,那么反过来,一个十进制数是否可以通过若干个2的幂相加得到呢?小明开始研究起来,他先列出了所有2的幂:1,2,4,8,16,32,64……。4=1+1+1+14=1+1+24=2+24=4 4共有4种方法7=1+1+1+1+1+1+17=1+...原创 2022-01-21 16:37:04 · 237 阅读 · 0 评论 -
分数统计(并查集+高精度)
题目描述在统计完朋友情况之后,小明又对大家的毕业学校产生兴趣,但是他觉得单纯的统计人数是一件非常无聊的事情,于是他设计了一个算法,同一所学校毕业的学生,第1个将获得1分,第2个获得2分,第3个获得4分…,第i个将获得2i-1分,总分就是这所小学的得分,小明想知道得分最高的学校有多少分。输入第一行有两个整数n和m,n表示总人数,m表示已知的同校关系数量。接下来n行,每行有2个以空格隔开的整数a和b,表示a和b是来自同一所学校,a和b均为1到n之间的整数。不会给出重复的信息。输出只有一原创 2022-02-08 15:33:58 · 526 阅读 · 0 评论 -
2022寒假day1——补题场
q1:趣味彩票题目描述现今,社会上流行着各种各样的福利彩票,彩票已经融入到了人们的日常生活之中。彩票之所以能吸引那么多的人们,玩法多是一大原因。小明五一放假和爸爸一起到广州游玩,发现了一种趣味彩票,玩法新颖,有别于传统的彩票形式。规则是这样的:1.彩票中心每期随机产生N行M列整数(整数范围为-100~100);2.彩民选取1~10000之间的任意一个整数P,P即为选取的彩票号码;3.彩票中心产生特等奖号码的规则如下:(1)从随机产生的N*M个数中选取M个数,每列必须选取一个,这样有NM种.原创 2022-01-17 22:53:30 · 386 阅读 · 0 评论 -
二 分
整数二分小数二分如果题目要求保留k位小数,二分到 r - l < 10 ^ (k + 2 )例题剪绳子 题目 提交记录 讨论 题解 视频讲解有NN根绳子,第ii根绳子长度为LiLi,现在需要MM根等长的绳子,你可以对NN根绳子进行任意裁剪(不能拼接),请你帮忙计算出这MM根绳子最长的长度是多少。输入格式第一行包含22个正整数N、MN、M,表示原始绳子的数量和需求绳子的数量。第二行包含NN个整数,...原创 2022-02-16 16:38:47 · 101 阅读 · 0 评论 -
reverse函数
将一个数组首尾交换位置例如可以将123456789变为987654321例题回文平方回文数是指数字从前往后读和从后往前读都相同的数字。例如数字1232112321就是典型的回文数字。现在给定你一个整数BB,请你判断1∼3001∼300之间的所有整数中,有哪些整数的平方转化为BB进制后,其BB进制表示是回文数字。输入格式一个整数BB。输出格式每行包含两个在BB进制下表示的数字。第一个表示满足平方值转化为BB进制后是回文数字那个数...原创 2022-02-15 22:45:01 · 259 阅读 · 0 评论 -
补题1.18
q1:货仓选址在一条数轴上有 NN 家商店,它们的坐标分别为 A1∼ANA1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数 NN。第二行 NN 个整数 A1∼ANA1∼AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤1000001≤N≤100000,0≤Ai≤400000≤Ai≤40000输入样例:...原创 2022-01-19 22:35:19 · 463 阅读 · 0 评论 -
同余 因式分解
阶乘NN的阶乘(记作N!N!)是指从11到NN(包括11和NN)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字NN,请你求出N!N!的最右边的非零数字是多少。例如5!=1×2×3×4×5=1205!=1×2×3×4×5=120,所以5!5!的最右边的非零数字是22。输入格式共一行,包含一个整数NN。输出格式输出一个整数,表示N!N!的最右边的非零数字。数据范围1≤N≤10001≤N≤1000输入样例:...原创 2022-02-16 19:43:23 · 374 阅读 · 0 评论 -
Acwing 1.21
\数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数 nn,表示数字三角形的层数。接下来 nn 行,每行包含若干整数,其中第 ii 行表示数字三角形第 ii 层包含的整数。输出格式原创 2022-01-21 17:23:38 · 54 阅读 · 0 评论 -
增减序列 (差分前缀和+贪心)
给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。接下来 n行,每行输入一个整数,第 i+1 行的整数代表 ai。第二行输出最终能得到多少种结果。第一行输出最少操作次数。第一行输入正整数 n。原创 2022-10-26 12:20:23 · 105 阅读 · 0 评论 -
状态机模型
一系列有序的事件,状态机可以把事件中的各个状态描述清楚状态机把某一个点扩展成一个过程例如:股票:在买入和卖出之间可能有很长时间,在这段时间中可以发生很多买入卖出的操作,将这段时间的操作用状态机表示个人理解:状态机即在状态转移时增加一个标记,以达到对上一步操作进行区分的目的。...原创 2022-08-09 20:07:45 · 125 阅读 · 0 评论 -
有依赖的背包问题
从第2行到第m+1行,第j行给出了编号为j-1的物品的基本数据,每行有3个非负整数v p q,其中v表示该物品的价格,p表示该物品的重要度(1~5),q表示该物品是主件还是附件。有依赖的背包问题一般会有一定的限制条件,例如选择某一件的前提是选择了另一件物品, 选第 i 件物品,就必须选择第 j 件物品,保证不会循环引用。设第j件物品的价格为v[j],重要度为w[j],共选中了k件物品,编号依次为j1,j2,…输入文件的第1行,为两个正整数,用一个空格隔开:N m,其中N表示总钱数,m为希望购买物品的个数。原创 2022-10-19 19:34:02 · 1440 阅读 · 0 评论 -
滑动窗口(单调队列)
给定一个大小为 n≤106的数组。有一个大小为 k的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为,k为你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。第一行包含两个整数 n和 k,分别代表数组长度和滑动窗口的长度。第二行有 n个整数,代表数组的具体数值。同行数据之间用空格隔开。输出格式输出包含两个。第一行输出,从左至右,每个位置滑动窗口中的最小值。原创 2022-10-31 20:33:17 · 205 阅读 · 0 评论 -
李白打酒加强版(dp)
话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒 2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店 N次,遇到花 M次。已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白这一路遇到店和花的顺序,有多少种不同的可能?注意:壶里没酒 (0斗) 时遇店是合法的,加倍后还是没酒;但是没酒时遇花是不合法的。输入格式第一行包含两个整数 N和 M。输出格式输出一个整数表示答案。...原创 2022-08-05 22:42:59 · 1468 阅读 · 0 评论 -
牛牛的数列(动态规划)
牛牛现在有一个n个数组成的数列,牛牛现在想取一个连续的子序列,并且这个子序列还必须得满足:最多只改变一个数,就可以使得这个连续的子序列是一个严格上升的子序列,牛牛想知道这个连续子序列最长的长度是多少。预处理两个数组,分别存储以第i个数结尾的连续上升子序列的长度和以第i个数为开头的连续上升子序列的长度。第二行n个整数a_i, 表示数列中的每个数(1 ≤ a_i ≤ 10^9),以空格分割。如果第i+1个数比第i-1个数大2及2以上,则第i个数可以通过改变其值的大小来使其连接。输出一个整数,表示最长的长度。原创 2022-09-27 21:27:37 · 292 阅读 · 5 评论 -
区间 dp
一.什么是区间dp区间dp就是将题目要求的一大段区间的最优解拆分成许多个小区间,先求每个小区间的最优解,然后通过小区间的最优解来求大区间的最优解二.核心思想求解在一个区间上的最优解,那么把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。代码实现,枚举区间的长度len(从小到大),由小区间逐渐推大区间,最终推到总长度。内层循环小区间的起点,由长度可得出终点,然后在这个起点终点之间枚举分割点,求解这段小区间在某个分割点下的最优解。模板:for(int l原创 2022-02-11 21:21:15 · 768 阅读 · 0 评论 -
树形DP+状态机
鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他找不到解决问题的方法,这让他很伤心。现在他有以下问题。他必须保护一座中世纪城市,这条城市的道路构成了一棵树。每个节点上的士兵可以观察到所有和这个点相连的边。他必须在节点上放置最少数量的士兵,以便他们可以观察到所有的边。皇宫各个宫殿的分布,呈一棵树的形状,宫殿可视为树中结点,两个宫殿之间如果存在道路直接相连,则该道路视为树中的一条边。已知,在一个宫殿镇守的守卫不仅能够观察到本宫殿的状况,还能观察到与该宫殿直接存在道路相连的其他宫殿的状况大内保卫森严,三步一原创 2022-10-24 20:53:19 · 1108 阅读 · 0 评论 -
2022ICPC网络预选赛补题
B Non-decreasing ArrayYou are given a non-decreasing array of integers a1,a2,…,an. In one operation, when the current length of the array is m:Firstly you can choose an index i(1原创 2022-09-27 22:32:24 · 527 阅读 · 0 评论 -
数字三角形模型
数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数 n,表示数字三角形的层数。接下来 n行,每行包含若干整数,其中第 i 行表示数字三角形第 i层包含的整数。输出格式输出一个整数,表示最...原创 2022-04-13 22:41:54 · 266 阅读 · 0 评论 -
子串分值和
对于一个字符串 S,我们定义 S 的分值 f(S) 为 S中出现的不同的字符个数。例如 f(“aba”)=2,f(“abc”)=3,f(“aaa”)=1。现在给定一个字符串 S[0..n−1](长度为 n),请你计算对于所有 S 的非空子串 S[i..j](0≤i≤j<n),f(S[i..j])的和是多少。输入格式输入一行包含一个由小写字母组成的字符串 S。输出格式输出一个整数表示答案。数据范围对于 20%的评测用例,1≤n≤10;对于 40%原创 2022-04-07 21:30:38 · 1085 阅读 · 1 评论 -
最大子序和
输入一个长度为 n的整数序列,从中找出一段长度不超过 m的连续子序列,使得子序列中所有数的和最大。子序列的长度至少是 1输入格式第一行输入两个整数 n,m第二行输入 n个数,代表长度为 n 的整数序列。同一行数之间用空格隔开。输出格式输出一个整数,代表该序列的最大子序和。数据范围7。原创 2022-10-31 21:22:40 · 93 阅读 · 0 评论 -
最佳牛围栏 dp+前缀和+二分
接下来 N 行,每行输入一个整数,第 i+1 行输入的整数代表第 i片区域内包含的牛的数目。农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于 1 头,也不会超过 2000。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。围起区域内至少需要包含 F 块地,其中 F会在输入中给出。输出一个整数,表示平均值的最大值乘以 1000,再。......原创 2022-08-04 22:13:41 · 164 阅读 · 0 评论 -
状态压缩dp
补充位运算应用1.判断一个二进制数x的第i位是否为1if ( x & ( 1 < < ( i - 1 ) )大于1则第i位为1,否则为02.将一个数字x二进制下第i位更改成1x = x | ( x < < ( i - 1) )3.把一个数字x二进制下最靠右的第一个1去掉x = x & ( x - 1 )例一:蒙德里安的梦想求把N×M的棋盘分割成若干个1×2的的长方形,有多少种方案。例如当N=2,M=4时...原创 2022-02-13 23:40:57 · 285 阅读 · 0 评论 -
线性dp例题
q1:数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数 nn,表示数字三角形的层数。接下来 nn 行,每行包含若干整数,其中第 ii 行表示数字三角形第 ii 层包含的整数。输出格式输出一个...原创 2022-01-27 22:56:28 · 808 阅读 · 0 评论 -
分组背包
不少背包问题的变形都可以转化为分组的背包问题,由分组的背包问题进一步可定义“泛化物品”的概念,十分有利于解题。第 i 个物品是一个物品组,里面有 si 个物品,但是在物品组 i中最多只能选一个物品。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。而 分组背包 是相对于物品组 i,当前物品最多选一件。原创 2022-10-19 19:01:33 · 823 阅读 · 3 评论 -
记忆化搜索
搜索:不能够很好的处理重叠的子问题,处理重叠的子问题时比较低效动态规划:比较好地处理了重叠子问题,但是在有些拓扑关系比较复杂的题目面前,又显得无奈记忆化搜索采用搜索的形式和动态规划中递推的思想简单点说:记忆化搜索=搜索的形式+动态规划的思想1.记忆化搜索的思想记忆化搜索的思想是,在搜索过程中,会有很多重复计算,如果我们能记录一些状态的答案,就可以减少重复搜索量2、记忆化搜索的适用范围根据记忆化搜索的思想,它是解决重复计算,而不是重复生成,也就是说,这些搜索必须是在搜索扩展原创 2022-02-08 23:53:15 · 98 阅读 · 0 评论 -
数位统计dp
计数问题给定两个整数a和b,求a和b之间的所有数字中0∼9 的出现次数。例如,a=1024,b=1032a=1024,b=1032,则a和b之间共有9个数如下:1024 1025 1026 1027 1028 1029 1030 1031 1032其中0出现10次,1出现10次,2出现7次,3出现3次等等…输入格式输入包含多组测试数据。每组测试数据占一行,包含两个整数a和b。当读入一行为 0 0时,表示输入终止,且该行不...原创 2022-02-12 23:54:55 · 61 阅读 · 0 评论 -
01背包及其优化
例:有 N 件物品和一个容量是 V的背包。每件物品只能使用一次。第 i件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,原创 2022-03-31 22:41:44 · 85 阅读 · 0 评论 -
计数类dp
目录解法一:解法二:整数划分一个整数nn可以表示成若干个正整数之和,形如:n=n1+n2+…+nkn=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数nn的一种划分。现在给定一个正整数nn,请你求出nn共有多少种不同的划分方法。输入格式共一行,包含一个整数nn。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对109+7109+7取模。数据范围...原创 2022-02-12 23:08:49 · 80 阅读 · 0 评论 -
二 分 图
什么是二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交子集 ,使得每一条边都分别连接两个集合中的顶点。如果存在这样的划分,则此图为一个二分图二分图的性质:二分图不存在奇数环染色法判定二分图例题给定一个nn个点mm条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数nn和mm。接下来mm行,每行包含两个整数uu和vv,...原创 2022-02-15 15:51:20 · 1299 阅读 · 0 评论