
竞赛算法题集
文章平均质量分 84
主要为ACM 蓝桥杯 等算法竞赛类题解主要编写语言为C/C++
Five-菜鸟级
InfoQ签约作者,阿里云签约作者,华为云享专家,开源社正式成员。
退役ACMer, IT技术狂热爱好者
擅长领域,web前端,算法, 业务架构,可视化,富文本编辑器等。
—有事多研究,没事瞎琢磨
展开
-
10大常用的排序算法(算法分析+动图演示)
各种常用的排序算法算法概述算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。.........原创 2022-08-29 11:45:35 · 1088 阅读 · 0 评论 -
P4447 [AHOI2018初中组]分组 (二分)------详解
题目链接:https://www.luogu.com.cn/problemnew/solution/P4447 P4447 [AHOI2018初中组]分组题目描述小可可的学校信息组总共有n 个队员,每个人都有一个实力值a[i]a[i]。现在,一年一度的编程大赛就要到了,小可可的学校获得了若干个参赛名额,教练决定把学校信息组的nn...原创 2020-03-24 08:57:42 · 2417 阅读 · 3 评论 -
蓝桥杯 练习系统在线题库+题解
目录 入门训练 Fibonacci数列 入门训练 圆的面积 入门训练 序列求和 ...原创 2019-01-16 17:27:12 · 7262 阅读 · 1 评论 -
C++ STL 详解
以前一直在用C语言,很多数据结构都是自己造的,比如链表、队列等,但是搞竞赛还是C++有优势,感觉好多题都是针对C++出题的 所以打算学学C++,所以现在先整理一下STL中一些最常用的容器的使用方法和迭代器备用。容器(Container)迭代器(Iterator)1、容器作为STL的最主要组成部分--容器,分为向量(vector),双端队列(deque),表(list),...原创 2019-03-13 17:45:01 · 2586 阅读 · 1 评论 -
[蓝桥杯][历届真题]高僧斗法(博弈-Nim博弈)
问题 1459: [蓝桥杯][2013年第四届真题]高僧斗法时间限制: 1Sec 内存限制: 128MB 提交: 40 解决: 7题目描述古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任...原创 2019-01-30 22:44:44 · 1864 阅读 · 4 评论 -
蓝桥杯 真题 测试次数(详解)--------Five-菜鸟级
测试次数x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的...原创 2018-12-16 17:13:04 · 9898 阅读 · 17 评论 -
最大数字 题解 (删除k个数字----贪心)
问题 1972: 最大数字时间限制: 1Sec 内存限制: 128MB 提交: 104 解决: 27题目描述给你一个整数 n,使得从 n 中删除 k 个数字之后的数字最大。输入输入一个整数 n (0 <= n <= 10^100),和需要删除数字 k <= 100...原创 2019-01-17 11:06:45 · 5507 阅读 · 5 评论 -
蓝桥杯 算法提高 扫雷问题(Minesweeper)
[蓝桥杯][算法提高VIP]扫雷(Minesweeper)题目描述扫雷游戏你一定玩过吧!现在给你若干个n×m的地雷阵,请你计算出每个矩阵中每个单元格相邻单元格内地雷的个数,每个单元格最多有8个相邻的单元格。 0< n,m< =100 (注意两个矩阵之间应该有一个空行,由于oj的格式化这里不能显示出来) 数据规模和约定 0<...原创 2019-01-24 15:57:53 · 1444 阅读 · 3 评论 -
蛇行矩阵 蛇形填数 回形取数 蛇行系类(C语言详解+图解)
本贴包括,蛇行矩阵 蛇形填数 回形取数 等蛇行系类(C语言详解) 问题 1097: 蛇行矩阵时间限制: 1Sec 内存限制: 64MB 提交: 1979 解决: 1164题目描述蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。输入本题有多组数据,每组数据由一个正整...原创 2018-12-17 18:30:52 · 6585 阅读 · 4 评论 -
蓝桥杯 移动距离 -----------Five-菜鸟级
移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要...原创 2018-12-13 00:40:34 · 897 阅读 · 2 评论 -
100层 汉罗塔问题 (稍高精度)
**100层 汉罗塔问题**这已经已经跟 汉罗塔问题 没什么关系了 ,只是对超出存储范围的结果,用数组存取采取 千万进制 开大小为5的数组 5*7=35位(10进制) 就够了。想了解汉罗塔问题的实现过程可以看看汉罗塔(详解)#include&amp;lt;stdio.h&amp;gt;#define ll long long #define C 10000000ll...原创 2018-10-06 21:04:47 · 2033 阅读 · 2 评论 -
「美团 CodeM 资格赛」数码 详解
3142: #6083. 「美团 CodeM 资格赛」数码Time Limit: 1 Sec Memory Limit: 256 MB Description给定两个整数 l 和 r,对于任意 x,满足l≤x≤r ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求[1,9]中每个数码出现的次数。输入格式输入一行两个整数 l 和 r。输出格式...原创 2018-12-10 17:47:12 · 722 阅读 · 0 评论 -
「LibreOJ β Round #7」匹配字符串
「LibreOJ β Round #7」匹配字符串 时间限制: 2 Sec 内存限制: 512 MB 题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串...原创 2018-10-11 18:12:21 · 983 阅读 · 2 评论 -
friend-斐波那契(矩阵快速幂)------------------Five-菜鸟级
欢迎前往个人搭建博客 Five-great的博客 friend-斐波那契 Description求f(1)^2+f(2)^2+f(3)^2+....+f(n)^2, 其中 f(i) 代表斐波那契数列的第 i 项。 (f(0)=0,f(1)=1)当然结果会很大,请将它对...原创 2018-10-06 22:07:07 · 2668 阅读 · 0 评论 -
6264.斐波那契(快速幂)
6264. friend-斐波那契Description求f12+f22+f32+…+fn2, 其中 fi 代表斐波那契数列的第 i 项。 (f0=0,f1=1)当然结果会很大,请将它对 109+7取模。输入格式一行一个数 n.输出格式一行一个数,代表答案。样例样例输入6样例输出104数据范围与提示对于30%的数据:n≤105。对于另外20%的数据: 1000...原创 2018-10-05 19:02:51 · 1025 阅读 · 0 评论 -
某种序列 -----------------------------------------------Five—菜鸟级
欢迎前往个人搭建博客 Five-great的博客 某种序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4描述数列A满足An = An-1 + An-2 + An-3, n >= 3 编写程序,给定...原创 2018-09-23 21:19:50 · 487 阅读 · 0 评论 -
Dijkstra(迪杰斯特拉算法)的实现-------------------------C,C++,Matlab实现
Dijkstra 一.算法背景 Dijkstra 算法(中文名:迪杰斯特拉算法)是由荷兰计算机科学家 Edsger Wybe Dijkstra 提出。该算法常用于路由算法或者作为其他图算法的一个子模块。举例来说,如果图中的顶点表示城市,而边上的权重表示城市间开车行经的距离,该算法可以用来找到两个城市之间的最短路径。二.算法描述 算法思想: 设G=(V,E)是一个带权有向图,把图中顶点集......原创 2018-08-26 16:50:06 · 17260 阅读 · 0 评论 -
电话列表(字典树)------------Five-菜鸟级
电话列表 时限:1000 MS 内存限制:65536K 提交材料共计:34731 接受: 9962 描述给定一个电话号码列表,确定它是否一致...原创 2018-10-09 13:24:48 · 1689 阅读 · 0 评论 -
最短前缀(字典树)------------Five-菜鸟级
最短前缀时限:1000 MS 内存限制:30万K 提交材料共计:21820 接受: 9346 ...原创 2018-10-08 22:02:13 · 2761 阅读 · 0 评论 -
Trie树(字典树) [模板]------------Five-菜鸟级
字典树简介 Trie树一般指字典树 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用...原创 2018-10-07 18:35:10 · 1053 阅读 · 0 评论 -
4189 字典(字典树)------------Five-菜鸟级
4189 字典 时间限制: 1 s |空间限制: 256000 KB题目描述 Description最经,skyzhong得到了一本好厉害的字典,这个字典里整整有n个单词(1<=n<=200000)现在skyzhong需要在字典里查询以某一段...原创 2018-10-07 17:50:03 · 586 阅读 · 0 评论 -
统计难题(字典树)------------Five-菜鸟级
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 58462 Accepted Submission(s): 20384 ...原创 2018-10-07 16:45:15 · 633 阅读 · 0 评论 -
二分匹配 匈牙利算法 模板-------------------C语言——菜鸟级
#include<string.h>#include<stdio.h>#define maxn 160int a[maxn],b[maxn],c[maxn],d[maxn];int used[maxn];int girl[maxn],line[maxn][maxn];int n;int Find(int x){ int j; for( j=1;j...原创 2018-06-01 22:03:36 · 2463 阅读 · 1 评论 -
高精度 加减乘 阶乘 模板 ------------------------C语言——菜鸟级
long int res[N];void add(long int *a,long int *b)//高精度加法 {long int i,k=0,adw=0,flag=0,tem1,tem2; for(i=0;flag!=2;i++,k++) { if(a[i]==-1)tem1=0; else tem1=a[i]; if(b...原创 2018-06-01 20:51:59 · 978 阅读 · 0 评论 -
后缀数组 模板------------------------------C语言——菜鸟级
后缀数组 在字符串处理当中,后缀树和后缀数组都是非常有力的工具。其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现后缀树的很多功能而时间复杂度也不太逊色,并且,它比后缀树所占用的空间小很多。可以说,在信息学竞赛中后缀数组比后缀树要更为实用。不知道后缀数组是撒 百度 后缀数组(SA)是 “ 排第几的是谁? ” ,名次数组(RANK)是 “ 你排第几? ”...原创 2018-05-18 18:46:29 · 871 阅读 · 0 评论 -
蓝桥杯 大数阶乘 ---------C语言—菜鸟级
问题 1474: [蓝桥杯][基础练习VIP]阶乘计算 时间限制: 1Sec 内存限制: 128MB 提交: 106 解决: 59题目描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 ...原创 2018-05-16 13:45:43 · 767 阅读 · 0 评论 -
欧几里得扩展模板--------------------------C语言——菜鸟级
用于求 ax+by=c 的解#include<stdio.h>int x0,y0;int oujdk(int a,int b){ if(b==0) { x0=1; y0=0; return a; }int t=oujdk(b,a%b); int w=x0; x0=y0; y0=w-a/b*y0; ...原创 2018-05-08 13:56:16 · 709 阅读 · 0 评论 -
欧拉函数模板-----------C语言—菜鸟级
#include&lt;stdio.h&gt; int oula(int n)//欧拉函数 用于 求得 小于正整数 n 且与 n {int res=n; int i; for(i=2;i*i&lt;=n;i++) { if(n%i==0)res=res/i*(i-1); while(n%i==0)n/=i; } if(n&gt;1)res=res/...原创 2018-05-08 12:54:43 · 2212 阅读 · 0 评论 -
马拉车算法 (最长回文串 例题 密码截获)----C语言—菜鸟级
本文算法介绍 借鉴大佬博客资料整理 Manacher算法manacher算法,我们习惯叫他 “马拉车”算法。Manacher算法的应用范围比较狭窄,但是它的思想和拓展kmp算法有很多共通之处,所以在这里介绍一下。Manacher算法是查找一个字符串的最长回文子串的线性算法。在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简单来说就是正着读和反着读都是一样的字符串,比如abba,...原创 2018-04-27 16:27:48 · 3437 阅读 · 4 评论 -
kmp优化模板----------------------C语言——菜鸟级
#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include&amp;amp;amp;lt;string.h&amp;amp;amp;gt;int next[100];void nexthq(char a[100],int n)//next值的获取 { int i=0,j=-1;//初始 next[0]=-1; while(i&amp;amp原创 2018-05-08 12:50:20 · 500 阅读 · 0 评论 -
sdut 3562 Proxy (迪杰斯特拉+反向建树)---------------------C语言——菜鸟级
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3562.html 1640: 题目 B Proxy 时间限制: 1 Sec 内存限制: 128 MB 提交: 5 解决: 2 [提交][状态][讨论版] [Edit] [TestData] 题目描述由于GFW (Great Fi...原创 2018-05-22 22:06:58 · 1536 阅读 · 0 评论 -
蓝桥杯 历届试题 小朋友排队(树型数组 C语言)
/*问题描述 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的 两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换, 则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时, 他的不高兴程度增加...原创 2018-03-30 13:20:43 · 1090 阅读 · 0 评论 -
蓝桥杯 分苹果(线段树)---------C语言—菜鸟级
小朋友排成一排,老师给他们分苹果。 小朋友从左到右标号1..N。有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果。 最后老师想知道每个小朋友有多少苹果。 数据规模和约定 100%的数据,N、M≤100 000,1≤Li≤Ri≤N,0≤Ci≤100。 输入 第一行两个整数N、M,表示小朋友个数和老师个数。 接下来M行,每行三个整...原创 2018-04-14 17:44:47 · 1232 阅读 · 0 评论 -
算法训练 格子操作(线段树)-----------C语言—菜鸟级
/*问题描述 有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式 第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,...原创 2018-04-15 16:31:43 · 484 阅读 · 0 评论 -
[蓝桥杯][2013年第四届真题]剪格子
问题 1432: [蓝桥杯][2013年第四届真题]剪格子时间限制: 1Sec 内存限制: 128MB 提交: 781 解决: 272题目描述历届试题 剪格子时间限制:1.0s 内存限制:256.0MB 问题描述如下图所示,3 x 3 的格子中填写了一些整数。+--*--+--+|10* 1|52|+--****--+|...原创 2019-03-10 17:24:29 · 1100 阅读 · 1 评论 -
[蓝桥杯][历届试题]九宫重排(BFS+哈希)
[蓝桥杯][历届试题]九宫重排时间限制: 1Sec 内存限制: 128MB 提交: 586 解决: 126题目描述如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。我们把第一个图的局面记为:12345678.把第二个图的局面记为:123.46758...原创 2019-01-25 17:12:24 · 1548 阅读 · 13 评论 -
蓝桥杯 牌型种数 (dfs)--------------------Five-菜鸟级
牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容...原创 2018-12-13 00:02:20 · 732 阅读 · 1 评论 -
搭桥
题目:搭桥题目链接:http://codevs.cn/problem/1002/题目描述 Description有一矩形区域的城市中建筑了若干建筑物,如果某两个单元格有一个点相联系,则它们属于同一座建筑物。现在想在这些建筑物之间搭建一些桥梁,其中桥梁只能沿着矩形的方格的边沿搭建,如下图城市1有5栋建筑物,可以搭建4座桥将建筑物联系起来。城市2有两座建筑物,但不能搭建桥梁将它们连接。城市3只有...原创 2018-09-22 10:15:31 · 1405 阅读 · 0 评论 -
蓝桥杯 历届试题 分考场 (DFS)-----C语言—菜鸟级
问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。 输入格式 第一行,一个整数n(1#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;am原创 2018-05-22 14:28:10 · 7894 阅读 · 20 评论 -
城堡问题 (搜索+二进制)------------C语言—菜鸟级
图1是一个城堡的地形图。 请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。 城堡被分割成m×n(m≤50,n≤50)个方块,每个方块可以有0~4面墙。 输入 程序从标准输入设备读入数据。 第一行是两个整数,分别是南北向、东西向的方块数。 在接下来的输入行里,每个方块用一个数字(0≤p≤50)描述。 用一个数字表示方块周围...原创 2018-05-10 16:01:45 · 1516 阅读 · 0 评论