算法题随想录(随时更新)

简介: 算法题随想录(随时更新)

1.有些数据点后面可能没有换行符,导致使用循环while(scanf("%c", &c))这样的读入会TLE。


可以这样:while(scanf("%c", &c) != EOF),利用scanf读到文件末尾时返回EOF的特性。


2.cin>>n;真的不能读入含有空格的字符串,getline(cin,n)才行,回车也是一个字符麻烦用getchar吞掉,不然会报错。


3.kmp理解就是找一个串在另外一个串里面的位置,通过回溯。


4.数论的求x,y最大公约数c(辗转相除法)(还有扩展),最小公倍数就是x*y/c;


5.数论快速幂原理记住省时间(还有矩阵快速幂)


6.数论找质数欧拉筛就行了,最优解。


7.如果遇到保留几位小数的问题,如果答案是对的,但是过不了题目,很可能是因为没有定义double。


8.解题技巧标记,桶思想。


9.遇到找有几个字母不同的题目,可以用set函数。


10.检查代码的时候如果发现输入不进去,只能输入第一次循环,检查一下是不是循环写错了。


11.如果我们在写完代码后,发现可以输入数据,但是就没有答案,很难debug,可能是第一位数组没有赋值。


12.记住做题一点要注意数据范围,会被数据卡死,如果答案出现很大的值,很可能是爆int了,改成long long.


13.观察容易发现,利用数学推导,如果总结暴力会爆表想要使得在范围n里面最大公约数是n/2最大,可令a=k,b=2k其中k=(n/2)。


14.在比赛过程中,我建议不要用int,会爆int,用long long 或者(unsign long long 我不经常用这个)。


15.数学题的时候,考虑一下构造思想。


相关文章
代码随想录Day1 数组基础
代码随想录Day1 数组基础
65 0
|
存储 算法 C++
C++初阶之一篇文章教会你list(模拟实现)(上)
这个表中列出了C++标准库中list容器的一些成员类型定义。这些类型定义是为了使list能够与C++标准库的其他组件协同工作,并提供一些通用的标准接口。每个成员类型
|
8月前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
55 3
|
算法
代码随想录算法训练营第四十一天 | LeetCode 416. 分割等和子集
代码随想录算法训练营第四十一天 | LeetCode 416. 分割等和子集
58 1
代码随想录算法训练营第四十一天 | LeetCode 416. 分割等和子集
|
算法
代码随想录算法训练营第二十四天 | LeetCode 77.组合
代码随想录算法训练营第二十四天 | LeetCode 77.组合
100 0
|
存储 安全 C++
C++初阶之一篇文章教会你list(模拟实现)(下)
4.swap void swap(list<T>& x) { std::swap(_head, x._head); // 交换两个链表的头结点指针 } 这是 list 类的成员函数 swap,它用于交换两个链表的内容。
|
Java BI 数据库
特别诺贝尔奖论文《天赋与运气:随机性在成功与失败中的作用》代码实现简版(JAVA)
特别诺贝尔奖论文《天赋与运气:随机性在成功与失败中的作用》代码实现简版(JAVA)
代码随想录算法训练营 | 数组小结
代码随想录算法训练营 | 数组小结
|
安全 Java 程序员
重温经典《Thinking in java》第四版之第五章 初始化与清理(三十)
重温经典《Thinking in java》第四版之第五章 初始化与清理(三十)
59 0
|
存储 算法
代码随想录算法训练营第七天 | 哈希表
代码随想录算法训练营第七天 | 哈希表
136 0