摘要: 说明:根据费马小定理做的,时间复杂度很低。但是有一定概率判断出错,一般count==5时判断几率有99%。 代码 阅读全文
posted @ 2018-04-22 20:25 逃往火星的猫 阅读(838) 评论(0) 推荐(0) 编辑
摘要: 作用:源点到i点的最短距离(最*权值)。 算法:本质上是BFS,但利用邻接表来处理点与点之间的关系,处理量更大 ; 前向星是一个数组模拟的头插法链表,再处理上比vector快。 代码 时间复杂度 : O(|V|*|E|) ,最坏情况下 输入 : N(点的数量) M(边的数量) src(源点) X Y 阅读全文
posted @ 2018-04-19 17:27 逃往火星的猫 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 说明:利用c++的符号重载,可以使代码更加简洁。矩阵的加法,减法必须要求两个相同大小的矩阵;矩阵相乘时,只有第一个矩阵的列数和第二个矩阵的行数相同时才有意义。 两个m×n矩阵A和B的和(差),标记为A+B(A-B),一样是个m×n矩阵,其内的各元素为其相对应元素相加(减)后的值。例如: 设A为m*k 阅读全文
posted @ 2018-04-06 12:40 逃往火星的猫 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 处理何种问题:用于优化加速一些线性关系式,可将一些时间复杂度降至O(logn)。 (如果题目上出现 1e18 之类的数据范围,就可以往矩阵快速幂上想了) 性能:具体的时间复杂度为O(edge * edge * log n),edge为矩阵的阶数。 原理:矩阵乘法性质、快速幂。 实现步骤:以斐波那契数 阅读全文
posted @ 2018-04-04 21:08 逃往火星的猫 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 作用:优化普通求幂算法的时间,空间复杂度,由一个O(n)优化到O(logn)。 算法: 1. (a*b)%c=(a%c)*(b%c) 2. 例如:1003的2进制是1111101011 , 说明:此算法不可算负次方的情况,负数幂可用,记得边算边取模。 代码 阅读全文
posted @ 2018-04-02 21:10 逃往火星的猫 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 作用:求出[2,N]内所有素数。 算法:每个合数必有一个素数因子,利用已知素数去筛除合数。 说明:因为答案数组是从1开始的,所以用binary_search( ) 、lower_bound( )和upper_bound( ) 函数不需要另行判断,但注意写法要均加1 (Ans_p+1,Ans_p+to 阅读全文
posted @ 2018-04-01 21:04 逃往火星的猫 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 作用:求无重复元素的集合中,任意一种排列方式在其全部按字典序排列中的位置。 算法:Ans= 说明:其中a[i]表示 [第i个数>第(i+1~n-1)个数] 的个数。 例子: 2 1 4 3 比2小的有1个:1*3! 比1小的有0个:0*2! 比4小的有1个:1*1! 比3小的有0个:0*0! 所以2 阅读全文
posted @ 2018-04-01 17:10 逃往火星的猫 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题意 F--起点 S--空格 G--能量池,只能充一次电,充完之后G变为S,也可已选择不充而当成普通的S D--激光区,不能走 Y--电源开关 M被关在一所监狱之中,F为起点,每走一步(上下左右)消耗1节能量,只要关闭完所有的Y就可以直接飞出去,可以到能量池里进行充电。问M要想出去所携带的电池的最小 阅读全文
posted @ 2018-03-24 21:14 逃往火星的猫 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 介绍 通过图G经过所有的节点,且所有的节点仅经过一次的通路,就是哈密顿通路。 题意 有N座岛,M座桥,让你找到一条哈密顿通路,当经过一座岛就加上该岛的价值,如果相邻两岛之间有桥再加上两岛价值之积,如果相邻三岛之间两两都有桥,再加上三岛价值之积。求最大总价值是多少以及达到最大总价值的路径有几条。 思路 阅读全文
posted @ 2018-03-20 13:42 逃往火星的猫 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 介绍这道题和3311差不多,只需将二进制换为三进制就好,但对于在做3311时用的是自顶向下方法做的话,上一题的模板都不能套了,还得换个思路。 题意 N个城市,M条路(有重边,无向图),x->y( y->x )需要花费 w 元路费,条件:起点城市随意选,每个城市最多去2次,但每个城市都得去过;问最少需 阅读全文
posted @ 2018-03-17 20:28 逃往火星的猫 阅读(167) 评论(0) 推荐(0) 编辑