- 博客(215)
- 收藏
- 关注
原创 信息学奥林匹克竞赛(NOI/NOIP/CSP) 学习进度自查表
P1059 [NOIP2006]明明的随机数。P1216 [USACO]数字三角形。P1494 [国家集训队]小Z的袜子。P4779 【模板】单源最短路径。平衡树(Splay/Treap)P2742 [USACO]圈奶牛。P3383 【模板】线性筛素数。P3366 【模板】最小生成树。P3376 【模板】网络最大流。P3369 【模板】普通平衡树。P1177 【模板】快速排序。P2249 【模板】二分查找。P3374 【模板】树状数组。图的遍历(DFS/BFS)P3367 【模板】并查集。
2025-08-13 17:31:23
569
原创 二分查找 二分答案
例如,如果一行树的高度分别为20,15,10和17,米尔科把锯片升到15米的高度,切割后树木剩下的高度将是15,15,10和15,而米尔科将从第1棵树得到5米,从第4棵树得到2米,共得到7米木材。米尔科的伐木机工作过程如下:米尔科设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉所有的树比H高的部分(当然,树木不高于H米的部分保持不变)。输入:第一行是一个不超过 100的正整数 n,第二行是 n个不超过 10^6的正整数,表示每条绳子的长度,第三行是一个不超过 10^8的正整数 m。
2025-08-06 14:02:08
978
原创 二分算法
例如,如果一行树的高度分别为20,15,10和17,米尔科把锯片升到15米的高度,切割后树木剩下的高度将是15,15,10和15,而米尔科将从第1棵树得到5米,从第4棵树得到2米,共得到7米木材。米尔科的伐木机工作过程如下:米尔科设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉所有的树比H高的部分(当然,树木不高于H米的部分保持不变)。输入:第一行是一个不超过 100的正整数 n,第二行是 n个不超过 10^6的正整数,表示每条绳子的长度,第三行是一个不超过 10^8的正整数 m。
2025-08-06 12:30:00
793
原创 贪心算法
贪心算法是一种通过局部最优选择来达到全局最优解的算法设计方法。它从问题的初始状态出发,通过一系列贪心选择来得出最优值或较优解。核心思想:每一步都做出当前看起来最佳的选择,而不考虑整体情况。
2025-08-04 12:00:00
1975
原创 四种基础排序算法:冒泡、选择、插入、计数排序
排序算法时间复杂度(平均)时间复杂度(最坏)空间复杂度稳定性冒泡排序O(n²)O(n²)O(1)稳定选择排序O(n²)O(n²)O(1)不稳定插入排序O(n²)O(n²)O(1)稳定计数排序O(n+k)O(n+k)O(k)稳定注:k表示输入数据的范围大小。
2025-08-04 02:07:12
752
原创 孩子学C++,到底是为了什么?
目标不同,路径完全不同。作为带过数百名学生的编程老师,我把K12阶段学C++的规划分成三类,家长可以对号入座,找到最适合孩子的方向。如果孩子数学好、喜欢编程,且家庭能支持,可以尝试。但如果只是“跟风”,建议慎重,这条路需要极强的毅力和天赋。如果还是不确定孩子适合哪条路,可以私信我,帮你做个简单评估。,但要有明确规划,别让孩子“随便学学”,否则很难出成绩。你家孩子学编程的目标是什么?,但要坚持,避免“三天打鱼两天晒网”。(如蓝桥杯、NOC、CSP-J)(哪怕区级/市级,也比没有强)如果目标是升学加分,
2025-08-04 01:02:32
651
原创 GOC编程:绿树成荫
本程序展示了如何使用GOC的简单指令结合循环结构,创建有规律的图形变化效果。通过控制图形大小和位置的变化,可以产生透视和距离感的视觉效果。
2025-08-02 14:38:26
323
原创 Python循环结构
设循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于m为止,此时的i值就是所求的n。:将任意的n分解为质因数的乘积,要从最小的质数开始,那么,我们就不妨从2开始试除,能整除就输出2,再对商继续试除,直到不再含有因子2;而对于任意整数i,根据素数定义,从2开始,到sqrt(i),找i的第一个约数,若找到第一个约数,则i必然不是素数。:某小组欲以1000元购买1.8元,1.9元,2.1元的纪念品若干件,每种记录品至少买100件,设计一个方案,使购买的纪念品最多,若有多种方案,选择余额最小的方案。
2025-07-24 16:34:44
899
原创 Python语言入门
利用公式 C=5×(F-32)÷9 进行温度换算(C表示摄氏温度,F表示华氏温度),输入华氏温度F,输出摄氏温度C,精确到小数点后2位。在梯形中阴影部分面积是150平方厘米,求梯形面积。给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?输入一行,包含一个实数F(F≥-459.67)输出一行,包含一个实数,表示对应的摄氏温度。给定两个整数A和B,输出A+B的和。输入只有一行,包含一个字符。输出一个数,即他们的和。
2025-07-23 16:09:38
342
原创 Python海龟绘图:手把手教你绘制奥运箭靶
基本设置:设置窗口大小:设置背景图画笔控制penup()pendown():抬笔/落笔pensize():设置画笔粗细:隐藏画笔图标绘图命令:画圆/弧线goto(x, y):移动到指定坐标颜色填充:设置颜色end_fill():填充区域。
2025-07-23 16:08:38
718
原创 用Python画风力发电机,原来风能这么强大!
移动控制goto(x,y)移动到指定坐标forward()backward()前进/后退画笔控制penup()pendown()抬笔/落笔pensize()设置线条粗细颜色填充color(画笔色,填充色)end_fill()循环结构循环执行直到条件不满足文字绘制write()在指定位置添加文字。
2025-07-23 16:06:12
382
原创 Python 程序控制结构
程序由若干条语句组成,默认情况下按照顺序一条一条地执行,这种结构称为顺序结构。但在实际解决问题时,我们经常需要根据条件进行选择或重复执行某些操作,这就需要选择结构和循环结构。•选择结构:if 语句、if-else 语句、if-elif-else 语句•循环结构:for 循环、while 循环。
2025-07-23 16:03:20
948
原创 [特殊字符] 用Python Turtle绘制奥运五环:解锁编程的艺术之旅![特殊字符]
🎨 用Python Turtle绘制奥运五环:解锁编程的艺术之旅!🌟大家好!欢迎来到我们的编程创意工坊!今天,我们将用 Python Turtle 绘制象征团结的 奥运五环,带你体验编程与艺术的完美碰撞!🎉 Turtle库是Python的入门神器,简单几行代码就能创造出色彩缤纷的图形。无论你是新手还是老手,这篇教程都将让你轻松上手,打造属于你的五环杰作!快来一起探索吧!🚀🎯 准备工作:开启你的编程画布确保已安装Python,Turtle库无需额外安装(它是Python的标准库)。
2025-07-21 15:26:48
461
原创 C++ STL容器
queue是一种先进先出(FIFO)的数据结构,只允许在容器的一端插入元素,在另一端删除元素。vector是可以动态改变大小的数组,支持随机访问,在尾部插入和删除效率高。priority_queue是一个优先级队列,默认情况下元素按从大到小排列(大顶堆)。deque支持在两端高效插入和删除元素,同时支持随机访问。set是有序不重复集合,multiset是有序可重复集合,基于红黑树实现。map是键值对的有序集合,键唯一;multimap允许键重复。基于哈希表的无序集合和映射,查找效率更高但不保持元素顺序。
2025-07-20 16:25:49
642
原创 结构体专题
函数声明告诉编译器函数的存在,包括函数名、返回类型和参数类型。void by();// 函数声明,只有返回类型、函数名和参数类型函数定义包含函数的具体实现。cout << "宝莹爱学习!易错点如果函数定义在main函数之后,必须先声明才能调用声明和定义的返回类型、函数名、参数类型必须一致函数是C++程序的基本构建块,理解函数的各个方面对于编写清晰、可维护的代码至关重要。掌握函数声明与定义、参数传递、返回值、重载等概念,并注意避免常见的陷阱和错误,将大大提高编程效率和代码质量。
2025-07-20 11:11:47
770
原创 GoC 图片指令
有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。有7个参数的是增强格式,参数意义分别是:图层号、图片号、宽度、高度、方向、X坐标、Y坐标。:默认的,笔的位置是图片的中心位置,显示时图片向上,如样例所示。:把文件名为fname的图片调入,并设置对应为编号id,供后面显示图片pic等命令使用。第2种命令格式中的sBegin是图片文件的开始编号,图片文件名格式为:文件名+编号+.+后缀。:这个命令在指定的画布层上,每次清除前面的图形,显示指定图片,比较方便一些动画制作。
2025-07-19 15:53:43
785
原创 枚举算法入门
有一堆100多个的零件,若三个三个数,剩二个;若五个五个数,剩三个;若七个七个数,剩五个。请你编一个程序计算出这堆零件至少是多少个?回文数指的是正过来读和反过来读都是一样的数,比如1661、2772都是回文数,请你编程找出所有的4位的回文数。在1—500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。输出1—999中有因数3,且至少有一位数字是5的数。由小到大输出所有的4位回文数,每行1个。
2025-07-18 20:41:16
149
原创 CSP-J 复赛备考策略
从某种意义上说,数据限制也暗示了可能的算法,数据小,也许是搜索派上用场的时候,数据大了,可能只能考虑动态规划、数学方法等高效的算法了。比赛时首先设置编程环境的工作路径,保存文件的文件名以及程序中引用的输入输出文件名一定要按要求命名, 包括文件名的大小写。测试的数据既要考虑一般,也要考虑特殊情况,评分的唯一标准是 测试数据。算法方面,可能考到的是: 穷举、搜索(回溯就可以了)、动态规划(几乎是必考)、贪心、递推,递归……1、模拟算法(暴力枚举),按照题目的要求,题目怎么说就怎么做,保证时间和正确性即可。
2025-07-18 12:52:10
483
原创 [特殊字符]信奥赛全攻略|从入门到保送清北的黄金路径,家长必看![特殊字符]
🚦 CSP-J(入门级) vs CSP-S(提高级) 👉 不是晋级关系!两者独立参赛,能力够强可直接挑战S组!👉 两轮闯关制:初赛→复赛,晋级≠获奖(分数线各省不同哦~) 👉 GESP免考福利:C++ 8级高分可跳过初赛,直通复赛!✅ 科技特长生加分:CSP-J/S、NOIP省三以上均有资格!✅ 名校强基计划:省一以上可参营,清北降分录取!🌟 记住:信奥赛不是短跑,而是编程马拉松,坚持到底的孩子终将闪耀!💬 小贴士:获奖分数全国统一,晋级线按省划分,双线并行别混淆!●高手直接冲CSP-S,冲刺省
2025-07-18 12:16:36
177
原创 [特殊字符]信奥赛全攻略|从入门到保送清北的黄金路径,家长必看![特殊字符]
🚦 CSP-J(入门级) vs CSP-S(提高级) 👉 不是晋级关系!两者独立参赛,能力够强可直接挑战S组!👉 两轮闯关制:初赛→复赛,晋级≠获奖(分数线各省不同哦~) 👉 GESP免考福利:C++ 8级高分可跳过初赛,直通复赛!✅ 科技特长生加分:CSP-J/S、NOIP省三以上均有资格!✅ 名校强基计划:省一以上可参营,清北降分录取!🌟 记住:信奥赛不是短跑,而是编程马拉松,坚持到底的孩子终将闪耀!💬 小贴士:获奖分数全国统一,晋级线按省划分,双线并行别混淆!●高手直接冲CSP-S,冲刺省
2025-07-18 11:34:31
147
原创 第14次课 认识图 A
第一行两个整数n和m,分别表示结点总数n,指定结点m。(4<=n<=10,1<=m<=n)第一行两个整数n和m,分别表示结点总数n,指定结点m。(4<=n<=10,1<=m<=n)给定有向图n*n的邻接矩阵,编程计算指定结点的出度,入度和度。一行输出空格分隔的三个整数,分别表示结点m出度,入度和度。给定无向图n*n的邻接矩阵,编程计算指定结点的度。下面n行,每行n个整数,表示有向图的邻接矩阵。下面n行,每行n个整数,表示邻接矩阵。一个整数,表示结点m的度。,表示一条边的两端结点。
2025-07-12 19:42:41
261
原创 递归函数的构造使用
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘,用函数fact(n)表示,可以看出:factn)=n!×nfactn−1)×n所以,fact(n)可以表示为,只有n=1时需要特殊处理。于是,fact(n)上面就是一个递归函数。如果我们计算fact(5)递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。
2025-07-12 12:13:34
335
原创 循环训练 A
请从键盘读入一个整数n,输出1~n中所有是2的倍数,但非3的倍数的数,每行1个。从键盘读入一个整数n,请循环输出1~n之间所有的整数,每行输出1个。从键盘读入一个整数n,请输出n~1之间所有的整数,每行输出1个。按要求输出1~n中满足条件的整数,每行1个。按要求输出1~100之间的每个数。按要求输出100~1之间的每个数。输出n~1之间所有的数,每行1个。输出1~n之间所有的整数。
2025-07-11 20:37:27
365
原创 CSP-J/S 参赛选手注册报名流程
(4)CCF2025年发布新规,报名参加CSP-J/S的被认证者在当年9月1日(不含)需满12周岁,包括第一轮和第二轮。目前全国所有省份的报名工作都已经正式启动,很多选手还不是很了解应该如何报名,本文以选手的身份将注册报名的步骤拆解展示给大家。正确填写相关信息,参加认证者必须如实填写个人信息报名,包括但不限于姓名、身份证号、出生日期、性别等;非常重要,找回密码、注册报名审核信息提醒都是直接发到邮箱里的,一定要填写常用邮箱。,则缴费成 功,此时被认证者报名成功。填写完注册信息,上传个人照片,点击。
2025-07-11 17:46:50
833
原创 树的知识点整理
3)在一棵非空树中,结点a是树的一个结点,由a以及的所有后代组成的结构,称为树的子树。2)任意一棵非空树中(>0),有一个特定的结点,称为根结点或树根(root);先序:访问根结点一>遍历左子树一>遍历右子树(简称:根左右)中序:遍历左子树一>访问根结点一>遍历右子树(简称:左根右)后序:遍历左子树一>遍历右子树一>访问根结点(简称:左右根)访问根结点一>遍历左子树一>遍历右子树(简称:根左右)遍历左子树一>访问根结点一>遍历右子树(简称:左根右)遍历左子树一>遍历右子树一>访问根结点(简称:左右根)
2025-07-06 16:55:29
404
原创 强化训练 A
假设小明的妈妈向公司请了 n 天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?两个整数,每行 1 个,第 1 行的整数代表小明妈妈请假的小时数,第 2 行的整数代表小明妈妈请假的分钟数。请从键盘读入一个整数n,输出1~n中所有是2的倍数,但非3的倍数的数,每行1个。请输出一个两位的整数n,倒过来的数,也就是输出这个两位数个位和十位颠倒的结果。从键盘读入一个整数n,请循环输出1~n之间所有的整数,每行输出1个。从键盘读入一个整数n,请输出n~1之间所有的整数,每行输出1个。
2025-07-06 12:37:13
613
原创 墨宸杯-普通赛 A
这一天,小明给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小明计算一下,它这天一共游了多少时间呢?梅山小学有一块长方形花圃(花圃的长宽都是整数),长 m 米,宽未知。假设小明的妈妈向公司请了 n 天的假,那么请问小明的妈妈总共请了多少小时的假,多少分钟的假?两个整数,每行 1 个,第 1 行的整数代表小明妈妈请假的小时数,第 2 行的整数代表小明妈妈请假的分钟数。从键盘读入一个两位的整数n,请求出这个两位整数个位和十位的和是多少?
2025-07-05 15:30:11
150
原创 分支进阶 A
依据每个小组总人数及男生、女生人数决定小组的接受任务,小组总人数小于10人的小组负责送水(输出water),小组总人数大于等于10人且男生多于女生的小组负责种树(输出tree),小组总人数大于等于10人且男生不多于女生的小组负责采茶(输出tea)。输入小组男生人数、女生人数,输出小组接受的任务。游乐场引进了一个新的游乐设施,可以两人一组开动该设施,但设施设计上有一个缺陷,必须一个人的体重在60公斤以上(包含60公斤),另一个人体重在60公斤以下,才能启动该设施。如果是,则输出“yes”,否则输出“no”。
2025-07-04 20:51:13
303
原创 NOI 2025获奖规则
NOI金牌基准数为50枚。在计算分数线时,所有A类选手自动获得5分加分,其余类别选手无加分。选手按分数由高到低排序,根据下述获奖规则确定奖牌分数线(A类选手加分仅用于分数线划定,其实际成绩仍为原始分数)。铜牌的获奖数为参加人数的85%减去金银牌的获奖数,且获得铜牌者其编程总分不得低于100分。与最后一名获奖选手分数线相同的选手可获得同级别的奖项。夏令营(D、E类)体验选手可获得成绩证明,其成绩证明参照NOI选手金银铜牌分数线进行说明。选手的信息如有任何不符合规定或不属实的情况,该选手都将被取消参赛资格。
2025-07-03 17:54:21
919
原创 GESP 二级
特征两数幂次和统计直角三角形面积统计输入范围区间[l,r]最大边长n核心计算2^i + 2^ja*b/2去重方式数组标记和值数组标记面积值循环结构双重循环幂次组合双重循环边长组合特殊处理幂次预处理面积整数验证。
2025-06-28 15:24:33
298
原创 关于树的基础结构与遍历的详细讲解(从属于GESP六级)
•非空:至少包含 1 个结点。•连通:任意两点都有唯一简单路径相连。•无环:不存在回到自身的闭合通路。•边数:若结点数为n,则必有n − 1条边。•有序 / 无序:一般树默认无序;二叉树属于有序树(左右孩子有先后)。在算法与数据结构课程、GESP 六级中,树多被视为根树(Rooted Tree)——默认指定唯一根结点,所有边隐含自顶向下的方向。“堆合并、左零右一、压缩评估”•堆合并:两最小 → 最优前缀树;•左零右一:沿路径得唯一码字;•压缩评估:平均码长 × 符号数,算压缩率。
2025-06-28 12:01:23
836
原创 关于递归算法的详细讲解(从属于GESP五级)
1.形式化描述若存在函数f,在计算f(n)时又需要求解若干个规模更小的f(k)k<n),并最终用这些子结果组合得到答案,则称f递归地定义在自己的过去值之上。2.直观意象•套娃:最外层看似复杂,但逐层拆开直至最内核。•镜中镜:每面镜子反射出同构但更小的版本。•数学归纳:先证明「最小步」成立,再证明“假设前一步成立,则本步也成立”。3.递归 ≠ 循环• 循环由编译器自动维护迭代变量;• 递归借助语言运行时的调用栈自动回溯。
2025-06-28 11:38:57
886
原创 深度优先搜索 2
从一个点开始,沿着某条路往下走,一直走到底(能深则深),如果走完后发现不能达到目标解,返回到上一个点(不能深则退),换条路,然后继续走到底,如此往复,直至所有可能的结果都被搜索完。这种能深则深,不能深则退的方法,称之为深度优先搜索简称DFS。
2025-06-28 11:35:39
1050
原创 分支结构 A
小明去冷饮店买冰激凌,如果买10个以上或者10个,2元/个,10个以下,2.2元/个,请从键盘读入小明的购买数量,计算小明应付的价格!一个整数,代表小明购买的冰激凌的数量(n<=100)小明应付的金额,金额保留1位小数!根据购买数量判断单价:≥10个按2元/个,<10个按2.2元/个。计算总价后保留1位小数输出。.1f。
2025-06-27 21:01:17
560
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人