![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
Code--Dream
acm
展开
-
并查集 水题
题目链接#include #include#include#include#include#include#include#include#includeusing namespace std;const int INF =2100000000;int pre[1010];void Init(int n){ for(int i原创 2016-04-07 19:26:27 · 385 阅读 · 0 评论 -
Count primes
题目链接:点击打开链接题目意思就是求1到n之间的素数个数 n思路就是: 不会啊, 先存两份模板.顺便存存高手代码。暂时没看懂,不过好短,感觉很厉害。#include #define MAXN 100#define MAXM 10001#define MAXP 40000#define MAX 400000#define clr(ar) memset(ar原创 2016-09-21 14:01:42 · 356 阅读 · 0 评论 -
有多少个不同的子串?-- 后缀数组
点击打开题目链接 题目大意: 给你一个字符串问你有多少个不相同的子串?InputT- number of test cases. ToutputFor each test case output one number saying the number of distinct substrings.ExampleInput:2CCCCCAB原创 2016-09-28 14:08:02 · 688 阅读 · 0 评论 -
线段树-题解
模板原创 2016-11-05 13:51:06 · 414 阅读 · 0 评论 -
AC自动机-题目集合
AC自动机-题目集合 模板题目链接: hdu-2222#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;t原创 2016-10-10 21:50:36 · 1674 阅读 · 0 评论 -
树链剖分-入门题目
Query on a tree题目链接: http://vjudge.net/problem/SPOJ-QTREE题目大致意思就是: 给你一棵树,有连个操作: ● 第一个是查询任意两个不同节点上的最短路径上的最大权边! ● 第二个操作修改某一条边的权值;对于一棵树,数的深度如果很大,那么每次查询两个叶子节点,时间复杂度还是很高的。所以我们就把树分成一原创 2016-11-12 16:37:59 · 1348 阅读 · 1 评论 -
数学题-计算相交圆的公共部分面积
参考学长的模板;数学能力差就要看公式模板;数学知识不懂画图推一下就出来了。高三同学做这种题应该特别厉害。double abss(double a,double b) //两数作差绝对值{ return a-b>=0?(a-b):(b-a);}struct circle{ double x,y,r;} a,b;double get_dis(double x1,原创 2016-11-26 21:15:37 · 1533 阅读 · 0 评论 -
Manacher 算法
Manacher 算法详见: http://www.cnblogs.com/biyeymyhjob/archive/2012/10/04/2711527.html本人只是存一个代码#include#include#include#include#include#include#include#include#include#include#include#incl转载 2016-09-07 11:41:20 · 462 阅读 · 0 评论 -
后缀数组-入门学习
后缀数组论文链接——处理字符串的有力工具_百度文库后缀排序DescriptionTim正在自学《数据结构》,他刚刚学会如何比较两个字符串大小。书上是这么说的(和Pascal语言中的比较规则相同,学习过Pascal语言的同学可以跳过这段): 比较两个不同字符串s1=’p1p2p3…pN’和s2=’q1q2q3…qM’的大小,设N若s1是s2的前缀,则s1qi,且i最小;若pi原创 2016-09-26 19:34:19 · 678 阅读 · 0 评论 -
归并排序--小白写的
归并排序 排序算法,最好实现的一种算法之一啊。学习该算法只需要了解递归就好了。首先给出一个问题,给出两个有序的数列,让你把它合成一个有序的数列,那么我们只需要两个同时从前往后看,小的数放到一个临时数组(当然这样是从小到大的排序),这样这个数组里面就是一个有序的了。然后再把这个有序的数组放回原来的位置。所以,会递归,归并排序写起来就很简单了。#include #include #i原创 2017-03-13 16:21:09 · 427 阅读 · 0 评论 -
背包问题
1. 01背包为题描述:s件物品, 背包容量为 m ,给出每件物品的cost,与 value 求在背包容量内最大的价值是多少? #include#define max(a,b) a>b?a:bint main(){ int n,s,m,v,w,i,j,k; scanf("%d",&n); while(n--) { int DP[25]={0}; scanf("原创 2016-04-12 13:44:31 · 348 阅读 · 0 评论 -
简单数位DP
https://cn.vjudge.net/problem/HDU-4722懒得写看,代码注释吧;主要存板子#include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2017-03-17 14:48:50 · 574 阅读 · 0 评论 -
值域线段树 (玲珑OJ 1117)
点击打开题目链接题目意思很简单:1、插入x2、把小于x的数变成x3、把大于x的数变成x4、求集合中第x小数5、求集合中小于x的数个数思路: 线段树,节点是值的分数,你可以离散,也可以不离散,直接标记;我的写法是: 看代码注释>>>据说数组改为指针会快点;代码比较挫.存一个;#include #include #include #i原创 2017-05-19 17:12:14 · 1178 阅读 · 0 评论 -
扩展欧几里德算法--学习笔记
扩展欧几里德算法 扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。 int Exgcd(int a,int b,int &x,int &y){ if (b==0) { x=1,y=0; r转载 2016-07-29 18:32:06 · 396 阅读 · 0 评论 -
中国剩余定理 ( 的学习 )
孙子定理 又称为(中国剩余定理)一般指孙子定理 中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国剩余定理。现代公式表示为:参考文献:百度百科 Acdreams的博客转载 2016-07-29 18:41:48 · 613 阅读 · 0 评论 -
最小生成树,并查集的思想 nyoj1239
#include#include#includeusing namespace std;int n,pre[10010],cnt;struct node{ int x,y; int val;} p[10010];void init(){ for(int i=0; i<10010; i++) pre[i]=i;}int cmp(nod原创 2016-04-04 21:20:27 · 358 阅读 · 0 评论 -
欧拉函数
欧拉函数 编辑在数论,对正整数n,欧拉函数是小于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名(Ruler'so totient function),它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。中文名 欧拉函数 外文名 Rul原创 2016-04-12 18:58:07 · 757 阅读 · 0 评论 -
nyoj 998
nyoj 998 点击这里打开题目链接 给你一个数N,使得在1~N之间能够找到x使得x满足gcd( x , N ) >= M,求解gcd(x,N)的和思路:一开始想到暴力法做,超时 ,后来借鉴学长经验AC:大致思路: 用欧拉函数求 ,euler(n) 表示 1到n与n互质的数的个数, 如果n能够被 i 整除 , 则euler(n/i)等价原创 2016-04-12 21:26:49 · 589 阅读 · 0 评论 -
SPFA 最短路 带负权边的---- 粗了解
SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。算法大致流程是用一个队列来进行维护。 初始时将源加入队列。 每次从队列中取出一个元素,并对所有与他相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。 直到队列为空时算法结束。这个算法,简单的说就是队列优化的bellman-ford,利用了原创 2016-04-26 21:28:19 · 3592 阅读 · 6 评论 -
全排列 STL
#include#include#includeusing namespace std;int main(){ int T,i,n; int a[9]= {1,2,3,4,5,6,7,8,9}; cin>>T; while(T--) { cin>>n; while(1) {原创 2016-04-16 18:36:53 · 379 阅读 · 0 评论 -
逆康拓展开展开
逆康拓展开和康拓展开差不多,因为X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! ,其中a[i]为当前未出现的元素中是排在第几个(从0开始)。这就是康托展开。康托展开可用代码实现。X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0![1]原创 2016-04-17 20:47:38 · 356 阅读 · 0 评论 -
公共子序列
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://karsbin.blog.51cto.com/1156716/966387最长公共子序列问题:给定2个字符串,求其最长公共子串。如abcde和dbada的最长公共字串为bd。动态规划:dp[i][j]表示A串前i个和B串前j个的最长公共子串的长度。转载 2016-05-02 09:53:59 · 567 阅读 · 0 评论 -
四叉树 bnuoj
点击打开题目链接建树+广搜一棵树;最下面有更段代码。#include#include#include#include#includeusing namespace std;int maze[20][20];struct node{ int num; node *next[4];};void init_tree(node *root){原创 2016-04-20 21:01:46 · 858 阅读 · 1 评论 -
花式GCD
#include#include#include#include#include#includeusing namespace std;int gcd(int a,int b){ return b?gcd(b,a%b):a;} int gcd1( int a, int b){ int r; while(b>0) { r=a%原创 2016-04-22 08:34:15 · 419 阅读 · 0 评论 -
KMP 模板
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long原创 2016-05-07 13:25:31 · 348 阅读 · 0 评论 -
快速幂
long long ksm(long long a,long long b){ long long c=1; while(b) { if(b&1) c=a*c%Mod; a=a*a%Mod; b>>=1; } return c;}原创 2016-04-22 18:37:13 · 377 阅读 · 0 评论 -
BM算法模式匹配——字符串与KMP比较
下面是代码:BM是什么参考阮一峰老师的讲解 点击打开链接#include#include#include#include#include#include#include#include#include #includeusing namespace std;const int MAX_SIZE=5005;void set_ASC(int *ASC,int len,原创 2016-05-08 13:40:38 · 1238 阅读 · 0 评论 -
迪杰斯特拉--数组模拟邻接表优化
存图改用数组模拟邻接表的方式:数组模拟邻接表详见 邻接表的数组实现 。迪杰斯特拉 详见点击打开链接。#include #include #include using namespace std;const int MAX_SIZE=110;const int INF=2e9+1e8;int start[MAX_SIZE],terminal[MAX_SI原创 2016-04-24 10:42:18 · 454 阅读 · 0 评论 -
树堆(Treap)
平衡树简介:平衡二叉树(Balanced Binary Tree)具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归的数列,可以参考Fibonacci数列,1是根节点原创 2017-07-17 08:41:25 · 537 阅读 · 0 评论