自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(179)
  • 收藏
  • 关注

原创 【2023年成都七中NOIP联赛】游记

细节啊细节,一定要关注细节,一不小心,掉坑里面了,然后呢,本来的高分呢,瞬降,然后,不就无了?

2023-07-08 11:14:33 690 1

原创 P4355 [CERC2015] Kernel Knights

因为原图是二分图,所以所有的环都是偶环。因为每个点只有一个出度,所以所有的环都是简单环。那么这个图可以想象成一个内向基环森林。每次给度为 0 的节点染色。每遍历到一个点:- 如果将要到达的点度为 0 或者它的颜色为不可选(因为此点不可选所以不能随便染色),那么继续遍历。然后把所有没有标记的环搞一遍就可以了。

2023-06-30 10:32:26 398

原创 [CSP-S 2021] 回文

比 T2 简单的 T3 这辈子不多了……是名副其实的签到题……不过能从暴力n^3优化到n,这是一个非常难的过程。

2023-06-16 17:43:04 729 1

原创 [CSP-S 2022] 策略游戏

历年来最简单的 T2。开场的时候看到这个题,内心:“【】,提高组考博弈论了?然而并不是,这就是个很愚蠢的贪心题,只需要将所有可能的情况自己手动模拟一下,就可以推出正确的答案。

2023-06-14 18:41:08 1588 2

原创 [NOIP2012 提高组] 借教室

在这道题里面,我们看到了差分及前缀和的应用,既然差分与前缀和都行,那么我们可以热烈欢迎线段树(树状貌似也还行?)做法……

2023-06-12 18:04:46 566 1

原创 CSP-S 第一轮笔试重点题

今天我给大家分享一些 CSP-S 第一轮笔试中的一些重点题,包含讲解。

2023-06-08 21:39:45 2724 1

原创 [NOIP2003 提高组] 加分二叉树

如果该题你认真思考的话,熟知树的结构,那是有很大几率可以做出来的。祝大家早日AC!The End~

2023-06-08 16:42:42 895 1

原创 [NOIP2004 普及组] FBI 树 递归解法

我们可以把由 0 和 1 组成的字符串分为三类:全 0 串称为 B 串,全 1 串称为 I 串,既含 0 又含 1 的串则称为 F 串。FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三种。由一个长度为 $2^N$ 的 01 串 S 可以构造出一棵 FBI 树 T,递归的构造方法如下:1. T 的根结点为 R,其类型与串 S 的类型相同;2. 若串 S 的长度大于 1,将串 S 从中间分开,分为等长的左右子串 S1 和 S2;

2023-05-29 18:27:45 680 1

原创 [NOIP2004 普及组] FBI 树 队列解法

我们可以把由 0 和 1 组成的字符串分为三类:全 0 串称为 B 串,全 1 串称为 I 串,既含 0 又含 1 的串则称为 F 串。FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三种。由一个长度为 $2^N$ 的 01 串 S 可以构造出一棵 FBI 树 T,递归的构造方法如下:1. T 的根结点为 R,其类型与串 S 的类型相同;2. 若串 S 的长度大于 1,将串 S 从中间分开,分为等长的左右子串 S1 和 S2;

2023-05-29 18:19:51 825 1

原创 [NOIP1999 普及组] Cantor 表

该题题目很简单,可以用非常简单的算法解决,但是我们可以举一反三,更加深入的思考,想到更牛X,更高效快速的算法。

2023-04-18 21:20:30 703 2

原创 [NOIP2000 提高组] 进制转换

该题其实就靠数学功底来推,并不算是很难。

2023-04-12 22:17:57 712 1

原创 [NOIP1999 普及组] 回文数

string s;q是高精数组,w是q反转后的数组,l是高精度数的长度,n是进制,ans是所需的步数, s是输入高精度的字符串。这题需要会高精加,高精反转,高精判断回文数和数组存高精度等诸多基础算法。

2023-03-30 16:30:34 733 1

原创 统计和——前缀和

该题是前缀和中很经典的一道题目,相当于敲门砖了,后面还有更难的差分、二维前缀和等……

2023-03-28 21:45:00 135 2

原创 前缀和的基本思想

