自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hardict的算法日记

算法,C语言

  • 博客(44)
  • 收藏
  • 关注

原创 利用经纬度求解两点球面距离(Haversine formula)

利用经纬度求解两点球面距离Haversine formulah(θ)=sin2(θ2)=1−cos(θ)2h(\theta)=sin^2(\frac{\theta}{2})=\frac{1-cos(\theta)}{2}h(θ)=sin2(2θ​)=21−cos(θ)​则h(θ)=h(dR)=h(Δβ)+cos(β1)cos(β2)h(Δα)h(\theta)=h(\frac{d}{R})...

2020-04-02 13:03:34 5881 3

原创 [leetcode]median of two sorted arrays求两个有序数组的中位数(扩展为第k大)

面试时被问到,想了想发现是《算法导论》原题(好像是顺序统计量和中位数那节)。由于平时不刷leetcode,这种题一般也只是想想,面试时写了个面向bug编程,不过感谢面试官手下留情。问题给定两个有序数组,长度分别为,求两个数组合并后中位数要求时间原始分析将数组分为四段比较,比如时,不可能为答案然后分治,接着就开始面向bug编程了题解扩展为问题,表示求解函数不考...

2020-04-01 20:48:17 211

原创 CF917D Stranger Trees(矩阵树定理,多项式求解系数)

题意给定一个个点完全图,以及一棵树,树上边为关键边,问完全图中恰好含条关键边的生成树有多少。题解对于基尔霍夫矩阵树定理,其具体求解的是,我们一般计算题目取便是单纯的生成树计数,这里考虑生成函数相关:我们取关键边的,那么求解后的系数就表示恰好条边生成树个数。我们可以知道我们通过矩阵树定理的行列式会算出一个的多项式,那么我们可以考虑对不同值进行具体计算,算出个,然后可以通过高斯消元求解...

2020-02-25 11:17:01 380

原创 [HNOI2007]最小矩形覆盖(旋转卡壳)

