11 2020 档案

摘要:1 #include <algorithm> 2 #include <cstring> 3 #include <cstdio> 4 #include <iostream> 5 6 using namespace std; 7 8 const int N = 505, INF = 0x3f3f3f3f 阅读全文
posted @ 2020-11-28 02:41 筱翼深凉 阅读(824) 评论(0) 推荐(0)
摘要:定义 Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(简称ICG)。 条件 满足以下条件的游戏是ICG(可能不太严谨) 阅读全文
posted @ 2020-11-20 03:12 筱翼深凉 阅读(318) 评论(0) 推荐(0)
摘要:费马小定理 费马小定理(Fermat's little theorem)是数论中的一个重要定理,在1636年提出。如果p是一个质数,而整数a不是p的倍数,即a和b两个数互质,则有a^(p-1)≡1(mod p)。 裴蜀定理 裴蜀定理(或贝祖定理)得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a、b和 阅读全文
posted @ 2020-11-16 21:05 筱翼深凉 阅读(363) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1447 A题 除了选中的数其他的都加上j等价于当前数减去j,因此只需从前往后依次输出即可。 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<a 阅读全文
posted @ 2020-11-16 16:01 筱翼深凉 阅读(195) 评论(0) 推荐(0)
摘要:试除法求约数 1 vector<int> get_divisors(int x) 2 { 3 vector<int> res; 4 for (int i = 1; i <= x / i; i ++ ) 5 if (x % i == 0) 6 { 7 res.push_back(i); 8 if (i 阅读全文
posted @ 2020-11-15 01:33 筱翼深凉 阅读(221) 评论(0) 推荐(0)
摘要:二进制的很多应用离不开集合这个概念,我们都知道在计算机当中,所有数据都是以二进制的形式存储的。一般一个int整形是4个字节,也就是32位bit,我们通过这32位bit上0和1的组合可以表示多大21亿个不同的数。如果我们把这32位bit看成是一个集合,那么每一个数都应该对应集合的一种状态,并且每个数的 阅读全文
posted @ 2020-11-13 12:55 筱翼深凉 阅读(226) 评论(0) 推荐(0)
摘要:转自CSDN大佬 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来。 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal 阅读全文
posted @ 2020-11-12 02:37 筱翼深凉 阅读(769) 评论(0) 推荐(0)
摘要:区间dp问题,其基本思路就是 对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优值。设F[i,j](1<=i<=j<=n)表示区间[i,j]内的数字相加的最小代价最小区间F[i,i 阅读全文
posted @ 2020-11-12 02:21 筱翼深凉 阅读(206) 评论(0) 推荐(0)
摘要:有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。 接下来有 N 行,每行三个整 阅读全文
posted @ 2020-11-10 02:19 筱翼深凉 阅读(186) 评论(0) 推荐(0)
摘要:有 NN 组物品和一个容量是 VV 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vijvij,价值是 wijwij,其中 ii 是组号,jj 是组内编号。 求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行有两个整数 阅读全文
posted @ 2020-11-10 01:57 筱翼深凉 阅读(162) 评论(0) 推荐(0)
摘要:有 NN 种物品和一个容量是 VV 的背包,每种物品都有无限件可用。 第 ii 种物品的体积是 vivi,价值是 wiwi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。 接 阅读全文
posted @ 2020-11-09 16:29 筱翼深凉 阅读(128) 评论(0) 推荐(0)
摘要:算法分析使用spfa算法解决是否存在负环问题 求负环的常用方法,基于SPFA,一般都用方法 2(该题也是用方法 2): 方法 1:统计每个点入队的次数,如果某个点入队n次,则说明存在负环方法 2:统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数大于等于n,则也说明存在环每次做一遍s 阅读全文
posted @ 2020-11-08 11:32 筱翼深凉 阅读(340) 评论(0) 推荐(0)
摘要:以下理解为照搬两位大佬的理解,附上链接(%%%) 1、什么是spfa算法?SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA一般情况复杂度是O(m)O(m) 最坏情况下复杂度和朴素 Bellman-Ford 相同,为O(nm 阅读全文
posted @ 2020-11-07 21:48 筱翼深凉 阅读(641) 评论(0) 推荐(0)
摘要:Bellman-Ford算法,对于一个有向图,可以分别求出图中所有点到一个确定点的最短距离。 基本思想就是枚举每一个点,判断通过该边能否使得其起点到原点的距离变短。 对于边3-2,它可以使3-1变成3-2-1,从而使其距离变短,此过程称为松弛。(松弛点数,拉紧距离) 边3-2可以松弛的条件: 1.边 阅读全文
posted @ 2020-11-07 19:46 筱翼深凉 阅读(226) 评论(0) 推荐(0)
摘要:堆优化的Dijkstra算法 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过 阅读全文
posted @ 2020-11-07 16:55 筱翼深凉 阅读(1851) 评论(0) 推荐(1)
摘要:字符串哈希 说得通俗一点,字符串哈希实质上就是把每个不同的字符串转成不同的整数。 为什么会有这样的需要呢?很明显,存储一个超长的字符串和存储一个超大但是能存的下的整数,后者所占的空间会少的多,但主要还是为了方便判断一个字符串是否出现过,这是最基础的部分。并保证字符串不同,得到的哈希值不同,这样就可以 阅读全文
posted @ 2020-11-06 19:47 筱翼深凉 阅读(233) 评论(0) 推荐(0)
摘要:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。(定义来自百度百科) 哈希表将关键值映射到一个表中,是通过对当前的数 阅读全文
posted @ 2020-11-06 02:15 筱翼深凉 阅读(126) 评论(0) 推荐(0)
摘要:并查集(又加找父亲 hh) 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,并就是按一定顺序将属于同一组的元素所在的集合合并。 并查集的基本操作: 1.初始化,使每个节点的祖宗节点为自己 阅读全文
posted @ 2020-11-05 02:04 筱翼深凉 阅读(143) 评论(0) 推荐(0)
摘要:上题目: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 v[i],价值是 w[i]。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来 阅读全文
posted @ 2020-11-04 15:12 筱翼深凉 阅读(88) 评论(0) 推荐(0)
摘要:动态规划的实质就是使用分治的思想,将当前的大问题分割成一个一个小问题来解决,最后用递推来实现每种问题之间的联系。未优化的动态规划就是使用二维数组来存储每种状态(按照我目前学的进度是这样,不能绝对的说)。 本质是对每一个小问题求出最优解,并且用递推的思想的来这种最优解的状态送到下一个问题,使得下一个问 阅读全文
posted @ 2020-11-04 15:06 筱翼深凉 阅读(134) 评论(0) 推荐(0)
摘要:trie树即为对每个字符串出现的字母进行插入操作使其形成一个树状结构 例如:当我们要插入{abcd,dcb,bcd,ac}时,其形成的树状结构为 由于每个不同的字符串的相同的字母所在的位置不同,则每个字母的节点数也不同,因此当前以节点为下标的字母出现的次数即为以该字母结尾的字符串的出现次数 上代码: 阅读全文
posted @ 2020-11-04 02:00 筱翼深凉 阅读(109) 评论(0) 推荐(0)