前缀和是一个非常有用且能大幅度优化时间复杂度的算法,希望大家多多学习,以后几篇文章我会多讲一些前缀和的习题。

2023-03-28 17:29:13 418 1

原创 数列游戏——差分

此题是差分算法的入门题,算是很简单的了,需要熟练掌握前缀和的知识后学习。

2023-03-28 07:30:00 343 1

原创 差分的基本思想

D[i]),把我们的A代入进去,因为D[i]=A[i]-A[i-1],所以S[i]也可以等于A[0]+A[1]-A[0]+A[2]-A[1]+A[3]-A[2]+……+A[i]-A[i-1],这样把相同的加减给抵消掉,可以得出来A]i]的差分数组是D[i],D[i]的差分前缀和是A[i]。我们一般将A[0]初始化为0,A[]的下标一般都是从1开始的(这样差分方便一些,如果从0开始存的话,D[0]的差分就要用到A[-1]了,在C++里面数组越界是不能允许的)。接下来我写的几篇文章都会讲一些关于差分的例题!

2023-03-27 21:27:42 230 1

原创 [NOIP1998 提高组] 拼数

此题是一个证明题吧!如果光说字符串的话倒是挺简单的,扯到数学就慢慢的脑子转不来弯了!

2023-03-22 21:44:42 943 2

原创 [NOIP1998 提高组] 车站

这道题如果写程序的话还是算很简单的,难点是有点儿复杂的数学推理和找规律。

2023-03-16 18:25:59 656 1

原创 [NOIP1998 普及组] 幂次方

这道题并不怎么难,只需要基本的算法就可以解决,难点是输出括号和加号的时候容易出错。

2023-03-15 17:05:01 720 1

原创 [NOIP1998 普及组] 三连击

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

2023-03-14 22:52:35 375 1

原创 [NOIP1998 普及组] 阶乘之和

其实这题我用了一下类似于剪枝操作,每次处理都基于上一次的操作,大大缩短了用时。

2023-03-14 22:05:30 659 3

原创 二叉平衡树(C++)

平衡二叉树也叫做AVL树,AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树。我们怎么知道这棵二叉搜索树平不平衡呢?我们知道,二叉搜索树的搜索时间和高度是有直接关系的,但是我们按递增、递减序输入之后,高度就和n一样了,所以时间复杂度为O(log n).想要优化,就是改变这棵二叉搜索树的高度。

2023-02-25 19:51:55 1126 1

原创 [NOIP2011 提高组] 铺地毯

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到 n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。

2023-02-23 18:21:31 380 1

原创 [NOIP2002 普及组] 过河卒

至此,我们成功将一个时间复杂度和空间复杂度为 O(n^2)O(n2) 的算法,优化到了时间复杂度 O(n^2)O(n2),空间复杂度 O(n)O(n),虽然对于这道题而言没有任何的意义,但是或许能在做其他难题的时候启发我们一点思路,总归是没有坏处的。

2023-02-23 16:46:44 721 1

原创 二叉查找树(C++)

二叉查找树是什么呢?(也叫二叉搜索树)就是字面意思,首先是一颗二叉树:一棵树,最多分两个叉。1.1 满二叉树上面那个图就是一颗二叉树,同时也是一颗满二叉树:每一个节点都有两个儿子,左儿子和右儿子。同时啊,还有完全二叉树:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。1.2 完全二叉树1.3 普通二叉树。

2023-02-21 17:56:33 1135 1

原创 数楼梯(加强版)

对于这道题,有些像斐波那契数列,需要将递归进行优化才可以解决。

2023-02-13 14:49:05 592 1

原创 斐波那契数列的六种解法

有些时候,一个问题,能用简单算法解决就尽量不要用复杂的算法,例如斐波那契数列,如果复杂度O(n)可以解决,可以直接用三个变量循环法解决,不必要用复杂的递归递推算法了。如果O(n)都不能解决,那就只能使用矩阵快速幂法了!

2023-02-08 15:53:17 5253 2

原创 斐波那契数列

