随笔分类 -  信息学相关知识

摘要:Dijkstra次短路其实就是带入两个变量进行增广,一个表示最短,一个表示次短。接下来讲一下如何用堆维护,每当更新到了最短或次短,就将这个答案put进堆里就可以了。堆的大小不是很清楚,建议用调优先队列。例题传送门代码如下#include#include#in... 阅读全文
posted @ 2018-09-18 18:33 XSamsara 阅读(304) 评论(0) 推荐(0)
摘要:次小生成树模板【例题】传送门【做法】先用最小生成树做出这棵树,然后DFS建树,插入一条非树边,肯定在树上形成了环,所以在环上找一个最大的删去,加入这条边。最后从所有情中选一个最小的就是答案。(首先得知道这个次小指的是什么次小,是值次小还是值从小到大排序后排名... 阅读全文
posted @ 2018-09-18 18:33 XSamsara 阅读(104) 评论(0) 推荐(0)
摘要:点分治详解点分治是一个需要自己推导的算法,但是有板子,但是Cal这个函数根据不同题目是会变的。点分治是解决树上求值的一种算法,比如说一棵树上路径距离(u,v)距离<=K" role="presentatio... 阅读全文
posted @ 2018-06-29 10:24 XSamsara 阅读(243) 评论(0) 推荐(0)
摘要:DSU on tree首先感谢LX dalao的讲解。DSU on tree用于解决静态树上众数问题,比如说Codeforces 600E题目大意 给你一棵树,每个节点有一种颜色,问你每个子树x的颜色数最多的那种颜色,如果颜色数相同,那么种类数相加。输入样例1 4... 阅读全文
posted @ 2018-06-20 18:49 XSamsara 阅读(174) 评论(0) 推荐(0)
摘要:树链剖分不知是谁想出的想法,太完美了,首先我大致讲一下树剖的想法。将树分成重链和轻链,使每条重链越长越好,每次可以用数据结构将重链上的所有节点求出或修改,达到优化的效果,下面我讲的是用线段树维护一棵树。当然不止是线段树可以维护,树状数组和Splay也可以。下面看一道题... 阅读全文
posted @ 2018-06-05 20:08 XSamsara 阅读(160) 评论(0) 推荐(0)
摘要:莫队与带修改莫队莫队莫队是个很好用的东西,而且想法十分神奇,利用分块优化查找。用莫队解决的题目大多是区间不同数的个数,应该还可以用着其他方面,但是我不知道。下面我就来讲讲莫队算法。首先看一道题1878: [SDOI2009]HH的项链Time Limit: 4 Sec... 阅读全文
posted @ 2018-05-27 17:16 XSamsara 阅读(159) 评论(0) 推荐(0)
摘要:平衡树【Treap&&非旋Treap】首先简单介绍一下平衡树,平衡树就是一棵二叉搜索树,但是因为二叉搜索树有时会变成一条链,那么复杂度就得不到优化。平衡树利用旋转将二叉搜索树旋成平衡,让这棵树尽量保持一颗满二叉树,这样的复杂就是恒定的O(n&#x221... 阅读全文
posted @ 2018-05-06 11:29 XSamsara 阅读(239) 评论(0) 推荐(0)
摘要:欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markd... 阅读全文
posted @ 2018-04-16 15:32 XSamsara 阅读(124) 评论(0) 推荐(0)
摘要:如何快速求解组合数 C(n,m) 取模组合数取模,肯定要用到乘法逆元,像我这种蒟蒻,还不会。但是我学到了一个更优秀的方法,不仅快速求解C(n,m),而且还可以mod。这需要用到质因数拆分: 我们知道Cnm=n!(n−m)!m!" role="prese... 阅读全文
posted @ 2018-04-11 14:34 XSamsara 阅读(842) 评论(0) 推荐(1)
摘要:网络流算法一.网络流我们先来了解什么是网络流。网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。网络流的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、... 阅读全文
posted @ 2018-03-04 19:05 XSamsara 阅读(1540) 评论(0) 推荐(0)
摘要:C++ 重载运算符重载运算符在很多地方要用到,而且很方便,虽然没有直接写cmp快,但是用途比cmp广泛很多。首先我们看一个模板:struct (名称){ 变量 类型 operator 符号(const 名称 变量)const{(返回计算的值)}}可能比较难... 阅读全文
posted @ 2018-03-01 20:00 XSamsara 阅读(752) 评论(0) 推荐(1)
摘要:C++ STL 堆的调取记住掉STL里的东西要在前面加上use namespace std;。1.优先队列这个堆我想应该是最常用的,因为写起来方便,但是时间效率上不高,往往比手写的多一个系数。所以本人不是很喜欢用。 需要用到algorithm这个库。定义: pr... 阅读全文
posted @ 2018-03-01 19:25 XSamsara 阅读(460) 评论(0) 推荐(0)
摘要:二分图匹配 匈牙利算法先让我来介绍一下二分图是什么吧!这就是一种最常见的二分图。也就是左右两边相连,左边与左边不连,右边也不连的一幅图。把左边看成集合A,右边看成集合B,每条边都连接A与B中的点。讲完二分图,我们在了解一下匹配是什么。 在二分图中,任意两条边都没有公共... 阅读全文
posted @ 2018-02-26 19:25 XSamsara 阅读(198) 评论(0) 推荐(0)
摘要:LCA(离线Tarjan算法,在线倍增法)详解首先我们看一道洛谷上的板子题:P3379 【模板】最近公共祖先(LCA)时空限制:1000ms,128M【题目描述】 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。【输入格式】 第一行包含三个正整数N、... 阅读全文
posted @ 2017-12-28 11:08 XSamsara 阅读(360) 评论(0) 推荐(0)
摘要:求解逆序对常用的两种方法,二路归并、树状数组。二路归并求解逆序对二路归并是一个十分完美的求逆序对的方法 假设当前求到这一步,现在比较a[i],a[j]的大小,我们根据图知道,ia[j],说明a[i]到a[mid]都大于a[j],ans+=mid-i+1。 代码如下(求... 阅读全文
posted @ 2017-12-22 15:21 XSamsara 阅读(217) 评论(0) 推荐(0)
摘要:字符串处理一小部分借鉴了别人的博客。C++里的字符串的效率不高,常数很大,所以建议尽量少用。但我觉得,如果时间可以下来,尽量用字符串,因为,字符串太方便了,可以直接加,和比较,删除也会自动补齐,比字符型数组好多了(但是慢多了)。自从学了C++,第一感觉是C++比pas... 阅读全文
posted @ 2017-12-22 12:33 XSamsara 阅读(552) 评论(0) 推荐(0)
摘要:如何造数据很多人将造数据看成小儿科,但并不是这样的,往往造数据要思考的甚至比写代码要思考的多了多。 下面让我简单的介绍一下:基本的随机代码先来看随机造数的函数。 C++://需要用到的库#include#includesrand()//初始化(放在程序开头),如果不初... 阅读全文
posted @ 2017-12-21 14:31 XSamsara 阅读(851) 评论(0) 推荐(0)
摘要:逆元相关知识乘法逆元(mod 在C++里是%)定义: 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元。为什么要有乘法逆元呢? 当我们要求(a/b)%p的值,且a,b都很大,无法直接求得a/b的值,必须在之前mod时(因为(a/b)%p不等于(a%p)/(b... 阅读全文
posted @ 2017-12-17 11:12 XSamsara 阅读(174) 评论(0) 推荐(0)