题意给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,输出所求矩形的面积和四个顶点坐标题解先求得一个凸包可以知道对于凸包每一条边,其对应一个最小矩形覆盖,而凸包整体最小矩形覆盖在这个解之中对于凸包一条边,利用旋转卡壳求得其对踵点于是与方向共同确定了矩形的高以及长、高向量这里我们取指向凸包内部,则为(逆时针转90°为),且二者为单位向量现在求方向的最远点(正,负...

2019-12-09 20:26:32 340

原创 DES与AES实现

代码先扔这,区域赛打完来补/*DES实现Author: Hardict-龙鹏宇E-mail: 1035979074@qq.com/a1035979074@gmail.com */#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#incl...

2019-10-27 21:15:36 305

原创 HDU 5514(容斥+dp)

题意M个石头围成圈(0-indexed),有N个青蛙,青蛙开始都在0处,每只青蛙可以每次跳,可以跳无限次,求至少被一个青蛙覆盖的石头id和题解对于每只青蛙,易知其跳过的石头为加法群中元素即先处理得到单个贡献为,即之和通过容斥可以得到问题转变为求容斥系数对于表示加入n个数对于M的因子d,正负系数(0/1)为多少可以发现没加入一个, 容斥系数变化为继承、正负互换...

2019-10-21 22:19:20 188

原创 [数论小定理]扩展欧拉定理及其证明

前言对于模意义下的指数运算,欧拉定理为我们提供了一个很好的等式利用此等式我们可以很好的解决对于特别大情况如。若前提的互素条件不一定成立时,则这个等式不能达到需求,而扩展欧拉定理通过对时两者素因子的分析,也可以让运算下降到的级别定理内容证明1.若结论即为普通的欧拉定理2.若,考察的一个相同素因子,其中且无素因子对于每个的素因子都进行这种操作,若直接利用欧拉定理...

2019-04-06 08:22:14 778

原创 图的连通性与连通分量——有向图的强连通分量SCC,缩点及无向图的双连通分量BCC,桥,衔接点

1.图的连通性与连通分量无向图中若任意两个顶点都是可达的,则图是连通的有向图中若任意两个顶点都可以到达,则图是强连通的图的连通分量是顶点在“从......可达”关系下的等价类。即可以理解为其一个子图,所有的连通分量构成图的一个划分。对于判断无向图连通性,直接用并查集(Union-and-FindSet)维护或者利用bfs、dfs即可而有向图的连通性,根据起点选择不同结果不同,在...

2019-04-02 22:57:43 1501

原创 各种网络流模板整合(EK,Dinic,推送-重贴标签,前置重贴标签)

本文不涉及讲解,仅罗列各种算法模板(都是自己写的,不一定最优,且一个算法不一定只有一种)——不定期更新目录Edmond-Karp()——包含邻接矩阵,邻接表,储存边三种 Dinic()——包含基础与当前弧优化两种 推送重贴标签()——一种 前置重贴标签()——一种 注:最后两种来自与《算法导论》,不一定保证最优实现,且该两种算法下界大致为,故要谨慎使用!!(以及残存容量实时更新,不...

2018-11-23 11:22:05 749

原创 [POI2000]病毒(AC自动机,简单环搜索)

题意判断是否能够构建一个字符串(无限长),使得不含个给定的字串.数据范围:题解涉及多个串的匹配,可以考虑使用自动机.但通常的自动机是用于给定串的匹配.而该题要求我们构建符合条件的串.这里就涉及一个对自动机构建指针的理解:将树构建成图.由于要构建不含给定串,故对每个给定串终止位打上标记.这里要注意:如果每个结点被打上标记,那么它会使指针指向它的结点被打上标记如果我们能...

2018-10-24 10:54:02 296

原创 [TJOI2013]单词(AC自动机,树形dp)

题目给定个单词,这个单词形成一篇文章(单词间隔断).统计每个单词出现次数.数据范围:题解可以看出每个单词的贡献是独立的,也是对整体有影响的,便想到用树来统计贡献.如果插入一个单词(如),则每层计数的都.这样就统计了所有前缀的贡献.如没有计算.考虑自动机的指针的转移:(即是的后缀)如果在插入所有单词后建立指针,那么可以知道一个单词如的所有后缀(如果后缀有贡献)会通过指针链...

2018-10-24 10:41:09 319

原创 [luogu]P1850 换教室(概率dp,Floyd最短路)

题意有个独立的时间段,每个时间段有2节课对应两个教室,一开始被安排上的课,但你可以申请换课,换课申请提交后有概率成功换课.有个教室,也就是说每节课你需要花时间到指定教室,你想要提交一些申请,使你期望走过的距离和最小.需要注意的是,申请次数有上限.数据范围:(为连接教室的边的数量,为双向边)题解首先可以知道,需要处理出两两之间的最短路然后就是申请的问题如果没有概率那么就是很明...

2018-10-05 22:10:19 283

原创 [luogu]P3768 简单的数学题(莫比乌斯反演,杜教筛)

题意求,答案膜素数数据范围:题解设如果所以欧拉函数和狄利克雷卷积,可以知道(我一开始也没反应过来,可以设为进一步推导),可以整除分块求,问题就变为化解(特指杜教筛操作)设,为积性函数,由杜教筛那么就可以快速求得前缀积了(预处理范围取)#include &lt;cstdio&gt;#include &lt;iostream&gt;#inc...

2018-10-04 20:52:35 317

原创 [CQOI2015]选数(容斥)

题意在区间中选个数,这个数的种数数据范围: 题解一看到求的个数——莫比乌斯反演再看看收据范围——emmm杜教筛 用杜教筛也是可行的,但注意到条件中有一个,现在考虑如何使用这个条件我们可以注意到需要杜教筛的情况是左右而这里有个结论,若,利用这个我们就可以缩小数据范围了,我们先将区间变为,问题就变为求互素组的个数设表示且不全相同的个数;表示且不全相同的个数...

2018-10-03 20:46:30 314 1

原创 [luogu]P4139 上帝与集合的正确用法(欧拉函数)

题意,满足任意有,给定求(粗略的就这么理解)题解首先注意到着手点应该是,对于次方的模,若若,问题就变为求解,根据假设知 若,,对于指数中,求解即可 最终状态即为,最好特判的情况#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cstring&gt...

2018-10-01 16:39:16 233

原创 [51nod]1363 最小公倍数之和(欧拉函数)

题意求组数据范围: 题解首先其次一定是的约数,我们枚举的值在gcd中我介绍过一种对于的求法,也是枚举的值对于每个,,那么这题运用同样的思想:这里涉及如何对比小且与互素的元素求和的子问题我们注意到若,对于,故可是配对求和得;和也为整理一下答案即为(我们可以特别的记或者单列出来考虑的情况,下面的操作是后者) 直接计算会,需要进一步化解考虑的素因子...

2018-09-30 00:02:51 363

原创 [SDOI2015]约数个数和(莫比乌斯反演)

题意设表示的约数个数,求组数据范围:题解这个题目的关键是化解,这里有个神奇的公式(第一次了解到我是懵逼的 ( ′◔ ‸◔`) )这个公式可以这么理解: 如果对于的素因子分解为,那么,可以看出每个素因子作用是独立的假设x,y的素因子分解中的次数为分别为. 对于的贡献为在中只考虑只当在中出现中不出现的种, 中不出现中出现的种, 都不出现的种,所以贡献为,等式成立 ...

2018-09-29 11:45:15 383

原创 [51nod]1341 混合序列[公式推导]

题意给定求数据范围:题解妥妥的公式推导题(数据范围也可以看出)很容易得到通项公式(条件有)主要问题就在于如何处理,若也为那么计算是很容易的(对于递推式计算会因为有常数而使结果复杂)那么我们构造,我们可以解出 若存在则对于,分进行讨论即可那么问题主要在于求解,有这么一个等式若; 若于是我们解决存在的情况 若不存在,说明,,若这里有一...

2018-09-26 22:53:43 167

原创 [NOI2010]能量采集[容斥,莫比乌斯反演]

题意计算,表示在范围内的个数数据范围:题解这里介绍容斥和莫比乌斯反演两种方法(如果想系统了解这种题目的各种大体思路可以看两两gcd求和的4种方法)下面先设分别为为​​​​​​倍数和等于的个数,有 容斥(筛法)容斥是利用先计算到每个,再通过从后向前处理得到每个最后针对问题选取需要的求解 for(i = 1; i &lt;= top; i++) F[i] = (L...

2018-09-24 20:01:51 218

原创 [luogu]P2522 [HAOI2011]Problem b[莫比乌斯反演]

题目组询问,每组询问A,B,C,D,K共5个参数计算数据范围:所有题解具体解释参考两两gcd问题求解各种思路设分别为为​​​​​​倍数和等于的个数,有由莫比乌斯反演知:问题即求,由于上界下界的问题,利用容斥分别计算即可:以上界进行表示#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;a...

2018-09-24 19:37:20 196

原创 [luogu] P2257 YY的GCD(莫比乌斯反演)

 题目给定,求且为质数的有多少对数据范围:组询问,题解这是一道练习莫比乌斯反演的模板题,下面先给出莫比乌斯反演的做法,最后再一种欧拉函数计算的思路对于这种二元组的题,我们设分别为为倍数与正好为的个数(范围内)即:,两者关系有,对其进行莫比乌斯反演,则原题的继续化解得,这里有个如果是单次询问则可以直接处理,(最外层)前缀和再利用整除分块(对内层求和上标分类)进行计...

2018-09-24 00:25:14 257

原创 UVA11426 GCD(两两gcd之和各种思路)[dp筛法(容斥),欧拉函数,莫比乌斯反演]

题意求T组简单-dp   中等-欧拉函数   较难-莫比乌斯反演dp法引我之前文章的分析:易知以为的倍数的有个,则为倍数的有个,记为又记表示的个数,因为,故可以倒着更新最后去重就是答案该方法时间复杂度为,虽然该方法对于后两题会,不过其展现了大概的思路,为后面两种方法(特别是莫比乌斯反演提供了可行的方向)#pragma GCC optimize(3)#in...

2018-09-22 23:29:36 643

原创 [51nod]1778 小Q的集合[lucas定理+组合计数]

题目小Q有一个集合 ,它的元素个数 。对于  的任意一个子集合 ,定义  ,定义 关于 的补集为 。小Q想知道,如果他等概率地选择一个  的子集 ,那么 的方差是多少。由于这个方差值可能很大,不妨设其为  ,你只需要给出  的值即可。题解可以看出具有对称性,可以知道方差,但注意到很大则需要化解,大小不确定,则需要定理我们类似于算法,对关于做带余除法(则可以使用)...

2018-09-22 11:32:32 287

原创 spfa负环判断(DFS+BFS两种)

背景给定一个图,判断有无负环虽然很不稳定_(:з」∠)_ ,但在处理含负权值最短路时为首选(特别是差分约束系统)而部分题目额外要求判断有无负环(即最短路为)下面给出由(最短路算法一般基于),与(一般用于处理环)两种不同的同时计算最短路与寻找负环的思路 BFS:基于算法,通过判断一个点操作,是否进行次数(即走了至少个点)由于处理环能力较弱,故该判断方法若遇到负环很可能...

2018-09-21 11:18:37 1014

原创 【UVA11997】K Smallest Sums 优先队列的多路归并问题

背景给你个有序列表(假设非降序),将其合并为一个列表(这为《算法导论》上堆部分一道例题)一种策略是建立一个大小为的小根堆,每个序列第一个元素入堆,标记每个元素所属队列.依次取出,取出后若对应序列还有元素,则加入堆中否则不加入或者加入.PS:归并排序的归并过程就可以看作是大小为的一个小根堆进行合并的操作.问题有个序列,每个序列有个元素。现在要在每个序列里选一个元素出来求和,故...

2018-09-18 17:34:04 297

原创 BSGS&&EXBSGS——解决a^x%p=b问题

背景对于关于x的类型同余方程,求其最小解可以判断方程有无解首先若p为素数,由完全剩余系可知有解,p不为素数:若则,否则且对于,要若才可能有解。若方程有解,由,为阶.可知将从进行p次枚举一定可以得到解BSGS就是将通过将枚举次数上界变为的算法BSGS算法=&gt;且在上述的讲解中我们确定了枚举上界次数,那么考虑如何将次数给降下来对x做带余除法,我们考虑对进行枚举对...

2018-09-18 00:11:02 540

原创 分块入门练习-3

练习-1及分块介绍  练习-27.区间乘法及区间加法,单点求和给出一个长为  的数列,以及  个操作,操作涉及区间乘法,区间加法,单点询问。数据范围: 线段树的经典模板题(雾 (*•̀ㅂ•́)و(不过我改成区间求和过去TLE了思想还是维护块的乘积,加的值单点查询时 对于区间修改涉及一个操作,即涉及不完整块的操作,首先重置对应整块的(因为加法乘法顺序的原因必须后再进行修...

2018-09-17 19:01:17 324

原创 分块入门练习-2

练习-1及分块介绍  练习-34.区间加法与求和给出一个长为  的数列,以及 个操作,操作涉及区间加法,区间求和。数据范围: 相对与第一题的单点查询,需要多维护一个区间的区间和属性记录整块加的值,维护初始以及非整块操作时的块的和#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorith...

2018-09-17 18:19:18 274

原创 Codeforces Round #509 (Div. 2)(一堆模拟)

由于晚上有点事所以根本没看最后一题,有空再补上(ง •̀_•́)ง A. Heist给定一个数N,一个正整数序列,最少增加多少数可以使其变为严格连续的正整数序列  B. Buying a TV Set给定一个比例,两个范围,求的方案数 先得到,即分子至多为的多少倍,分母至多为多少倍两者求出取较小值即可C. Coffee Break给定N个正整数,一个...

2018-09-16 23:08:12 256

原创 约数求和

题目给定两个数(),求区间中每个元素的约数个数的和分析记表示的约数个数,,答案即为现在问题变为如何快速的求的值考虑整体:中以为倍数的有个,,现在时间复杂度为还需要优化又注意到的值的严格非增的:如,序列为.可以考虑将相同的值一起计算即对于相同的值求一个区间,可知更新时,而(表示序列中大于等于的个数)#include &lt;cstdio&gt;#include &...

2018-09-16 17:59:49 1205

原创 UVA11417 GCD(dp,筛法)

题意求T组,分析此题正解应该是莫比乌斯反演,时间复杂度为.我不会ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘我的方法是(所以升级版会TLE) 易知以为的倍数的有个,则为倍数的有个,记为又记表示的个数,因为,故可以倒着更新最后去重就是答案#pragma GCC optimize(3)#include &lt;cstdio&gt;#include &lt;iost...

2018-09-16 17:33:59 222

原创 【模板】任意模数NTT(中国剩余定理版,O(1)long long快速乘)

任意模的,即题目给定要求的取模的数的形式,或者小于需要的数值如果假定作用长度为,系数的值不大于,则相乘后系数不大于.如果我们取合适的多个模数(他们有相同的原根),使,同时我们得到分别以为模的作用系数,我们可以得到实际系数满足:,由中国剩余定理通解,而但这里由于的选取,会爆,故可以先求解有,求出后即可得到这里有个神奇的的乘法,根据的是,以及溢出后减法在模意义下的等价(不太确定...

2018-09-15 22:14:40 952

原创 [ACM-ICPC 2018 焦作赛区网络预赛][L.Poor God Water][AC自动机(伪)+矩阵快速幂]

题意T组数据,构造长度为的串,不含字串的方案数数据范围:分析AC自动机构造矩阵,但我不会(目前)_(°:з」∠)_可以将合法的三元串xyz看作xy-&gt;yz,这就形成了一个转移关系那么11-&gt;11就是非法的,13-&gt;32也是非法的这就可以填充一个的矩阵,中元素表示从i转移到j的合法种数,所有元素和即为答案。PS:比赛时丢脸的用trie树手写了一个的矩阵(...

2018-09-15 21:42:24 275

原创 [USACO08DEC]Trick or Treat on the Farm

题意给定一个奶牛数,初始时奶牛在位置上,每个位置可以移动到位置上,求每个奶牛移动的最多次数(对于一个奶牛,一个点至多访问一次).分析由于本题一个点只有一条出边,所以图构成的环应该是一个简单环,且一个环上可以收集的价值相同。应用缩点后的思想,将图分为链与简单环进行处理- 维护两个染色变量,分别处理环与加入环的链- 环通过维护路径长度,优先处理环- 当时,该环收集的价值(可以理解...

2018-09-15 11:14:21 251

原创 [luogu]P2152 [SDOI2009]SuperGCD

题目计算两个大整数的数据范围:分析即写高精形式的即是更相损减术的优化,对于首先提取其公共的幂次,即.由更相损减术,,但这种直接计算若两者差值太大则时间复杂度逼近(n为最大整数的值).注意到值为奇数,则可以通过对中的2的倍数减半规模.若则,否则,并对进行可能的折半操作PS:一开始写的函数(*,&amp;)形式,莫名其妙TLE. ヘ(;′Д`ヘ) #include...

2018-09-14 10:19:57 240

原创 [ZJOI2014]力[卷积,FFT]

题目给出个数,给出的定义如下:令,求.数据范围:分析先考虑的情况,即有四个数考虑序列,.考虑卷积m即为上述序列相乘的形式,以序列分别为生成函数的前k项系数(其余项系数为0),答案即为的系数,以FFT优化即可.注意精度.#include &lt;cstdio&gt;#include &lt;iostream&gt;#include &lt;algorithm...

2018-09-11 19:51:40 213

原创 [luogu]P1966 火柴排队(离散,逆序对)

题目每盒装有根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为其中 表示第一列火柴中第ii个火柴的高度,表示第二列火柴中第  个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 取模的结果。...

2018-09-11 19:31:44 202

原创 分块算法介绍(分块入门练习-1)

前言之前只了解分块,但没有深入学习.但之前集训时遇到http://codeforces.com/gym/100960/problem/G,当时现场树状数组没有调出来,赛后写出后上网搜其他方法,发现了一个奇妙的分块方法,便决定抽空深入学习一下这种优化的暴力——分块. 关键名词:区间:一段连续子序列 区间操作:对某个区间进行同类型相同规模的操作 块:将一个数列划分为连续的块分块算法一般...

2018-09-06 14:21:29 1780 1

原创 [luogu]P1373 小a和uim之大逃离

题目给定矩阵,矩阵每个元素有一个的值,可以从任意点出发并在任意点停止,但只能向下或向右走。走必须为偶数步,每一步会得到一个权值,求方案数,满足,为每一步的权值。数据范围: dp策略先令为终点在的符合条件的方案数(中为其他刻画状态条件),可以看出,其主要依赖于两项(考虑奇偶步),或依赖于三项(不考虑奇偶步).由于求和涉及,故先考虑,表示终点在,的方案数(不考虑奇偶步),.依赖...

2018-09-05 12:21:35 303

原创 [luogu]P2258 子矩阵[dp,枚举]

题目子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。例如,下面左图中选取第2、4行和第2、4、5列交叉位置的元素得到一个的子矩阵如右图所示。的其中一个的子矩阵是相邻的元素:矩阵中的某个元素与其上下左右四个元素(如果存在的话)是相邻的。矩阵的分值:矩阵中每一对相邻元素之差的绝对值之和。本题任务:给定一个n行m列的...

2018-09-04 14:23:37 676

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除