随笔分类 -  c++算法竞赛

摘要:进制转换 网上查找了很多关于进制转换的博客,发现好多不同进制之间的转换代码实现过于复杂、冗余。而进制换算又是算法竞赛常常考到的基础知识点,清晰的代码实现是十分有必要的!今天我就针对常见的进制换算做一个详细、清晰的总结,希望对你的学习或者竞赛有些许帮助! 一、进制基本介绍 什么是进制? 就是进位制,是 阅读全文
posted @ 2021-12-05 12:30 时间最考验人 阅读(1476) 评论(2) 推荐(4) 编辑
摘要:递推算法 什么是递推 递推就是一种若干步可重复运算来描述复杂问题的方法,递推是一种重要的数学方法,也是编程编程解决问题的常用方法。————小到大,已知推出未知 递推有什么特征 特点:一个问题求解需要一系列计算,这一系列的计算的步骤中存在着关联关系;在计算时,如果可以找到前后过程之间的数量关系(即递推 阅读全文
posted @ 2021-12-04 21:40 时间最考验人 阅读(1172) 评论(0) 推荐(0) 编辑
摘要:经典排序算法 选择排序 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾 C.以此类推,直到所有元素均排序完毕 【参考代码】 #include<iostream> #include<algorithm> 阅读全文
posted @ 2021-11-04 21:21 时间最考验人 阅读(49) 评论(0) 推荐(0) 编辑
摘要:双指针算法 什么是双指针 严格的来说,双指针只能说是是算法中的一种技巧。 双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。最常见的双指针算法有两种:一种是,在一个序列里边,用两个指针维护一段区 阅读全文
posted @ 2021-11-04 21:16 时间最考验人 阅读(1392) 评论(3) 推荐(1) 编辑
摘要:区间合并 给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6] 。 输入格式 第一行包含整数n。 接下来n行,每行包含两个整数l和r。 输出格式 共一行,包含一个 阅读全文
posted @ 2021-11-04 21:13 时间最考验人 阅读(141) 评论(0) 推荐(0) 编辑
摘要:二分法 如果序列是有序的,就可以通过二分查找快速定位所需要的数据。除此之外,二分思想还能求出可行解的最值问题,比如想知道某款手机最高能多少楼高度摔下来而不会摔坏,使用二分的方式可以用最小实验次数就能得到结果(当然你需要准备好几个样品)。 整数二分 单调性与二分的关系:有单调性一定可以二分,用二分不一 阅读全文
posted @ 2021-11-04 21:10 时间最考验人 阅读(484) 评论(0) 推荐(0) 编辑
摘要:位运算 & 与 | 或 ~ 非 ^ 异或 >> 右移 << 左移 常用操作: (1) 求x的第k位数字 x >> k & 1 (2) lowbit(x) = x & -x,返回x的最后一位1 求整数的二进制数表示中的第k位是几? n = 15 =(1111)2 :从0位开始的(右到左) 先把第k位移 阅读全文
posted @ 2021-10-24 15:21 时间最考验人 阅读(178) 评论(2) 推荐(0) 编辑
摘要:前缀和 一维前缀和 普通求和 通常我们对一维数组求和采用的是从头到尾遍历的方式,时间复杂度是O(n),但当计算很庞大的数据量时就很可能会超时! int sum = 0; for(int i = 0; i < nums.size(); i++) sum += nums[i] 一维前缀求和 初始化前缀和 阅读全文
posted @ 2021-10-23 13:14 时间最考验人 阅读(990) 评论(3) 推荐(4) 编辑
摘要:高精度加法 大整数存储:为了方便进位,数的最高位存在数组的末端(push_back()),数组下标从0开始存储的是该数从个位到最高位。 运算:模拟人工加法的过程,对应数相加(结果取模),逢十进一(Ai + Bi + 进位)。巧妙:用t来记录Ai + Bi + 进位的总和 #include<iostr 阅读全文
posted @ 2021-10-17 23:32 时间最考验人 阅读(176) 评论(0) 推荐(0) 编辑
摘要:暴力枚举 本学期学校开设了C++程序竞赛的课程,每周虽然只有一节课,但老师讲的是真的精彩,建模到映射等等思维的飞跃,还有各种excel、word解题大法,让我叹为观止!总结一些例题,希望能对自己以及想要参加蓝桥杯的你提供些许帮助!(例题、解题方法等往后会不断的更新总结!) 蛮力法:尝试每一种可能 【 阅读全文
posted @ 2021-10-13 11:03 时间最考验人 阅读(1698) 评论(2) 推荐(2) 编辑
摘要:【题目描述】 100!有多少位十进制数 分析:100!结果很大,我们不能直接算出(c/c++是不行的)它的结果然后再模10,来看它有多少位十进制数。 类似题目:[蓝桥杯2016决赛]阶乘位数 【通过建模看规律】 向下取整:类型强转(高到低) double a = 3.7; int b = (int) 阅读全文
posted @ 2021-09-08 21:13 时间最考验人 阅读(281) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示