- 博客(9)
- 收藏
- 关注
原创 CF1283C,CF920C和CF1328C
南昌理工acm暑假集训 本周主要参加多校赛训练和做acwing的每日一题 就写一些我认为还不错的题的题解吧 ** 第一道题是 acwing数组补全 题目来源于CF1283C 这道题主要涉及到 构造 和 环图 主要做题思路是模拟 代码思路: 1.就是硬模拟 2.找出缺失的数字 3.找出缺失的位置 4.找出缺失的数字,同时也是缺失位置的情况----“重复的数字” 5.找出缺失的数字,不是缺失位置的情况-------“非重复的数字” 6.分情况讨论 (1)如果重复的数字超过了两个。这些超过的数字中,后一个填前一个
2021-07-31 15:56:54
331
原创 BFS和DFS(八皇后和八数码)
南昌理工acm暑假集训 本周主要学习了深搜和广搜以及参加多校赛训练 下周巩固前两周的学习 目录DFS八皇后BFS八数码 DFS 深度优先搜索算法(简称DFS,俗称暴搜)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。(来自百度) 助解图片:(来自百度) 采用DFS访问序列为a
2021-07-24 16:40:45
1799
原创 哈希表(一般哈希表,字符串哈希和洛谷题目P1160 队列安排,P4387 【深基15.习9】验证栈序列)
南昌理工acm暑假集训 本周学习了数据结构中的哈希表并练习了一些上周学习的数据结构的题目 下周多校联赛开始,在做比赛补题的同时学习搜索和图论 目录一般哈希表字符串哈希 一般哈希表 哈希(hash)表的定义:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方 哈希表又称为散列表, -般由Hash函数(散列函数)与链表结构共同实现。与离散化思想类似,当我们要对若干复杂信息进行统计时,可以用Hash函数把这些复杂信息映射到一一个容易维护的值域内。 哈希冲突 正如定义所说哈
2021-07-18 10:27:45
531
1
原创 数据结构(用数组模拟链表,队列,栈,KMP,Trie树,并查集的基本模板)
南昌理工acm暑假集训 本周仅学习了部分数据结构模板和做了写模板题 下周将剩余数据结构(两节)学完并刷题巩固。 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。 以数组模拟链表 优点: 好理解、不需要直接处理指针更不容易 RE 1.单链表
2021-07-10 17:28:36
485
原创 集训第五周(set和map的用法)
南昌理工acm集训 set的详细用法 set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。 set的各成员函数列表如下: begin()–返回指向第一个元素的迭代器 clear()–清除所有元素 count()–返回某个值元素的个数 empty()–如果集合为空,返回true end()–返回指向最后一个元素的迭代器 equal_rang
2020-08-23 10:59:54
202
原创 集训第四周:字符串(KMP,输入)
南昌理工acm集训 字符串的输入: cin、cin.get()、cin.getline()、getline()、gets()、getchar()的用途和区别(字符串基础不好,补充下基础的问题) (1)cin<< 用法一:最常用、最基本的用法,输入一个数字: int a,b; cin>>a>>b; cout<<a+b<<endl; 用法二:接受一个字符串,遇“空格”、“Tab”、“回车”都结束 char a[20]; cin&g
2020-08-15 21:53:59
191
1
原创 集训第三周:高精度算法(洛谷P1009 阶乘之和)
南昌理工acm集训 高精度算法: 高精度算法(High Accuracy Algorithm)是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称为是高精度数。高精度算法就是
2020-08-09 09:56:08
385
原创 集训第二周:枚举,递归(萌新代码:洛谷P217和洛谷P1028.分别用枚举和递归做的)
南昌理工acm集训 枚举: 基本思想: 枚举也叫穷举,它的基本思想是先依据题目的部分条件将所有可能解列举出来,然后用其余的条件对所有可能解进行一一验证,删去那些不符合条件的解,剩下符合条件的解就是整个问题的解。 适用范围: *难以找到明确的公式和计算规则 *可能的解不是特别多 *在可接受的时间内解答 **枚举类型的定义:**枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 **定义格式:**枚举类型的定义格式为: enum <类型名> {&
2020-08-02 10:37:29
411
原创 集训第一周:DP入门和01背包模板(萌新代码:杭电2041,杭电2084)
南昌理工acm 动态规划入门 刷了一些题,举俩例子: (1) 超级楼梯(杭电 2041) *Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。 Output 对于每个测试实例,请输出不同走法的数量 Sample Input 2 2 3 Sample Output 1 2* 这类问题可
2020-07-27 09:23:47
180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人