我们可以写一个递归函数fun来解决,参数为一个int整数a,我们知道斐波那契数列的第一个数是1,第二个数也是1,所以我们在进行fun函数的时候,如果n==1那么返回1,如果n==2那么也返回1,如果不是1也不是2,那么我们可以进行递归解法,我们知道第n项=第n-1项+第n-2项,那么如果不是1和2,那么返回的就是fun(n-1)+fun(n-2).一、斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……递归是指递归该函数,指递归函数自己调用自己的函数,是一种编程方式。

2023-02-07 18:35:07 1656 1

原创 [CSP-J 2021] 网络连接

TCP/IP 协议是网络通信领域的一项重要协议。今天你的任务,就是尝试利用这个协议,还原一个简化后的网络连接场景。在本问题中,计算机分为两大类:服务机(Server)和客户机(Client服务机负责建立连接,客户机负责加入连接。需要进行网络连接的计算机共有 n 台,编号为 1∼n,这些机器将按编号递增的顺序,依次发起一条建立连接或加入连接的操作。每台机器在尝试建立或加入连接时需要提供一个地址串。服务机提供的地址串表示它尝试建立连接的地址,客户机提供的地址串表示它尝试加入连接的地址。

2023-02-06 10:47:21 830 1

原创 [CSP-J 2022] 逻辑表达式

本题解亮点:不用建表达式树或者用栈,这道题没有那么难,大家都想复杂了。

2023-02-04 20:26:29 2328 1

原创 [NOI Online 2022 入门组] 王国比赛

这道题还算比较简单,作为去年NOI Online的第一题还是可以的。

2023-02-02 14:45:00 494 1

原创 [NOI Online #1 入门组] 文具订购

其实这三种方法代码都非常的相同,但是时间复杂度却大不一样,说明,一个复杂度极高的代码,只要你细心观察,稍微在关键点改上几笔,可能就比之前快上许多倍呢!

2023-02-02 08:15:00 675 1

原创 [NOI Online #3 入门组] 最急救助

这道题作为NOI Online的模拟赛的第三题,也就是最后一题,属实是太水了,我们只需要掌握结构体的运用,计数,sort排序比较函数,排序优先级就可以了,连一些算法都不必要用出来。

2023-02-01 19:15:00 573 1

原创 [NOI Online 2021 入门组] 切蛋糕

这道题作为NOI Online 2021的第一题,还是比较简单的,只需要手推一下,就可以进行分支判断了!

2023-02-01 14:47:52 317 1

原创 [NOIP2008 提高组] 笨小猴

这道题是2008年提高组第一题,但是难度不算很高,只有普及1~2题的难度,考的知识点也很多:质数的判断,字符桶计数,找数组最大最小值。对于一个初学者来说,应该算是挺难的了!

2023-01-31 11:12:32 1331 2

原创 梦熊杯-十二月月赛-钻石组题解-B.卷王

这道题很简单,很简单!简单到我认为他都应该编入白银组第一,二题的,仅仅只需要学生学会计数就行了!为什么会在钻石组里面呢?还是钻石组的第二题?

2023-01-30 22:15:05 712 1

原创 梦熊杯-十二月月赛-白银组题解-D.智慧

运用了函数的代码长度为27行,没有运用函数的代码长度为57行,多了30行的差距,你说函数有多重要了吧,可以很大程度增加你编代码的速度。但是不要乱用函数,毕竟调用函数要多出O(1)的时间,有些时候如果有重复的语句需要使用(大于1次),就可以写成函数。如果只用一次,还要写成函数的话,就多了O(1)的时间开销,这样时间换速度就亏了,还不如不写函数。

2023-01-30 11:31:27 752 1

原创 梦熊杯-十二月月赛-白银组题解-C.永恒

这道题其实并不怎么难,考点就是函数的应用与求整数的各位数(这个是非常容易考的)!

2023-01-29 19:04:02 557 1

原创 梦熊杯-十二月月赛-白银组题解-B.契约

这道题非常的简单,考的就是if语句的判断。

2023-01-28 22:44:04 860 1

原创 梦熊杯-十二月月赛-白银组题解-A.自由

这第一种思路不难想到,但是我们需要求巧来进行优化。(虽然这三份代码都可以AC)

2023-01-28 22:05:46 719 1

C++题目数素数代码+详细注释

​ 1013 数素数 令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从 PM​ 到 PN​ 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。 输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 代码长度限制: 16 KB 时间限制: 200 ms 内存限制: 64 MB 思路:    1.判断素数      我们需要写一个判断一个整数是否是一个素数的函数:             素数是什么呢?             是除了1和它本身以外没有任何的因子.             那么我们只要发现它的一个因子就可以说他不是素数,反之,返回true.             因子是什么?             一个数除以它的因子余数为0.             我们可以根据这一点

2022-12-11

C++递归算法详解.docx

 本文试图从以下几个方面来讲解递归  1、什么是递归?  2、递归算法通用解决思路  3、实战演练(从初级到高阶)  4、递归函数调用栈  5、递归算法时间复杂度分析与求解  力争让大家对递归的认知能上一个新台阶,特别会对递归的精华:时间复杂度作详细剖析,会给大家总结一套很通用的求解递归时间复杂度的套路,相信你看完肯定会有收获。  简单地说,就是如果在函数中存在着调用函数本身的情况,这种现象就叫递归。  以阶乘函数为例,如下, 在 f 函数中存在着 f(n - 1) 的调用,所以此函数是递归函数。  进一步剖析「递归」,先有「递」再有「归」,「递」的意思是将问题拆解成子问题来解决, 子问题再拆解成子子问题,...,直到被拆解的子问题无需再拆分成更细的子问题(即可以求解),「归」是说最小的子问题解决了,那么它的上一层子问题也就解决了,上一层的子问题解决了,上上层子问题自然也就解决了,....,直到最开始的问题解决,文字说可能有点抽象,那我们就以阶层 f(6) 为例来看下它的「递」和「归」。  求解问题 f(6), 由于 f(6) = n * f(5), 所以 f(6) 需要拆解成 f(5

2022-12-04

如何学好C++(自我的经验及描述)

那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师、高级C++服务端工程师、项目经理、技术总监、我想跟大家分享下我自己的学习心得与体会! Linus曾说过:“C++是一门很恐怖的语言,而比它更恐怖的是很多不合格的程序员在使用着它”,这个世界上最难的编程语言可能非C++莫属了,呵呵,虽然有点夸张...... 但是, 大家记住,难度越高意味着含金量与竞争力越高,越能把你和别人区分开来,所以,你在一开始就需要有很小心谨慎的态度,并把C++当成一种难以训服的猛兽来看待。 那么如果你只是一时兴起,并没有真正沉下心来想学好一门语言,那么我不建议你学,因为学习C++是痛苦的,没有兴趣,那么这个学习过程将是一种折磨与煎熬! 门槛与含金量并存,一旦你学会了C++,可以说,很多语言对你而言也就不是难事了。 一般呢,学习C++的新手学员有以下几种情况: 1.纯小白(非计算机专业、没学过任何编程语言) 2.接触过C语言、但没学好 针对第1、2种情况,我建议一定要把C语言基础打牢,如果

2022-12-03

C++文件读写+二进制读写+STL文件函数+创建文件+读指针+写指针+读写指针+可应用于系统中底层的文件创建+计算机专业领域

学会程序和算法,走遍天下都不怕! 指定教材: 《新标准C++程序设计教程》 郭炜 编著 清华大学出版社 文件读写 文本文件 内容是文字(哪国语言都行),用记事本打开能看到文字的文件。  二进制文件 本质上所有文件都是0,1串,因此都是二进制文件。但是一般将内容不是文字, 记事本打开看是乱码的文件,称为二进制文件。word文件记事本打开看是乱 码,因此也是二进制文件  文件读写相关函数在头文件 cstdio (或stdio.h)中声明 #include <cstdio>  fopen函数打开文件, 返回 FILE * 指针,指向和文件相关的一个FILE变量 (FILE 是在cstdio中定义的struct)  fscanf、fread,fgets,fgetc 等函数读文件,fprintf, fwrite,fputs,fputc 等函数写文件,都需要通过fopen返回的FILE *指针进行  文件读写结束后,一定要fclose关闭文件!!! 否则可能导致写入文件的数据没被保存,或者无法打开其它文件! 打开文件的函数  FILE * fopen(char * filename,

2022-12-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除