01 2020 档案
摘要:gets(str), getline(cin, s), cin.getline(str, len),这三个函数都是读入一行字符串的函数,下面是这三个函数的区别 1. gets() 函数是 C 语言的函数,它接受的参数是字符数组, gets输入字符串时,不进行数组下标的检查,也就是说当你的数组长度是n
阅读全文
摘要:Floyd算法求的是图的任意两点之间的最短距离 下面是Floyd算法的代码实现模板: const int INF = 10000000; const int maxv = 200; // maxv为最大顶点数 int n, m; // n 为顶点数,m为边数 int dis[maxv][maxv];
阅读全文
摘要:广度优先搜索(Breadth First Search, BFS) BFS算法实现的一般思路为: // BFS void BFS(int s){ queue<int> q; // 定义一个队列 q.push(s); // 队首元素入队 while (!q.empty()){ // 取出队首元素top
阅读全文
摘要:深度优先搜索是一种枚举所有完整路径以遍历所有情况的搜索方法。(不撞南墙不回头) DFS一般用递归来实现,其伪代码思路过程一般如下: void DFS(必要的参数){ if (符和遍历到一条完整路径的尾部){ 更新某个全局变量的值 } if (跳出循环的临界条件){ return; } 对所有可能出现
阅读全文
摘要:写在前面:我们写算法题不是要创造算法,这是专门从事算法研究该做的事,我们就是学会一些很有用的算法,学习它们的使用方法,学习它们的使用场景。写算法题的过程不是创造算法的过程,而是利用所学的或所掌握的算法知识和算法技巧完成这道题的任务(好比在已知一些公式定理的条件下给你一些数据,让你解一道应用题)。 1
阅读全文
摘要:注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。 比较好的写注释方式:先写出大部分注释,再开始写算法代码(如果你采用的就是这种方式,那么恭喜你,你已经学会了,可以完全不看这篇文章,因为下面都是陈述这种方式能带来的好处以及用其他方式的缺点,如果你采用的不是这种
阅读全文
摘要:前奏:统计 n! 中的所有质因子中pi的个数 普通方法:复杂度O(nlogn), 当n为10的18次方无法承受 // 复杂度O(nlogn), n为10的18次方无法承受 int cal(int n, int p){ int ans = 0; for (int i = 2; i <= n; i++)
阅读全文
摘要:当需要计算的整数或计算结果可能会超出long long 所能表示的范围时,应该用大整数来存储和计算(Java里面有BigInteger来存储大整数,这里讨论的是C++语言)。 大整数的存储形式是下面这个结构体(包含了构造函数): // 大整数结构体 struct bign{ int d[1000];
阅读全文
摘要:表示分数的结构体 // 分数结构体 struct Fraction{ long long up, down; // 分子和分母,由于分数的乘法和除法可能使分子或分母超过int型表示范围,因此一般情况下,分子和分母应当使用long long 型来存储 }; 分数的化简: 化简规则:(1)如果分子up为
阅读全文
摘要:two pointers思想 利用两个i, j两个下标,同时对序列进行扫描,以O(n)复杂度解决问题的一种思想, 如果能用这种思想解决问题,那么会大大降低程序的复杂度。 两个利用这个思想的例子: 1. 分析: 代码: 1 while (i < j){ 2 if (a[i] + a[j] == m){
阅读全文
摘要:1. 二分查找法代码实现: 1 // 二分查找法 2 // A[]为严格递增序列,left为二分下界,x为欲查询的数 3 // 二分区间为左闭右闭的[left, right], 传入的初值为[0, n-1] 4 int binarySearch(int A[], int left, int righ
阅读全文
摘要:思路:将所有区间先按左端点从大到小排序,再按右端点从小到大排序,从第一个区间开始,记录当前区间的左端点位置lateX,遍历区间数组,如果当前区间的右端点小于lateX, 说明当前区间与上一个区间不相交,将计数器加一,更新lateX为当前区间左端点的值。 模板代码: 1 // 区间贪心 2 #incl
阅读全文
摘要:今天运行程序的时候遇到了下面这个bug 1> B1020.cpp 1>e:\vs2013\vs2013_rtm_ult_chs\data\vc\include\xutility(371): error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间 1> e:\vs2013\v
阅读全文

浙公网安备 33010602011771号