编程训练
蓝桥杯真题
-
2026年第十七届蓝桥杯软件赛省赛C/C++研究生组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Python大学A组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Java研究生组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Java大学A组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Python大学C组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Java大学C组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Python研究生组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
2026年第十七届蓝桥杯软件赛省赛Java大学B组真题
【选手须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
-
更多子题集
点击查看全部蓝桥杯真题题集,整理收集了蓝桥杯近年的初赛、决赛各组真题,每年赛后第一时间更新!
编程百练
-
数学问题
这里我们将编程问题提高一个难度等级,涉及到诸多经典算法题型,比如高精度、汉诺塔、链表操作、冒泡排序等,旨在帮助您将编程能力提高到一个新的平台。
-
字符串训练
字符串对于任何语言来说都是一个十分重要的数据类型,它可以以回文串、删除指定字符、字符统计、反转字符串等各种各样的题型出现在您面前,完成我们提供的字符串训练,可使您在基本的字符串操作面前游刃有余。
-
模拟题提高思维
模拟题以常见的生活题材作为题目背景,您可以通过编程来解决诸如进制转换、百鸡百钱、剪刀石头布等类似的问题,让您感受到编程有力量!
-
编程基础训练
基础训练旨在培养基本的编程素养,包括打印输出、数学计算和逻辑判断等编程基本思维,让您充分感受到编程的乐趣!
-
C++STL库编程题库
概述:STL是StandardTemplateLibrary的简称,即标准模板库,包含容器(vector、set\multiset、map\mutimap、list)、算法(sort、rervers等)、迭代器(iterator)三部分,是C++不可或缺的一部分,
-
多组输入输出格式训练
概述:OJ评测的原理为黑盒测试,即系统会根据用户的数据输出做比对,但通常会有多组数据测试,因此,要杜绝程序中出现“pleaseinput”、“请输入xx”的提示性语句,防止作为答案而被判断为答案错误,本题集是让大家熟悉OJ的多组输入输出格式,写出适合OJ评测系统的程序才可以通过得分。
-
更多子题集
点击查看全部编程百练题集,本题集专为编程初学者和蓝桥杯竞赛者设计,内容由浅入深、循序渐进。
谭浩强C语言课后习题
-
谭浩强C语言程序设计习题-位运算
位运算是C语言运算符中的一个大类,包括左移、右移、取反等,用于数字的运算,巧妙使用位运算可以带来很好的作用
-
谭浩强C语言程序设计习题-指针与链表
本题集主要用于训练指针、以及动态开辟管理内存,包括malloc、free等知识,结构体完成链表相关的操作,典型的如增删改查等
-
谭浩强C语言程序设计习题-自定义函数
本题集收录了谭浩强C语言程序设计书当中的课后习题,包括第三版~第六版都适用,本部分题集主要训练自定义函数,即将代码单独写到函数里,通过调用的方式使用,主要锻炼函数的定义、调用和传递参数等知识!
-
谭浩强C语言程序设计习题-数组
本题集收录了谭浩强C语言程序设计书当中的课后习题,包括第三版~第六版都适用,本部分题目主要训练数组,利用数组批量处理数据,有一维数组、二维数组,希望大家熟练运用!
-
谭浩强C语言程序设计习题-循环结构程序设计
本题集收录了谭浩强C语言程序设计书当中的课后习题,包括第三版~第六版都适用,本部分题集主要利用for循环,while、dowhile循环的知识点,可以使用前面的知识点,但不用数组,请大家自行完成!
-
谭浩强C语言程序设计习题-选择结构程序设计
本题集收录了谭浩强C语言程序设计书当中的课后习题,包括第三版~第六版都适用,本部分题集主要利用ifelse以及switch分支结构知识点,不适用循环,答案见每道题目内页右侧题解中,建议不超过知识点完成!
-
谭浩强C语言程序设计习题-入门与顺序结构
本题集收录了谭浩强C语言程序设计书当中的课后习题,包括第三版~第六版都适用,答案见每道题目内页右侧题解中,建议自行完成!
-
宏定义训练
适当的使用宏定义可以提高代码的可读性,拒绝“魔鬼数”。宏定义的基本用法如下:#definePI3.1415926#undefPI
-
更多子题集
点击查看全部谭浩强C语言课后习题题集,本题集为配套谭浩强版C语言程序设计课后的习题,看完书记得来上机实践!
Python入门编程题库
-
编程基础之多维数组
多维数组指的是三维及其以上的数组,三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上。数组是一个线性数据结构,用于存储一组相同的数据类型的数据,多维数组可以理解为一种嵌套的数组,比如:二维数组是以一维数组为数据元素的数组,即数组的数组。本题集整理了大量多维数组练习。
-
编程基础之字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s="abcdefghij",则s[1]="b",s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
-
编程基础之数组(元组)
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。数组是计算机编程中的重要概念,
-
编程基础之循环控制
循环控制是编程中必不可少的基础能力,编程学习者非常有必要掌握这种能力。循环控制指令之间可以相互转换,可以根据个人喜好来选择一种或混合使用。除此之外,在循环过程中如果需要退出循环,此时可以借助break指令,如果想忽略某些迭代,此时应该使用continue指令。本题集整理了大量循环控制练习。
-
编程基础之逻辑表达式与条件分支
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。
-
编程基础之算术表达式与顺序执行
表达式是由运算符和操作数组成的符合编程语言语法规则的式子,其目的是用来说明一个计算过程。表达式中的操作数包括常量、变量和函数等。所有的表达式都有一个值,即返回结果。在书写表达式时,应注意运算符的优先级与结合性,确保列出的表达式的实际求值顺序和自己所要求的一致。
-
更多子题集
点击查看全部Python入门编程题库题集,Python学习从刷题开始!跟着章节顺序逐章练习!让你的Python代码自学也能精通!
信息学一本通C/C++基础
-
函数
函数是编程中模块化思想的体现,设计函数应该遵循“高内聚、低耦合”的设计思想,体会代码重用的好处。同时自定义函数也是递归算法的掌握基础,因此本章题目建议全部使用自定义函数来实现。
-
数组
数组是编程中的重点,包括一维数组、二维数组以及多维数组,使用更多尤其竞赛中的是以字符为内容的字符数组,因为是字符串的载体,因此考察和使用也更多,本题集收录的均为需要使用数组的题目,希望大家多多练习
-
循环结构程序设计(while循环do-while循环for循环)
循环结构主要是由while循环、dowhile循环、for循环组成的三种循环结构,三者没有明显的优劣区别,了解彼此的特点并熟练运用即可,在实际开发或比赛中,更多的是循环的嵌套(如双重循环),和选择结构的嵌套等比较多,大家需要多多练习熟练掌握!
-
程序控制结构(if-else选择结构switch分支结构)
本题集都是具有分支选择结构得程序题目,典型得特点就是需要用ifelse或者是switch结构来控制程序结构,与前面学习不同,不在是全部代码都执行,而是根据条件决定执行哪句代码
-
顺序结构程序设计
本部分题解主要顺序结构下的各种基础题目,包括了运算表达式、变量和常量、各种数据类型的输入输出、以及常见模拟数学题的锻炼,不包含任何分支选择循环等复杂结构,非常适合基础锻炼,感受程序的顺序执行过程!
-
C/C++入门
本题集收录都是C语言、C++、Java、python等编程语言最最入门的题目,可以说是全部题库中最最基础、简单、入门的题目了,以输入输出为主,是编程学习小白同学的必做题。如果您现在只了解基础的语法,如循环选择、数组等等,建议按照此题集刷题训练,会有很好的提升!
-
更多子题集
点击查看全部信息学一本通C/C++基础题集,信息学一本通C/C++部分全部题库,按照章节顺序收集
编程从零基础入门
-
编程基础之函数与过程抽象
过程抽象的原则在于,函数应设计成像黑盒那样使用。程序员使用函数时,只需查看函数声明和说明函数用途的注释文字,不需要知道函数主体的任何细节。为函数声明写注释时,一个好办法就是将其分解成两种信息,即前条件和后条件。前条件指调用函数需要满足什么条件;后条件描述函数调用的结果。
-
编程基础之简单排序
简单选择排序是一种选择排序,每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。简单排序很简单,它的大致处理流程为先从待排序序列中,找到关键字最小的元素;如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;从余下的N-1个元素中,
-
编程基础之顺序查找
顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法。对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。本题集整理了大量顺序查找练习。
-
编程基础之多维数组
多维数组指的是三维及其以上的数组,三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上。数组是一个线性数据结构,用于存储一组相同的数据类型的数据,多维数组可以理解为一种嵌套的数组,比如:二维数组是以一维数组为数据元素的数组,即数组的数组。本题集整理了大量多维数组练习。
-
编程基础之字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s="abcdefghij",则s[1]="b",s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
-
编程基础之数组(元组)
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。数组是计算机编程中的重要概念,
-
编程基础之循环控制
循环控制是编程中必不可少的基础能力,编程学习者非常有必要掌握这种能力。循环控制指令之间可以相互转换,可以根据个人喜好来选择一种或混合使用。除此之外,在循环过程中如果需要退出循环,此时可以借助break指令,如果想忽略某些迭代,此时应该使用continue指令。本题集整理了大量循环控制练习。
-
编程基础之逻辑表达式与条件分支
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。
-
更多子题集
点击查看全部编程从零基础入门题集,零基础学编程,不知道按什么顺序刷题?就按这个题集来吧!
OpenJudge题集
-
编程基础之综合应用
计算机为了解决某个问题而使用某种程序设计语言编写程序代码并最终得到结果的过程,我们称之为编程。计算机程序就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌握的语言来编写的,所以人们要控制计算机一定要通过计算机语言向计算机发出命令。本题集整理了大量编程基础综合应用练习。
-
编程基础之函数与过程抽象
过程抽象的原则在于,函数应设计成像黑盒那样使用。程序员使用函数时,只需查看函数声明和说明函数用途的注释文字,不需要知道函数主体的任何细节。为函数声明写注释时,一个好办法就是将其分解成两种信息,即前条件和后条件。前条件指调用函数需要满足什么条件;后条件描述函数调用的结果。
-
编程基础之二分查找
二分查找也称折半查找,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,
-
编程基础之简单排序
简单选择排序是一种选择排序,每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。简单排序很简单,它的大致处理流程为先从待排序序列中,找到关键字最小的元素;如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;从余下的N-1个元素中,
-
编程基础之顺序查找
顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法。对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。本题集整理了大量顺序查找练习。
-
编程基础之多维数组
多维数组指的是三维及其以上的数组,三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上。数组是一个线性数据结构,用于存储一组相同的数据类型的数据,多维数组可以理解为一种嵌套的数组,比如:二维数组是以一维数组为数据元素的数组,即数组的数组。本题集整理了大量多维数组练习。
-
编程基础之字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s="abcdefghij",则s[1]="b",s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
-
编程基础之数组(元组)
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。数组是计算机编程中的重要概念,
-
更多子题集
点击查看全部OpenJudge题集题集,面向零基础,侧重NOIP/CSP信息学的一套刷题顺序
数据结构练习题库
-
数据结构-图
图,一般指图论,是数据结构中的重中之重,这的题库围绕图论相关的知识点,包括图的遍历(重点),深度优先搜索(DFS)和广度优先搜索(BFS)、最小生成树、最短路径问题,以及延申出的佛洛依德和迪杰斯特拉算法也是常见问题,还有拓扑排序等等,都需要重点掌握
-
数据结构-树
树这一部分包括的题目主要有二叉树、树的合并、遍历及存储、哈夫曼树等相关考点,因此对应的题目也均为此类题型。其中二叉树的遍历,包括先序、中序、后序遍历为重点考察。
-
数据结构-多维数组与广义表
这个题库都是多维数组和广义表结构的题目,设计到包括矩阵相关如压缩处理、稀疏矩阵等问题,以及广义表的运算等等
-
数据结构-栈和队列
栈和队列是数据结构中的基本结构之一,理解它对于函数调用、逆向分析都有非常大的帮助,本题集收录了与栈和队列相关的题目,对加深理解栈和队列有极大的帮助!
-
链表
链式结构是我们学习编程中,尤其是编译语言重要一个概念,它的出现解决了”提前开辟空间,太大浪费,太小不够用“的问题,通过按需分配的方式,动态分配内存链式存储,完美的解决这个问题。学习链表首先需要掌握结构体的使用、malloc/new、free/delete动态内存管理的使用,
-
排序算法
排序是任意一门编程语言学习都必须掌握的基本算法之一,熟练掌握各种排序可以应对不同的场景选择不同排序进行数据有序处理。熟悉冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序等排序算法的原理、时间复杂度。基本编程语法,各种排序的实现原理,参考教程如下:冒泡排序算法实例讲解选择排序算法实例讲解直接插入
-
字符串
字符串的问题无论在竞赛还是实际开发中出现的几率以及重要性都非常的高,这个题集重点训练字符串的基本训练。以及设计KMP、模式匹配相关的题目
-
更多子题集
点击查看全部数据结构练习题库题集,专门训练数据结构的题集,由易到难,循序渐进
ACM蓝桥杯竞赛入门
-
函数
函数是编程中模块化思想的体现,设计函数应该遵循“高内聚、低耦合”的设计思想,体会代码重用的好处。同时自定义函数也是递归算法的掌握基础,因此本章题目建议全部使用自定义函数来实现。
-
数组
数组是编程中的重点,包括一维数组、二维数组以及多维数组,使用更多尤其竞赛中的是以字符为内容的字符数组,因为是字符串的载体,因此考察和使用也更多,本题集收录的均为需要使用数组的题目,希望大家多多练习
-
循环结构程序设计(while循环do-while循环for循环)
循环结构主要是由while循环、dowhile循环、for循环组成的三种循环结构,三者没有明显的优劣区别,了解彼此的特点并熟练运用即可,在实际开发或比赛中,更多的是循环的嵌套(如双重循环),和选择结构的嵌套等比较多,大家需要多多练习熟练掌握!
-
程序控制结构(if-else选择结构switch分支结构)
本题集都是具有分支选择结构得程序题目,典型得特点就是需要用ifelse或者是switch结构来控制程序结构,与前面学习不同,不在是全部代码都执行,而是根据条件决定执行哪句代码
-
顺序结构程序设计
本部分题解主要顺序结构下的各种基础题目,包括了运算表达式、变量和常量、各种数据类型的输入输出、以及常见模拟数学题的锻炼,不包含任何分支选择循环等复杂结构,非常适合基础锻炼,感受程序的顺序执行过程!
-
C/C++入门
本题集收录都是C语言、C++、Java、python等编程语言最最入门的题目,可以说是全部题库中最最基础、简单、入门的题目了,以输入输出为主,是编程学习小白同学的必做题。如果您现在只了解基础的语法,如循环选择、数组等等,建议按照此题集刷题训练,会有很好的提升!
-
C++STL库编程题库
概述:STL是StandardTemplateLibrary的简称,即标准模板库,包含容器(vector、set\multiset、map\mutimap、list)、算法(sort、rervers等)、迭代器(iterator)三部分,是C++不可或缺的一部分,
-
多组输入输出格式训练
概述:OJ评测的原理为黑盒测试,即系统会根据用户的数据输出做比对,但通常会有多组数据测试,因此,要杜绝程序中出现“pleaseinput”、“请输入xx”的提示性语句,防止作为答案而被判断为答案错误,本题集是让大家熟悉OJ的多组输入输出格式,写出适合OJ评测系统的程序才可以通过得分。
-
更多子题集
点击查看全部ACM蓝桥杯竞赛入门题集,有编程基础想参加蓝桥杯或ACM竞赛?必刷的这套专门为竞赛准备的题集!
Python3程序设计(第2版)
-
编程基础之多维数组
多维数组指的是三维及其以上的数组,三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上。数组是一个线性数据结构,用于存储一组相同的数据类型的数据,多维数组可以理解为一种嵌套的数组,比如:二维数组是以一维数组为数据元素的数组,即数组的数组。本题集整理了大量多维数组练习。
-
编程基础之字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s="abcdefghij",则s[1]="b",s[9]="j",这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
-
编程基础之数组(元组)
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组,是计算机程序中最基本的数组。在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。数组是计算机编程中的重要概念,
-
编程基础之循环控制
循环控制是编程中必不可少的基础能力,编程学习者非常有必要掌握这种能力。循环控制指令之间可以相互转换,可以根据个人喜好来选择一种或混合使用。除此之外,在循环过程中如果需要退出循环,此时可以借助break指令,如果想忽略某些迭代,此时应该使用continue指令。本题集整理了大量循环控制练习。
-
编程基础之逻辑表达式与条件分支
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。
-
编程基础之算术表达式与顺序执行
表达式是由运算符和操作数组成的符合编程语言语法规则的式子,其目的是用来说明一个计算过程。表达式中的操作数包括常量、变量和函数等。所有的表达式都有一个值,即返回结果。在书写表达式时,应注意运算符的优先级与结合性,确保列出的表达式的实际求值顺序和自己所要求的一致。
-
更多子题集
点击查看全部Python3程序设计(第2版)题集,收藏了《Python 3程序设计(第2版)》配套题库
信息学一本通提高篇
-
数学基础-博弈论
博弈论是数学中的一个分支,研究的是多方参与的决策过程,通常涉及到参与者的策略选择和最终结果的分配。在博弈论中,参与者通常被称为玩家,他们通过选择不同的策略来影响游戏的结果。
-
数学基础-组合数学
组合数学是数学中的一个分支,研究的是离散结构的组合问题。它涉及到排列、组合、集合分割、图论、离散概率等多个方面,通常与计数相关的问题密切相关。
-
数学基础-矩阵乘法
矩阵乘法是线性代数中的基本运算,用于计算两个矩阵相乘的结果。两个矩阵相乘的条件是第一个矩阵的列数等于第二个矩阵的行数。
-
数学基础-同余问题
同余问题是数论中一个重要的概念,它涉及到整数之间的一种特殊关系。在同余问题中,我们通常关注的是两个整数除以同一个正整数所得的余数是否相等。
-
数学基础-约数
约数,也称为因数,是指能整除给定自然数的自然数。换句话说,如果一个自然数a能够被另一个自然数b整除,那么b就是a的约数。例如,6的约数包括1、2、3和6本身。
-
数学基础-质数
质数(PrimeNumber)指的是大于1的自然数,除了1和它本身外,没有其他正因数的数。换句话说,质数是只能被1和自身整除的正整数。例如,2、3、5、7、11等都是质数。
-
数学基础-快速幂
快速幂(FastPower)是一种用于高效计算幂运算的算法,它通过将指数进行二进制分解,从而减少了幂运算的次数,从而提高了算法的效率。快速幂算法通常用于计算大数的幂运算,尤其是在模意义下的幂运算。
-
动态规划-斜率优化动态规划
斜率优化动态规划是一种优化动态规划过程中状态转移方程的技巧,常用于一些求最优解的问题,如求解最短路径或最大值等。
-
更多子题集
点击查看全部信息学一本通提高篇题集,收集了信息学一本通提高篇的题目
信息学一本通基础算法
-
基础算法-贪心算法
贪心算法,又称贪婪算法,是一种解决问题的策略,它在每一步都选择当前看来最优的解决方案,而不考虑整体的最优解。换句话说,贪心算法所得到的解是局部最优解,在某种意义上能够满足问题的要求。贪心算法是一种简单而有效的解决问题的策略,但需要针对具体问题选择合适的贪心策略,以确保能够得到符合实际需求的解决方案。
-
动态规划
动态规划,简称DP,它的思想是将一个问题分解为若干个子问题,对每个子问题求最优解,前一个子问题的最优解,为下面的子问题提供了有效信息,依次解决子问题,最后一个子问题就是初始问题的最优解。动态规划应用于子问题重叠的情况,子问题的划分是通过递归实现。
-
广度优先搜索算法
广度优先搜索算法,也称宽度优先搜索,即人们常说的BFS,BFS是是连通图的一种遍历策略。因为它的思想是从一个顶点开始,辐射状地优先遍历其周围较广的区域,故得名。广泛用于各种搜索当中,本题集都是可以用广度优先搜索的题目
-
分治算法
分治算法,顾名思义,即“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法中的快速排序,归并排序等等,
-
贪心算法
贪心算法,也叫贪婪算法,是指在对问题求解时,总是做出当下来说最好的选择。即不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解,贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。
-
搜索与回溯算法
搜索与回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,
-
递归算法
递归是一种利用函数调用,调用自身的算法,这是最直观的特点,这种算法的本质是将一个有规律的较大的问题拆分成可以重复执行的小问题,通过反复执行这些小问题,得出结果,因此再实现过程中代码通常很精简,但因堆栈空间约束,调用次数有限制,不能进行进行次数太多,容易造成栈溢出
-
递推算法
递推算法是一种有技巧的模拟算法,可以事先探索规律,得出一般性规律借助公式求解,也可以用递归巧妙解决等等,这类算法是常用的一种基础算法
-
更多子题集
点击查看全部信息学一本通基础算法题集,信息学一本通算法基础部分全部题库,按照章节顺序匹配,供大家练习
信息学一本通数据结构
-
数据结构-拓扑排序与关键路径
拓扑排序与关键路径也是基于图论下的一种特殊算法分类,我们也将它独立划分出来,供大家参考训练
-
数据结构-最小生成树
本题集收录为信息学一本通中基础部分-数据结构-图论算法下的关于最小生成树的题目
-
数据结构-并查集
本题集为信息学一本通基础篇-数据结构第四章图论算法下第四节并查集的题目
-
图论相关(图的遍历-最短路径问题-连通性问题)
本题集包含了信息学一本通基础部分-基础数据结构-第四章-图论算法相关部分,主要包含图的遍历、最短路径算法、图的连通性问题等均包含于此
-
数据结构-树和堆
本题集主要是信息学一本通基础篇-数据结构中的树,包括二叉树、堆及其应用相关的题目,如二叉树的遍历(先序、中序、后序)、堆的合并等相关问题。
-
数据结构-队列
队列是一种特殊的线性表,遵循“先进先出,后进后出”的特点,常见的队列基本操作包括入队(enqueue)和出队(dequeue)两种。本题集都是信息学奥赛一本通基础篇中数据结构里队列的题目
-
数据结构-栈
本题集为信息学一本通基础部分-数据结构-栈的题集,栈结构基本特性,我们都明白“先进后出”及“后进先出”的特点,需要我们深刻理解并加以利用。
-
更多子题集
点击查看全部信息学一本通数据结构题集,这是信息学一本通数据结构篇书上的配套习题,按照章节整理在此
Java程序设计基础
-
图形用户界面
对于图形用户界面,都是从简单的字符输出、排列组合、交互、消除、延时等原始的动画原理实现的,因此这些基础的掌握,对于今后学习各种图形控件的底层原理将提供坚实的基础
-
FILE类及I/O操作
I/O是掌握一门编程语言中走向深度理解的一步,了解I/O流的原理和特性,会让你对程序掌握更深
-
多线程开发
多线程技术是实际开发中的重要一项技术,需要熟悉常见语言的多线程基本操作(如左图),了解多线程的运行机制
-
Java异常处理
在写程序的过程中,适当使用throw、try...catch、断言等方式,可以增强程序的健壮性
-
Java类与接口
这里的题目包括字符串、大整数等相关题库,可以使用现成的类解决,如string类、大整数类等等,体会高级语言的便捷性
-
类和对象
类、对象是面向对象程序设计的基础概念,本集合收录了关于类、对象相关的题目,包括自己设计类,以及使用现成的类(字符串类、日期类等)处理
-
Java程序流程控制
流程控制包括程序的三大基本结构:顺序结构、选择结构、循环结构以及一些控制语句等,如braek、continue、return、goto等等
-
运算符与表达式
表达式,是由变量、常量和运算符组合而成的式子。本题集定位是针对初学者,刚刚学习了各种运算符,如算数运算符、条件运算符、逻辑运算符、关系运算符、三目运算符等运算符后,可以进行简单的如数学运算、比较等操作,仅运用简单的输入输出即可实现
-
更多子题集
点击查看全部Java程序设计基础题集,零基础练习Java程序设计,循序渐进练习Java语法,Java从零基础到精通!