随笔分类 -  ACM算法

摘要:01背包 完全背包 阅读全文
posted @ 2018-03-31 22:09 TQCAI 阅读(122) 评论(0) 推荐(0)
摘要:1.台阶问题 2.传球游戏 阅读全文
posted @ 2018-03-30 21:11 TQCAI 阅读(170) 评论(0) 推荐(0)
摘要:整数划分(一) 先上代码: 讨论五种情况: ①n=1:此时无论怎么划分,都只有一种情况。 ②m=1:此时只有n个1这种划分情况。 ③n<m:应该返回q(n,n),这很好理解,因为一个数不可能划分为比自己还大的数 ④n=m:应该返回q(n,m-1)+1,看成 把n划分为【最大值为n-1的数】和【最大值 阅读全文
posted @ 2018-03-30 10:30 TQCAI 阅读(1070) 评论(0) 推荐(0)
摘要:区间修改与区间查询问题 模板: 注:可以把上文的结构体拆写为3个数组 测试OJ:P3372 【模板】线段树 1 测试代码:(因为无lazy优化,只有70分。我理解不了lazy优化) #include <stdio.h> #include <memory.h> #include <math.h> #i 阅读全文
posted @ 2018-03-28 10:29 TQCAI 阅读(223) 评论(0) 推荐(0)
摘要:指数循环右移,不断对底数开方,并且判断指数二进制第一位是否为1,如果是,让返回值乘以开方底数 阅读全文
posted @ 2018-03-27 08:48 TQCAI 阅读(87) 评论(0) 推荐(0)
摘要:相比树状数组求逆序对,归并排序的逻辑复杂度稍微小一点。 首先我们来理解归并排序。首先用mergeSort将一个序列不断二分,直到每个子序列只有长度2 然后递归到了栈底。我们再用merge函数,将递增有序的序列拼接起来。因为序列递增有序,所有时间复杂度为O( max(m+n) ),这里的m、n分别是两 阅读全文
posted @ 2018-03-24 21:02 TQCAI 阅读(1197) 评论(0) 推荐(0)
摘要:1.矩形嵌套 查了很久的错,最后发现是ans在每次测试样例输入的时候没有初始化为0 。 AC代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #includ 阅读全文
posted @ 2018-03-17 17:30 TQCAI 阅读(343) 评论(0) 推荐(0)
摘要:STL中lower_bound和upper_bound的使用方法:STL 二分查找 lower_bound: upper_bound: (将上文的lower_bound的 < 替换为 <= 即可) 为便于记忆可以修改判断条件。 lower_bound: upper_bound: 阅读全文
posted @ 2018-03-15 15:17 TQCAI 阅读(174) 评论(0) 推荐(0)
摘要:注:本文算法使用链式前向星数据结构实现。学习链接:链式前向星-学习笔记 一、Prim算法 普通prim算法模板: 堆优化的prim算法: 堆结构: 算法代码: 二、Kruskal算法 1.建立边表数据结构 2.编写并查集模板(以下代码没有写合并的Union操作。这个操作在主代码执行的时候已经实现) 阅读全文
posted @ 2018-03-12 15:05 TQCAI 阅读(189) 评论(0) 推荐(0)
摘要:普通的dijkstra算法模板: 为了能在“取出最小的dist”这一步实现优化,我们使用priority_queue进行优化。下面用cmp结构体重载括号运算符对priority_queue进行改造: 然后我们来看堆优化的dijkstra算法: 加粗的代码是未优化dijkstra所没有的。 每次更新结 阅读全文
posted @ 2018-03-11 18:04 TQCAI 阅读(3324) 评论(0) 推荐(0)
摘要:模板: 数据结构: 加边函数: 注意:加边之前用fill给head数组初始化复制为-1(0xFFFFFFFF) 实例: ● 用链式前向星解决DFS OJ链接:Battle Over Cities (注意:因为记录的是边表,所以不要按顶点大小来开数据,最好按顶点大小N的平方,或者指定的边的数据M来开数 阅读全文
posted @ 2018-03-11 14:22 TQCAI 阅读(446) 评论(0) 推荐(1)
摘要:模板:http://www.cnblogs.com/TQCAI/p/8410799.html 1.高精度加法训练 #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <string.h 阅读全文
posted @ 2018-02-25 13:44 TQCAI 阅读(249) 评论(0) 推荐(1)
摘要:最大公约数: 递归代码: gcb的两个重要结论: 最小公倍数: 阅读全文
posted @ 2018-02-20 16:38 TQCAI 阅读(200) 评论(0) 推荐(0)
摘要:1.元素序列的排列与组合 组合序列: 递归图解: 全排列: 将组合后的序列进行全排列,就得到了排列序列: 排列序列: 测试代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string.h> #include 阅读全文
posted @ 2018-02-20 09:28 TQCAI 阅读(445) 评论(0) 推荐(1)
摘要:高斯消元法 模板: 完整代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string.h> #include <string> #include <vector> #include <set> #inclu 阅读全文
posted @ 2018-02-19 21:48 TQCAI 阅读(268) 评论(0) 推荐(0)
摘要:模板: 1.负数的进制 #include <stdio.h> #include <memory.h> #include <math.h> #include <string.h> #include <string> #include <vector> #include <set> #include < 阅读全文
posted @ 2018-02-19 17:02 TQCAI 阅读(161) 评论(0) 推荐(0)
摘要:模板: 示意图: 1.Ultra-QuickSort 大佬代码: //树状数组 #include<iostream> #include<string.h> #include<algorithm> using namespace std; #define MAX 500010 int c[MAX]; 阅读全文
posted @ 2018-02-18 22:50 TQCAI 阅读(190) 评论(0) 推荐(0)
摘要:1.最大数 代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #include <set> #include <stack> #include <queue 阅读全文
posted @ 2018-02-18 21:46 TQCAI 阅读(234) 评论(0) 推荐(0)
摘要:1.维护区间最大最小值模板(以维护最小值为例) 2.维护区间和的模板 数据结构: 建树: 单点修改: 单点查询: 区间修改: 区间查询: 3.模板编写练习: 阅读全文
posted @ 2018-02-15 15:21 TQCAI 阅读(238) 评论(0) 推荐(0)
摘要:理论分析 尼姆博弈模型,大致上是这样的: 有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜。 分析 1、首先自己想一下,就会发现只要最后剩两堆物品一样多(不为零),第三堆为零,那面对这种局势的一方就必败 那我们用(a,b,c)表示某种局势,首先(0, 阅读全文
posted @ 2018-02-13 20:36 TQCAI 阅读(889) 评论(0) 推荐(0)