ZQY Blog

WE HAVE A DREAM

NOIP普及组-快速十to二进制转换

快速进制转换,引领分数,成就AK

平抛运动中,速度决定位移。OI中,口算决定分数 将十进制数用短除法的方式转换成二进制虽然可行,但是在计算量较大的时候不免显得太慢。所以,可以利用2的k次幂的规律快速口算二进制数。 观察表格找规律 k 2的k次方 二进制下的2的k次方 0 1 1 ...

NOIP普及组-时间复杂度概述

时间复杂度在算法中不可或缺,它决定了一个算法的质量、效率,甚至命运

时间复杂度的认识 时间复杂度的定义 评价一个算法的运行速度(相对其它算法快或者慢),主要使用的方法是时间复杂度。 代码的时间复杂度主要取决于代码最多要执行的语句数量,通常用大O记号,描述的是最坏情况下代码的时间复杂度。 时间复杂度的计算在NOIP初赛中经常考到,而且在提高组中往往难度偏高 语句数量的计算 语句计数规则 1)顺序结构中,一条语句记为1 2)选择结构中,看语句数量...

NOIP普及组-原码、反码与补码

傻瓜式转换操作

最近正在准备普及组初赛,KDT老师贴心地为我们整理了原码、反码与补码的转换方法,如果你不会二进制转换,点我学习 当然,大家还是更喜欢这样做 话不多说,直接上图: CSP-J2021rp++!!!

NOIP普及组-位运算

按位与、按位或、按位异或、取反、左移还有右移

位运算概述 位运算:对二进制形式的每一位进行的运算 接下来是六种基本的位运算 按位与(&) 按位与的规则 按位与:两边都是1的时候结果才是1,其余都为0 第一个数 第二个数 按位与的结果 0 0 0 0 1 ...

洛谷P1020-导弹拦截题解

DP思想出奇迹

若要查看题目请访问 设计程序 看完题目,很容易想出题目实际上是想让我们求出数列的最长不上升子序列以及最长上升子序列的长度。n^2的算法无疑很好设计,只要学过线性DP的人应该都很了解,这里就直接给出代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33...

7.1~7.7——45中集训刷题日记(7.7前常更)

练习往往使人进步

签到题汇总 开开的字母表 简单的字符串模拟 开开的字符串 字符串+桶 开心的金明 01背包模板,自己是按降维写的 陆陆的战队赛 极其愚蠢的贪心(背包) 陆陆的外卖 同上(区间) 陆陆的弹珠 简单的模拟,只不过要加栈和队列,这题还帮cjk查了个错 中等题汇总 开开的打野路线 图上的搜索与回溯 陆陆的宝物 贪心,排序规则需要考虑一下,这一题没看到保留小数,WA了3次 乐乐的外卖 贪心,但是有两...

图论-DFS求联通块 & Floyd最短路径算法

图上DFS求联通块综合探究

DFS求图上联通块 大致思路 图上联通块的求法很多,但是最常见的还是深度优先搜索的求法。 由于是暴力,所以就不过多陈述了,直接写思路: 1 2 3 4 5 6 1)遍历 2)建立一个数组,记录遍历过的点 3)结束条件:所有的点均完成遍历 数据结构: 邻接表:STL_vector 数组:vis[]————存储某点是否来过 代码实现 1 2 3 4 5 6 7 8 ...

模拟神器——尺取法的使用

O(n^3)->O(n^2)->O(nlogn)->O(n)

尺取法(双指针、two pointers), 是竞赛中一个常用的时间复杂度优化技巧, 用来解决序列的区间问题,十分好用 问题模型 已知一个正整数序列a(0<ai<=1e4),长度为n(n<=1e5),从其中取出一段连续子序列,满足子序列之和不小于s(0<s<1e8),求子序列的最小长度为多少 方法一:纯暴力 按部就班直接模拟 1 2 3 4 5 6 ...

洛谷OJ之P1067[图灵圈1220]题解

多项式输出

本篇文章仅有题解,若要查看题目请访问 大体思路 针对每一个项,先判正负号,再输出系数,最后输出x的几次项,按照题目所讲的,进行一些特判,只要仔细一点,很容易就过了。 代码实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37...

浅谈基础数据结构-队列

队列的基本概念

1. 队列 队列是一个添加和删除元素的位置受限制的线性表。添加和删除元素在表的不同端。 添加元素叫做入队,删除元素叫做出队。 添加元素的一端叫做队尾,删除元素的一端叫做队首。 队列又叫先进先出(FIFO)表。 2. 队列构成 数组存储队列中的元素 队首指针head,位于队首这一端,指向队首元素的位置 队尾指针tail,位于队尾这一...