算法
文章平均质量分 82
Ashen_ffm
这个作者很懒,什么都没留下…
展开
-
CCF---201912-1---报数---C++
试题编号: 201912-1试题名称: 报数时间限制: 1.0s内存限制: 512.0MB问题描述:实现代码#include<iostream>#include<cstring>using namespace std;int cnt[4];bool Judge(int num){ if(num % 7 == 0) return true; w...原创 2020-01-15 12:20:48 · 752 阅读 · 0 评论 -
CCF历年题解合集(C++实现)
历年第一题历年第二题历年第三题历年第四题历年第五题原创 2020-01-12 20:53:17 · 493 阅读 · 0 评论 -
CCF历年第二题合集(C++实现)
2013年201312-2-- ISBN号码2014年201403-2-- 窗口201409-2- 画图201412-2—Z字形扫描2015年201503-2—数字排序201509-2—日期计算201512-2—消除类游戏2016年201604-2—俄罗斯方块201609-2—火车购票201612-2—工资计算2017年201703-2—学生排队201709-2—公...原创 2020-01-12 20:50:00 · 611 阅读 · 0 评论 -
CCF历年第一题合集(C++实现)
2013年201312-1—出现次数最多的数2014年201403-1— 相反数201409-1— 相邻数对201412-1— 门禁系统2015年201503-1—图像旋转201509-1—数列分段201512-1—数位之和2016年201604-1—折点计数201609-1—最大波动201612-1----中间数2017年201703-1—分蛋糕201709-1—...原创 2020-01-12 20:37:03 · 1325 阅读 · 2 评论 -
P3372 ---洛谷---线段树(模板)---C++
题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上x求出某区间每一个数的和输入格式第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k操作2: 格式...原创 2020-01-12 16:35:45 · 194 阅读 · 0 评论 -
JAM计数法---蓝桥杯---C++
问题描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,...原创 2019-12-03 12:55:28 · 421 阅读 · 0 评论 -
危险系数---C++---查并集
问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示...原创 2019-12-02 20:01:18 · 283 阅读 · 0 评论 -
P2647 最大收益---贪心
题目描述现在你面前有n个物品,编号分别为1,2,3,……,n。你可以在这当中任意选择任意多个物品。其中第i个物品有两个属性Wi和Ri,当你选择了第i个物品后,你就可以获得Wi的收益;但是,你选择该物品以后选择的所有物品的收益都会减少Ri。现在请你求出,该选择哪些物品,并且该以什么样的顺序选取这些物品,才能使得自己获得的收益最大。注意,收益的减少是会叠加的。比如,你选择了第i个物品,那么你就会获...原创 2019-11-30 11:44:26 · 291 阅读 · 0 评论 -
P1020 导弹拦截---C++---贪心
题目描述某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是\le 50000≤50000的正整数),计算这套系统最多能拦截多少导弹,如...原创 2019-11-29 21:22:40 · 1791 阅读 · 0 评论 -
最小生成树算法设计---逆Kruskal算法---并查集 + C++实现
算法思想无非就是把边按照从大到小的顺序存起来,然后假设删除这条边 判断 连通性,如果改变了连通性那么就不能删除当前边,反之,则删除。在这里我用了并查集来判断连通性,然后用了vector来存储和删除边。如果不用 vector 删除也可以给边的结构体增加一个标记变量。实现代码#include<iostream>#include<algorithm>#includ...原创 2019-11-27 16:45:35 · 308 阅读 · 0 评论 -
P3376 【模板】网络最大流---dinic---C++
题目描述如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。输入格式第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi)输出格式一行,包含一个正整数,即为该网络的最大流。输入输出样例输入 #14 5 4 34 2 30...原创 2019-11-27 13:19:11 · 555 阅读 · 0 评论 -
递归算法入门
个人对于递归的理解递归算法,用于解决具有 状态转移 和 边界性 性质的问题。状态转移,如果是用数学公式来表示 即 类似 a[n] = a[n - 1]即可以通过求解相对简单的前一个问题来解决。边界性,即这个问题有最简单问题, 且这个最简单问题有解, 这个就是递归的边界,也可以说是终点。下面举个例子背景:有一个随机坐座位的电影院,且保证每一排都有人,小明买了票进去便往第 n 排坐下,...原创 2019-11-22 14:03:27 · 252 阅读 · 2 评论 -
朋友圈---并查集---C++
问题描述小明所在的学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。输入输入包含多组测试数据,每组输入的第一行包含两个正整数N(<=30000)和M(<...原创 2019-10-30 13:07:18 · 624 阅读 · 0 评论 -
洛谷---P2136 拉近距离---SPFA最短路---C++
题目背景我是源点,你是终点。我们之间有负权环。 ——小明题目描述在小明和小红的生活中,有N个关键的节点。有M个事件,记为一个三元组(Si,Ti,Wi),表示从节点Si有一个事件可以转移到Ti,事件的效果就是使他们之间的距离减少Wi。这些节点构成了一个网络,其中节点1和N是特殊的,节点1代表小明,节点N代表小红,其他代表进展的阶段。所有事件可以自由选择是否进行,但每次只能进行当前节点邻接的。...原创 2019-10-28 22:51:12 · 174 阅读 · 0 评论 -
CCF---201503-3---节日---C++
试题编号: 201503-3试题名称: 节日时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。...原创 2019-10-23 23:29:58 · 425 阅读 · 0 评论 -
CCF---201809-3---元素选择器---C++
试题编号: 201809-3试题名称: 元素选择器时间限制: 1.0s内存限制: 256.0MB80分代码(个人认为这才是正解,感觉测试数据不严谨)#include<iostream>#include<string>#include<cstring>#include<vector>#include<sstream>...原创 2019-10-16 22:55:20 · 302 阅读 · 0 评论 -
CCF---201409-3---字符串匹配---C++
试题编号: 201409-3试题名称: 字符串匹配时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式 输入的第一行包含一个字符串S,由大小写英文...原创 2019-10-13 10:04:51 · 185 阅读 · 0 评论 -
CCF---201604-2---俄罗斯方块---C++(告别CCF第二题,走进CCF第三题)
**一个星期每天挤时间终于刷完CCF所有第二题了!!! **这是我做的最后一道CCF第二题,到这题为止,所有一二题都做完了,果然前两题还是比较水的,CCF200分应该还是比较简单的,至于第三题,最近会陆续开始刷,第三题难度提高了挺多,不能算水题了,更新频率应该要下降了。试题编号: 201604-2试题名称: 俄罗斯方块时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述...原创 2019-10-12 16:37:00 · 415 阅读 · 0 评论 -
CCF---201509-2---日期计算---C++---CCF最水第二题
试题编号: 201509-2试题名称: 日期计算时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2...原创 2019-10-12 13:50:02 · 176 阅读 · 1 评论 -
CCF---201503-2---数字排序---C++
试题编号: 201503-2试题名称: 数字排序时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。输出格式 输出多行,每行包含两个整数,分别表示一个给定的...原创 2019-10-12 13:40:12 · 260 阅读 · 2 评论 -
CCF---201512-2---消除类游戏---C++
试题编号: 201512-2试题名称: 消除类游戏时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列...原创 2019-10-12 00:28:18 · 164 阅读 · 0 评论 -
CCF---201809-2---买菜---C++
试题编号: 201809-2试题名称: 买菜时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段...原创 2019-10-11 23:58:54 · 218 阅读 · 0 评论 -
CCF---201412-2---Z字形扫描---C++
试题编号: 201412-2试题名称: Z字形扫描时间限制: 2.0s内存限制: 256.0MB问题描述:问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示:对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 7 3 1 3 对其进行Z字形扫描后得...原创 2019-10-11 23:06:32 · 211 阅读 · 0 评论 -
AVL树---二叉平衡树---C++实现
二叉平衡树核心思想让同一个root的两个子树的高度之差的绝对值不超过1,因此,我们需要进行“换根”操作,即旋转,旋转又分单旋转和双旋转。1. 单旋转即一个root的左右子树高度差为2时,且,左子树存在“递减情况”,即左子树的根,存在左儿子,且左儿子也存在左儿子。如下图核心代码//左单旋转NODE SingleRotateWithLeft(NODE tree) { NODE tem...原创 2019-10-01 17:17:09 · 673 阅读 · 0 评论 -
P1577 切绳子---二分---C++
题目描述有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数)。输入格式第一行两个整数N和K,接下来N行,描述了每条绳子的长度Li。输出格式切割后每条绳子的最大长度。输入输出样例输入 #14 118.027.434.575.39输出 #12.00题目分析这题目就是常规的...原创 2019-09-29 10:12:07 · 1172 阅读 · 0 评论 -
链表中节点移动---回归基础
题目描述给定一定N长度的链表,节点数据由(1 ~ N)构成,再给定一个整数M(<1000000),表示有M个移动操作,每一个操作由一个字符和两个整数构成。例:L 1 4 把数据域为1的节点移动到数据域为4的节点左边R 2 1 把数据域为2的节点移动到数据域为1的节点右边题目分析做三个函数,第一个删除移动节点,第二个重构删除节点放到目标节点左边,第三个重构删除节点放...原创 2019-09-22 20:46:19 · 902 阅读 · 0 评论 -
CCF---201909-2-- 小明种苹果(续)---C++
实现代码#include<iostream>#define SIZE 1000+5using namespace std;bool flag[SIZE];int main() { int n, m, a, b, sum = 0, D = 0, E = 0; cin >> n; for (int i = 0; i < n; i++) { fl...原创 2019-10-07 22:44:02 · 405 阅读 · 0 评论 -
CCF--- 201312-3---最大的矩形---C++
问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。输入格式第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000...原创 2019-10-07 22:47:07 · 347 阅读 · 0 评论 -
CCF---201803-2---碰撞的小球---C++
问题描述/ 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。...原创 2019-10-07 23:09:59 · 380 阅读 · 0 评论 -
CCF---201712-2---游戏---C++
问题描述/ 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。/ 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋...原创 2019-10-08 16:50:41 · 223 阅读 · 0 评论 -
CCF---201609-2---火车购票---C++
试题编号: 201609-2试题名称: 火车购票时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票...原创 2019-10-11 18:30:42 · 261 阅读 · 0 评论 -
洛谷 P1030 求先序排列--- 二叉树问题---已知中后序补全二叉树求先序----C++
之前还写过一篇二叉树问题—已知先中序补全二叉树求深度https://blog.csdn.net/weixin_44778155/article/details/101535189正题题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度 ≤8)。输入格式2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式1行,表示一棵...原创 2019-09-29 09:24:02 · 312 阅读 · 0 评论 -
P1824 进击的奶牛---二分法---C++
题目描述Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,…,xN (0<=xi<=1,000,000,000)。他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,Farmer John想把这些牛安置在指定的隔间,所有牛中相邻两头的...原创 2019-09-28 13:10:39 · 986 阅读 · 0 评论 -
P1678 烦恼的高考志愿---C++---二分法
因为不是很熟练用二分,这题写的有点奇怪,不过现在太困了,明天再想了。代码#include<iostream>#include<algorithm>#include<functional>#define N (int)1e6+5using namespace std;int a[N];int score,dis;void search(...原创 2019-09-28 00:03:17 · 1314 阅读 · 0 评论 -
CCF---201512-1---数位之和---C++
试题编号: 201512-1试题名称: 数位之和时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给定一个十进制整数n,输出n的各位数字之和。输入格式 输入一个整数n。输出格式 输出一个整数,表示答案。样例输入20151220样例输出13样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。评测用例规模与约定...原创 2019-09-22 22:04:29 · 169 阅读 · 0 评论 -
CCF---201509-1---数列分段---C++
试题编号: 201509-1试题名称: 数列分段时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?输入格式 输入的第一行包含一个整数n,表示数列中整数的个数。 第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。输出格式 输出一个整数,表...原创 2019-10-10 14:02:34 · 804 阅读 · 0 评论 -
CCF---201503-1---图像旋转---C++
试题编号: 201503-1试题名称: 图像旋转时间限制: 5.0s内存限制: 256.0MB问题描述:问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m...原创 2019-09-22 21:54:59 · 156 阅读 · 0 评论 -
CCF 201412-1--- 门禁系统---c++
试题编号: 201412-1试题名称: 门禁系统时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表示涛涛的记...原创 2019-09-22 21:46:56 · 286 阅读 · 0 评论 -
CCF 201409-1--- 相邻数对---c++
试题编号: 201409-1试题名称: 相邻数对时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。输出格式 输出一个整数,表示值正好相差1的数对的个数。样例输入610 2 6 3 7 8样例输...原创 2019-09-22 21:29:13 · 287 阅读 · 0 评论 -
CCF 201403-1--- 相反数---c++
试题编号: 201403-1试题名称: 相反数时间限制: 1.0s内存限制: 256.0MB问题描述:问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。...原创 2019-09-22 21:17:45 · 250 阅读 · 0 评论