算法学习
文章平均质量分 79
Warddamn
这个作者很懒,什么都没留下…
展开
-
Java生成子集——补充了List.add的易错点
一、Java生成子集的总体思想与方法总体思想:在原集合的每一个元素生成子集都有两种可能:在原子集合的基础上加上这个元素 或者 在原子集合的基础上不加这个元素**方法:**本问题数据结构用可变化的List比较好点,因为每一个子集的长度是不一样的二、List的add易错点使用List的出错点:注意List里面的add,如果只是add一个对象,而不去new的话,只是对象的引用存进List这个容器,如果引用的对象改变了,那么List的相应的值也会改变。比如在(1)中,我们是直接cur.add(a[ind原创 2021-04-15 16:48:13 · 339 阅读 · 0 评论 -
算法刷题的一些注意点:包括C++编译有效位数,位操作,不同时间复杂度能通过的数据量范围
①C++编译器最长有效位数问题整型变量int类型最多为21亿,即(20)^9,long long 最多是(90)^18②异或C++按位操作详解析https://blog.csdn.net/weixin_42837024/article/details/98736834https://blog.csdn.net/tangyanzhi1111/article/details/21696943https://blog.csdn.net/ikerpeng/article/details/44832915原创 2020-11-12 19:02:39 · 240 阅读 · 0 评论 -
【算法学习——枚举】
1.枚举定义枚举其实就是列举每一种情况,判断哪种情况满足题目的要求,利用枚举的关键是要想能否根据题意和信息减少枚举空间常见的减少枚举空间的方法:根据题意去掉重复的情况,减少枚举量转换思维,用另外这一种方法枚举另外一个变量详情请看:https://oi-wiki.org/basic/enumerate/要重点关注这个例题的第三种优化方法:即当枚举其中一个数之后,题目的条件已经确定了其他的要素(另一个数),此时只需要用桶排序判断题目要求的那个数是否存在,就可以省掉枚举后一个数的时间了。2.例原创 2020-12-16 00:04:26 · 140 阅读 · 0 评论 -
【洛谷——函数与结构体】P1217 [USACO1.5]回文质数 Prime Palindromes(补充了做题心得,回文数质数知识点还有打表,分析题目的方法,还有埃氏筛选法)
1.出错点①最大的出错点就是做着题的时候还是没有按分析题目的步骤去分析,没有把问题化出一个个小的去解决,然后找每一个小部分的最优解!②WC的原因是因为判断质数的时候,时间超时了,没有找到一个很好的方法去更简便更快的判断出来,所以要补充知识点2.心得①要掌握分析题目的方法:对于此题,要筛选出质数回文数,所以自然就会先想到有两种办法,先判断质数然后判断回文数,或者先判断回文数,然后再判断质数**(思维要宽广一点,时时刻刻都要有分类思想)。继续分析,要先判断这两种数,那么必然要先明白这两个数的特点。所以紧原创 2020-11-04 22:08:22 · 197 阅读 · 1 评论 -
【算法学习】STL库中vector的基本用法
1.STL库中vector的基本操作函数https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html2.各个操作函数的运用https://blog.csdn.net/qq_32172673/article/details/85127176原创 2020-12-02 12:42:30 · 119 阅读 · 0 评论 -
【算法学习】STL库 大小根堆的用法
1.知识点:①https://www.cnblogs.com/WindSun/p/11444446.html②https://blog.csdn.net/fnzsjt/article/details/401183652.运用:①https://blog.csdn.net/u013317445/article/details/89680330?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&原创 2020-12-02 12:39:43 · 540 阅读 · 0 评论 -
C++:如何读取输入的多行字符串&&以及如何逐个字符读取,以及补充了,当知道题目中的所有情况时,学会用打表,即学会用一维数组的下标去表示每一种情况!!!比如埃氏,26个字母等等,都是这种打表的方法
一、说明如果要实现读取多行字符串的字符输入,那么就不可以用cin.getline,只可以将字符串分成每个字符存入字符数组二、方法逐个字符存入字符数组中,此时不一定要用getchar,直接存入就好了。char ch;char s[10001];int count;while(cin>>ch){s[++count]=ch;}这样就可以实现读取输入的多行字符串,然后存入到字符数组中,再去读取使用,或者也可以不存入字符数组,直接对ch进行操作,总之,直接用while(cin>原创 2020-11-25 15:07:29 · 6163 阅读 · 1 评论 -
【算法练习】打表问题,补充了打表,map头文件的用法和#define int long long
一、何时能用打表当题目中的问题的情况都能够列举出来的时候,就可以通过打表的方式,把所有结果都列出来,存在一个数组中,或者以一个数组的下标表示是否存在这个值二、打表的方法①根据题目的要求把各个情况枚举出来②将代码结果存在一个数组中,数组的下标表示结果存在,然后值为1三、打表例题①解题思路先从2开始枚举出2的一次方到2的n次方的值,如果它小于等于100000,则对应数组下标的值就,然后就开始枚举3,4,5……,一直到100000(+5)就好了②代码#include <iostream&原创 2020-11-19 23:16:20 · 1457 阅读 · 0 评论 -
【算法练习】矩阵前缀求和——补充了刷题心得
一、问题特点一维数组中转变为前缀和数组之后,每一行就代表着前几项的总和,同理前缀和矩阵中每一个元素代表着以这个一个元素为右下角矩阵里面所有元素的和。比如有一数组如下:map[2][3]1 2 34 5 6那么对应的前缀和为:sum[2][3]1 3 65 12 21二、求一个矩阵的前缀和矩阵规律一个矩阵的前缀和矩阵的每一个元素等于原矩阵对应的元素+前缀和矩阵对应元素同一行的前一列元素+前缀矩阵对应元素同一列的前一行元素-前缀矩阵对应元素对角的那个元素,记忆如下:sum[i][j]原创 2020-11-17 23:30:54 · 333 阅读 · 0 评论 -
【啊哈!算法】2.1 队列
一、队列的特点①由数组存储的一种数据结构②有两个标记,一个是标记头队列head,一个是标记尾队列的tail二、队列的作用可以处理一些先进来,但最后才出去的这类数据,比如说有一串数字,然后把第一个删去并输出此数字,第二个数字放在这一串地末尾,不断重复这个行为,直到数字全删完。像这种就是很典型的前面的数字比后面的数字要出去的晚的类型,所以用数组保存的队列形式存储很合适三、队列的易错点注意,引入的两个整型变量 head 和 tail。head 用来记录队列的队首(即第一位),tail 用来记录队列的队原创 2020-11-17 20:44:28 · 226 阅读 · 0 评论 -
【算法学习——高精度】①补充了如何将一个字符串存入到一个字符数组里②当字符‘0’‘1’‘2’....等转化为整型变量时易错知识点③高精度运算模拟④将整型变量转化为字符型变量 ⑤String类的各种操作
①补充了如何将一个字符串存入到一个字符数组里②当字符‘0’‘1’‘2’....等转化为整型变量时易错的知识点③高精度运算模拟④补充了如何将整型变量转化为字符型变量⑤String类的各种操作函数,包括获取长度,字符串比较等原创 2020-11-09 00:11:53 · 402 阅读 · 0 评论