算法与数学
文章平均质量分 62
一些基础的算法与数学问题
Cyril_KI
本科 华北电力大学-计算机科学与技术-负荷预测-联邦学习|研二 天津大学-图神经网络-舆论场-社交网络挖掘
展开
-
栈实现二叉树的前序、中序和后序遍历
栈实现二叉树的非递归遍历原创 2021-08-27 11:30:34 · 11252 阅读 · 0 评论 -
C++实现各种排序算法
c++实现插入排序、选择排序和交换排序原创 2021-08-21 20:06:33 · 9272 阅读 · 0 评论 -
根据遍历序列递归创建二叉树
先序遍历+中序遍历递归创建二叉树,后序遍历+中序遍历递归创建二叉树原创 2021-08-20 20:16:17 · 9374 阅读 · 0 评论 -
牛客网--KY107 最短路径(Dijkstra)
迪杰斯特拉求解最短路径问题原创 2021-08-15 21:45:02 · 10064 阅读 · 0 评论 -
2017蓝桥杯省赛:青蛙跳杯子(BFS求最短路径长度)
X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。原创 2021-04-10 18:33:12 · 12117 阅读 · 1 评论 -
2021蓝桥杯模拟赛:删除字符串 && 谈判(贪心)
删除字符串:给定一个单词,请问在单词中删除t个字母后,能得到的字典序最小的单词是什么?谈判:每次谈判,小蓝只能邀请两个部落参加,花费的金币数量为两个部落的人数之和,谈判的效果是两个部落联合成一个部落(人数为原来两个部落的人数之和)原创 2021-04-05 11:14:12 · 15788 阅读 · 0 评论 -
2012蓝桥杯省赛:密码发生器
在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了。原创 2021-04-04 11:49:02 · 26284 阅读 · 1 评论 -
2014年蓝桥杯省赛:兰顿蚂蚁(简单模拟)
兰顿蚂蚁,是于 1986 年,由克里斯·兰顿提出来的,属于细胞自动机的一种。平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只"蚂蚁"。蚂蚁的头部朝向为:上下左右其中一方。原创 2021-04-04 11:35:51 · 25959 阅读 · 0 评论 -
第二届全国大学生算法设计与编程挑战赛B题:数位dp-dp
小 x 对数位 dp 很感兴趣,现在他在解决一道题目,要求求解出[x,y]闭区间内所有满足以下性质的数字个数:相邻位数字差值的绝对值不能超过 7。且最低位与最高位差值的绝对值要大于 2。现在,给出 x=13930,y=457439。请你告诉小 x,满足要求的数字个数。原创 2020-12-03 18:08:47 · 100890 阅读 · 1 评论 -
第二届全国大学生算法设计与编程挑战赛D题:兰德索尔杯-cup
问题描述:半年一度的兰德索尔杯开幕了!兰德索尔杯是一个趣味跑步比赛。参加比赛的成员四人一组,在不同的赛道上进行跑步。下图就是跑步的一个场景:可以看到,跑道上充满了一些特殊物件:加速阵、障碍物、魔物等等。这使得比赛充满了乐趣(你看她们玩的多开心啊)。在这道题目中,为了简化起见,我们可以认为每个人的跑步速度相同(其实本来就如此),且将跑道看作是一个长度为 n 的字符串。字符串上的每个位置代表了 1m 的距离。不同的字符分别代表不同的地形:· ‘.’:代表平地,正常情况下,在平地上跑步速度 1m/原创 2020-11-22 12:32:08 · 102524 阅读 · 4 评论 -
整数奇偶数排序:奇数从大到小在前,偶数从小到大在后(stable_partition的应用)
stable_partition是c++排序函数的一个分支,用于将满足某一特定规则的部分放在最前面。比如此题要求将奇数放在前面,偶数放在后面。原创 2020-11-08 12:07:45 · 99414 阅读 · 1 评论 -
粒子群算法(PSO)的Python实现(求解多元函数的极值)
PSO是寻优算法中比较简单的一种,本文用Python简单实现了PSO算法,用来求解一个五元函数的最大值,并与MATLAB的fmincon函数的运行结果做比较。原创 2020-09-14 22:05:51 · 115471 阅读 · 26 评论 -
算法中的数学---卡特兰数(解析+代码实现)
总结一下碰到的关于卡特兰数的问题,方便后续复习。原创 2020-09-05 11:01:13 · 105853 阅读 · 20 评论 -
第十一届蓝桥杯大赛第二次模拟(软件类)真题 +总结(2020年4月,C++描述)
第十一届蓝桥杯大赛第二次模拟(软件类)做题记录,保持手感,专注备赛。原创 2020-09-02 20:57:41 · 103544 阅读 · 6 评论 -
【通电】第十一届蓝桥杯省赛第二次模拟(并查集+Kruskal)
2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。原创 2020-09-02 20:27:12 · 93557 阅读 · 0 评论 -
第十一届蓝桥杯大赛第一次模拟(软件类)真题 (2020年3月,C++描述)
终于有空刷题了!第十一届蓝桥杯大赛第一次模拟(软件类)做题记录,保持手感,专注备赛。原创 2020-08-28 11:42:50 · 94472 阅读 · 6 评论 -
2015年第六届蓝桥杯【省赛C/C++ A组】刷题报告(C++描述)
2015年第六届蓝桥杯【省赛C/C++ A组】做题记录,保持手感,专注备赛。原创 2020-08-11 22:51:08 · 86571 阅读 · 1 评论 -
【垒骰子】蓝桥杯第六届省赛C/C++大学A组(动态规划+矩阵快速幂)
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!原创 2020-08-11 22:33:52 · 86771 阅读 · 1 评论 -
矩阵快速幂的模板(C++)
矩阵快速幂跟整数快速幂是一样的,只不过答案矩阵的初始状态不再是一个1,而是一个单位矩阵。原创 2020-08-05 10:11:08 · 86803 阅读 · 1 评论 -
2019年第十届蓝桥杯【省赛C/C++ A组】做题记录(附详细思路)
2019年第十届蓝桥杯【省赛C/C++ A组】做题记录,文章到处都充斥着“暴力求解”、“暴力就够了”、“暴力可能能拿下一半分数”等字眼。最后感想:自身实力真的还很弱。原创 2020-07-25 22:39:12 · 82697 阅读 · 1 评论 -
【RSA解密】 蓝桥杯第十届省赛A组 扩展欧几里得算法(求逆元)+快速乘+快速幂
【RSA解密】 蓝桥杯第十届省赛A组 扩展欧几里得算法(求逆元)+快速乘+快速幂,很综合的一道题。原创 2020-07-23 19:40:00 · 17149 阅读 · 1 评论 -
2017年第八届蓝桥杯【省赛C/C++ A组】做题记录(附详细思路)
2017年蓝桥杯第八届【省赛C/C++ A组】做题记录,保持手感,专注备赛。原创 2020-07-21 21:56:37 · 81842 阅读 · 0 评论 -
【分巧克力】2017年第八届蓝桥杯【C/C++省赛A组】
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。原创 2020-07-21 21:01:48 · 82541 阅读 · 0 评论 -
【跳蚱蜢】2017年第八届蓝桥杯【C/C++省赛A组】
如下图所示:有9只盘子,排成1个圆圈。其中8只盘子内装着8只蚱蜢,有一个是空盘。我们把这些蚱蜢顺时针编号为 1~8,每只蚱蜢都可以跳到相邻的空盘中,也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列,并且保持空盘的位置不变(也就是1-8换位,2-7换位,…),至少要经过多少次跳跃?原创 2020-07-21 12:15:24 · 11498 阅读 · 1 评论 -
蓝桥杯第九届【省赛C/C++ A组】做题记录(附详细思路)
【蓝桥杯第九届省赛C/C++ A组】做题记录,保持手感,专注备赛。原创 2020-07-16 21:48:54 · 82900 阅读 · 4 评论 -
最长公共子序列、最长公共子串的输出
1、最长公共子序列:举个例子,s1=“abcfde”,s2=“fdea”。那么s1与s2的最长公共子序列就是"fde"。该问题是典型的动态规划问题,我们设maxlen(i,j)表示s1左边i个字符与s2左边j个字符的最长公共子序列长度,(i,j)从0开始,那么递推关系很容易找到,就是:if(s1[i-1]==s2[j-1]) { maxlen(i,j)=maxlen(i-1,j-1)+1;}else { maxlen(i,j)=max(maxlen(i,j-1),maxlen(i-1,j)原创 2020-05-16 21:47:47 · 83925 阅读 · 2 评论 -
第九届蓝桥杯省赛C语言A8:全球变暖
题目描述:你有一张某海域NxN像素的照片,".“表示海洋、”#"表示陆地,如下所示:. . . . . . .. # # . . . .. # # . . . .. . . . # # .. . # # # # .. . . # # # .. . . . . . .其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素原创 2020-05-12 21:56:55 · 79078 阅读 · 0 评论 -
算法中的数学---康托展开
康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序。康托展开的公式为:x=a[n](n-1)!+a[n-1](n-2)!+…+a[1]*0!,x代表比当前排列小的排列的个数,因此最终我们需要的答案就是x+1,其中a[i]表示当前排列里从i位置右侧算起,比i位置的数还要小的数的个数,注意i从左到右依次为n,n-1,n-2,…1。举个例子:求{1,5,4,3,2}的康托展开。首位是1,1的右边比1小的数没有,所以a[5]=0原创 2020-05-12 10:04:48 · 10774 阅读 · 0 评论 -
并查集的介绍及简单应用---蓝桥杯真题:合根植物
并查集的介绍及简单应用---蓝桥杯真题:合根植物原创 2020-05-11 15:35:19 · 17122 阅读 · 0 评论 -
解析C++全排列
C++有专门实现全排列的函数:next_permutation(start,end),这个函数在暴力解决问题方面有很大作用,使用时需要引入头文件 < algorithm >,当当前序列不存在下一个序列时就会结束,若想得到一个序列的全部排列,那么使用前一定要记得先排序。例如:int a[]={1,2,3,4};do{ cout<<a[0]<<' '<<a[1]<<' '<<a[2]<<' '<<a[3]<原创 2020-05-11 14:56:26 · 83683 阅读 · 2 评论 -
快速幂的简单实现
顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。比如我们要求12^11,我们其实可以求12 ^ (2 ^ 0+2 ^ 1+2 ^ 3)ll fastpow(ll x,ll y) { //求取x^y ll res=1; while(y) { if(y%2==1) {//为奇数,当前最低位为1,res就要乘以当前位置的权重 res*=x; } x*=x; //每右移一次,最低位的权重都要乘以x y&g原创 2020-05-10 18:39:20 · 80993 阅读 · 0 评论