
学习资料
文章平均质量分 65
cyendra
Azarath Metrion Zinthos
展开
-
XML-RPC
xml-rpc是一个远程过程调用(RPC)协议,它使用XML来编码调用和HTTP作为传输机制。[1]"xml-rpc"还是指通常以使用远程过程调用的XML,独立于特定的协议。本文是关于协议"的xml-rpc"。翻译 2014-08-30 23:29:47 · 1227 阅读 · 0 评论 -
数位dp 学习指南
经典题目原创 2014-07-24 16:54:40 · 1385 阅读 · 0 评论 -
【Code Library】不超过25个页面的材料
---------------一、模板---1、NGUNSTTD-POName: NeverGiveUpNeverSurrenderTerribleTerribleDamage-PowerOverwhelmingUsage: Put it before main functionTags: 头文件 循环 常用语句---/** head-file **/原创 2013-08-12 15:52:25 · 2050 阅读 · 0 评论 -
介绍四种GCC内置位运算函数
int __builtin_ffs (unsigned int x)返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。int __builtin_clz (unsigned int x)返回前导的0的个数。int __builtin_ctz (unsigned int x)返回后面的0个个数,和__builtin_clz相对。int __built转载 2013-10-22 09:52:00 · 714 阅读 · 0 评论 -
对拍程序
*.bat@echo off :loop rand.exe > data.in std.exe std.out my.exe my.out fc my.out std.out if not errorlevel 1 goto loop pause goto loop原创 2013-08-24 18:43:17 · 700 阅读 · 0 评论 -
模板NeverGiveUpNeverSurrenderTerribleTerribleDamage-PowerOverwhelming
Name: NeverGiveUpNeverSurrenderTerribleTerribleDamage-PowerOverwhelmingUsage: Put it before main functionTags: 头文件 循环 常用语句/** head-file **/#include #include #include #include #include #in原创 2013-07-22 22:33:50 · 853 阅读 · 0 评论 -
RMQ 模板
一维模板const int maxn=50001;class CRMQ{ private: int Max[20][maxn]; int Min[20][maxn]; int idx[maxn]; public: int val[maxn]; void initRMQ(int n) { idx[0]=-1;原创 2013-07-24 16:22:18 · 673 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort)作者Winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 和stable_partitio转载 2013-07-02 18:46:30 · 550 阅读 · 0 评论 -
树的直径与树的中心
1. 树的直径概念:树中的最长路。求法:两次深搜或DP。1-两次深搜:任找一点A为源点,深搜遍历得到最远点B,这个最远点B必定在直径中(感性想想,以A点为源点找到的最长路后面一段必定属于树的直径的一部分);再以这个最远点B为源点深搜遍历求一个最长路,这个最长路即为树的直径。2-DP:显然最长路的两个端点必然是叶子或者根节点。设f(i)表示到i最远的叶子,g转载 2013-07-01 16:06:49 · 865 阅读 · 0 评论 -
prim算法
模板----2013/6/29double prim(double a[maxn][maxn],double d[maxn],int n,int s){ bool v[maxn]={0}; double ans=0,m; int t; for (int i=0;i<n;i++) d[i]=INF; d[s]=0; for (int lo转载 2013-02-01 11:07:37 · 552 阅读 · 0 评论 -
SPFA模板
#include #include #include #include using namespace std;const int maxn=155555;const int INF=-1;struct NODE{ int to; long long w; int next;}link[maxn];int edge,node,src,dest;原创 2013-03-23 20:35:12 · 963 阅读 · 0 评论 -
插头与轮廓线与基于连通性状态压缩的dp 学习指南
什么是插头dp原创 2014-07-27 16:16:01 · 1930 阅读 · 0 评论 -
后缀数组 学习指南
什么是后缀数组后缀树(Suffix tree)是一种数据结构,能快速解决很多关于字符串的问题。原创 2014-07-30 17:14:26 · 968 阅读 · 0 评论 -
计数排序
计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。原创 2014-08-01 09:52:14 · 742 阅读 · 0 评论 -
模拟退火
爬山算法爬山算法是一种局部择优的方法,采用启发式方法,是对深度优先搜索的一种改进,它利用反馈信息帮助生成解的决策。爬山算法一般存在以下问题:局部最大高地:也称为平顶,搜索一旦到达高地,就无法确定搜索最佳方向,会产生随机走动,使得搜索效率降低。山脊:搜索可能会在山脊的两面来回震荡,前进步伐很小。解决方法:随机重启爬山算法简单来说,爬山算法就是一种简单的贪心,假原创 2014-08-10 14:38:55 · 1379 阅读 · 0 评论 -
动态树 Link-Cut Trees
动态树动态树问题, 即要求我们维护一个由若干棵子结点无序的有根树组成的森林。要求这个数据结构支持对树的分割、合并,对某个点到它的根的路径的某些操作,以及对某个点的子树进行的某些操作。在这里我们考虑一个简化的动态树问题,它只包含对树的形态的操作和对某个点到根的路径的操作:维护一个数据结构,支持以下操作:• MAKE TREE() — 新建一棵只有一个结点的树。原创 2014-08-10 10:45:09 · 986 阅读 · 0 评论 -
主席树/函数式线段树/可持久化线段树 学习指南
可持久化数据结构(Persistent data structure)就是利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。因此可持久化原创 2014-08-03 21:40:54 · 1609 阅读 · 0 评论 -
树的直径、树的重心与树的点分治
树的直径树的直径(Diameter)是指树上的最长简单路。直径的求法:两遍搜索 (BFS or DFS)任选一点w为起点,对树进行搜索,找出离w最远的点u。以u为起点,再进行搜索,找出离u最远的点v。则u到v的路径长度即为树的直径。简单证明:如果w在直径上,那么u一定是直径的一个端点。反证:若u不是端点,则从直径另一端点到w再到u的距离比直径更长原创 2014-08-08 12:16:31 · 1605 阅读 · 0 评论 -
哈希表简易入门
什么是哈希表哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。哈希表作为一种高效的数据结构,有着广泛的应用。如果哈希函数设计合理,理想情况下每次查询的时间花费仅仅为 O(h/r),即和哈希表容量与剩余容量的比值原创 2014-08-07 21:19:21 · 785 阅读 · 0 评论 -
LCA问题
基本概念LCA:树上的最近公共祖先,对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。RMQ:区间最小值查询问题。对于长度为n的数列A,回答若干询问RMQ(A,i,j),返回数列A中下标在[i,j]里的最小值下标。 朴素LCA算法求出树上每个结点的深度。对于查询LCA(u,v),用p原创 2014-08-08 15:29:32 · 712 阅读 · 0 评论 -
扩展欧几里得、中国剩余定理 入门指南
欧几里得算法求两个树原创 2014-08-06 16:47:19 · 1212 阅读 · 0 评论 -
原根
在数论,特别是整除理论中,原根是一个很重要的概念。对于两个正整数,由欧拉定理可知,存在正整数, 比如说欧拉函数,即小于等于 m 的正整数中与 m 互质的正整数的个数,使得。由此,在时,定义对模的指数为使成立的最小的正整数。由前知 一定小于等于 ,若,则称是模的原根。原创 2014-08-06 17:28:47 · 1153 阅读 · 0 评论 -
矩阵加速递推 入门指南
首先是一个例题,用1X2的方块原创 2014-08-06 12:09:04 · 1448 阅读 · 0 评论 -
树链剖分 学习指南
什么是树链剖分原创 2014-08-04 11:52:30 · 1136 阅读 · 0 评论 -
RMQ问题与ST算法
RMQ(Range Minimum/Maximum Query)问题是求区间最值问题。原创 2014-08-01 10:21:05 · 731 阅读 · 0 评论 -
图论模板 求割顶/判断二分图
二分图(AC)/*=================================*\| 节点u所在的强连通分量是否为二分图| Call: bipartite(u);\*=================================*/int color[maxn];bool bipartite(int u){ for (int i=head[u];i!=-1;i原创 2013-05-20 16:12:37 · 935 阅读 · 0 评论 -
一个矩阵的类与矩阵连乘模板
我的模板#include #include #include #include using namespace std;const int maxsize=32;struct Matrix{ int element[maxsize][maxsize]; int size; int modulo; void init_matrix(int _原创 2013-06-19 21:30:59 · 692 阅读 · 0 评论 -
戴牛一万行的几何模板
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#i转载 2013-06-07 18:21:28 · 1058 阅读 · 0 评论 -
SCC的Kosaraju算法模板
//-----KosarajuvectorG[maxn],G2[maxn];vectorS;int vis[maxn],sccno[maxn],scc_cnt;void dfs1(int u){ if (vis[u]) return; vis[u]=1; for (int i=0;i<G[u].size();i++) dfs1(G[u][i]); S.原创 2013-04-17 19:53:55 · 1527 阅读 · 0 评论 -
SCC的Tarjan算法模板
#include #include #include #include #include using namespace std;const int maxn=41111;//-----Tarjanvector G[maxn];int pre[maxn],lowlink[maxn],sccno[maxn],dfs_clock,scc_cnt;stack S;void原创 2013-04-17 14:58:23 · 1467 阅读 · 0 评论 -
Bellman-Ford算法
贝尔曼-福特算法(Bellman-Ford)是由 RichardBellman 和 Lester Ford 创立的,求解单源最短路径问题的一种算法。有时候这种算法也被称为Moore-Bellman-Ford 算法,因为 Edward F. Moore 也为这个算法的发展做出了贡献。它的原理是对图进行V-1次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实现简单,缺转载 2013-01-30 11:30:34 · 1159 阅读 · 0 评论 -
Trie 模板
//用类,或者结构体定义都行class trie{public: trie* next[26]; int num; int value; trie() { for(int i=0;i<26;i++) next[i]=0; value=0;//记录是不是一个单词 num=0;//记录单词出现的次数转载 2013-04-16 20:49:52 · 780 阅读 · 0 评论 -
最短路算法的整理
Floyd-Warshall算法 for (int k=1;k<=n;k++) { for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (a[i][k]+a原创 2013-01-30 21:53:29 · 495 阅读 · 0 评论 -
二分查找法的实现和应用汇总
在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度。时间复杂度按优劣排差不多集中在:O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n)到目前位置,似乎我学到的算法中,时间复杂度是O(log n),转载 2013-04-16 15:43:09 · 551 阅读 · 0 评论 -
标准C++中的string类的用法总结
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstri转载 2013-02-01 11:12:12 · 497 阅读 · 0 评论 -
最小费用最大流模板
新的模板#include #include using namespace std;const int OO=1e9;//无穷大const int maxm=1111111;//边的最大数量,为原图的两倍const int maxn=2222;//点的最大数量int node,src,dest,edge;//node节点数,src源点,dest汇点,edge边数in原创 2013-04-10 20:39:44 · 960 阅读 · 0 评论 -
最大流算法---Ford-Fulkson方法的基本思想与Edmond-Karp算法
Ford-Fulkson的具体步骤1、初始化网络中所有边的容量,c继承该边的容量,c初始化为0,其中边即为回退边。初始化最大流为0。2、在残留网络中找一条从源S到汇T的增广路p。如能找到,则转步骤3,;如不能找到,则转步骤5。3、在增广路p中找到所谓的"瓶颈"边,即路径中容量最小的边,记录下这个值X,并且累加到最大流中,转步骤4。4、将增广路中所有c减去X,所有c加上X,构成新原创 2013-04-08 18:41:50 · 3351 阅读 · 0 评论 -
朴素的dijkstra模板
void dijkstra(int n,int dist[],EDGE edges[],int pre[],int src,int dest){ int _min,u,v,w; bool visit[maxn]={0}; for (int i=1;i<=n;i++) { dist[i]=OO; } dist[src]=0;原创 2013-04-07 20:53:59 · 978 阅读 · 0 评论 -
网络流初步
一、网络流的定义有向图 G = ( V, E )中:•有唯一的一个源点S(入度为0:出发点)•有唯一的一个汇点 T(出度为0:结束点) •图中每条弧 (u, v) 都有一非负容量 c ( u, v )满足上述条件的图G称为网络流图。记为: G = ( V, E ,C)1、可行流◆每条弧 ( u, v )上 给定一个实数f(u,v),满转载 2013-02-04 22:19:29 · 691 阅读 · 0 评论 -
2-SAT模板
#include #include #include using namespace std;const int maxn=4444;const int maxm=1111111;struct EDGE{ int to; int w; int next;}edges[maxm];int head[maxn];int edge,node;int原创 2013-04-17 21:11:56 · 1121 阅读 · 0 评论