算法基础
Rachelint
不切实际的愉悦犯。
展开
-
【暴力】凸包算法
1. 前言 基本上就是最原始的暴力,多余的计算很多。试过优化,但是弄出了一堆bug,找的焦头烂额。最终放弃了,反正就是手痒实现着玩的,能AC就先算了。 算法本身很简单,主要是特殊情况的处理有点烦,debug的时候实在有点暴躁。 HDUOJ 2. 实现 #include <iostream> #include <vector> #include <map> #include <set> #include <cmath> #include <al原创 2020-06-03 21:03:05 · 304 阅读 · 0 评论 -
循环问题---向前再处理,还是处理再向前
1.前提 其实这个问题和二分挺像的,需要理出模板来。和二分不同的是,这个不能死板就按着一个模板来,先向前还是先判断,都是会用到的。 先向前和先处理区别在于: 先向前的话,要考虑终点的处理,到底终点要不要; 先处理的话,要考虑起点的处理,到底起点要不要; 有一个相似但不相同的问题,就是while与do…while,这两个其实只是单纯的循环控制,而且费点功夫也可以相互转化。为什么要设计两个?查阅资...原创 2019-12-20 17:27:02 · 278 阅读 · 0 评论 -
寻找数组的最大值/最小值&&获取数组特定位置指针
昨晚出糗了,发现我虽然点了一部分并行计算、计算机底层、编程语言细节、程序调试方面的技能点,但是在基础编程方面其实很弱。这是本科期间刷题太少所落下的毛病,应该增强一下,特此长期收集总结一下一些非常常用的基本函数。 1.寻找数组的最大值/最小值 T findMax(T* arr, int N) { //注意这里,昨晚就是因为顺手就写int,心急起来眼瞎才出糗的 T max = arr[0]; i...原创 2019-12-08 21:30:00 · 552 阅读 · 0 评论 -
二分查找模板
来自于liweiwei1419大佬的二分查找模板,我个人是比较喜欢 [left,right) 这种区间表示方法的。以后要坚持这个原则,别变了,遇到区间直接基于[)进行考虑。 所以对于二分模板,我选择 l = beg; r = beg + len; while (l < r) { mid = l + ((l - r) >> 1); //arr[mid] == x...原创 2019-12-04 00:36:54 · 180 阅读 · 0 评论