算法
文章平均质量分 78
BlackBullet_CN
这个作者很懒,什么都没留下…
展开
-
【大渣】树状数组
======================================================================================================================================lowbit(int x){ return x&(-x);}=====================原创 2015-06-24 18:36:26 · 703 阅读 · 1 评论 -
【大渣】_gcd/_euclid
欧几里德算法:求最大公因数int _euclid(int x,int y){ if(y==0)return x; else return _euclid(y,x%y);}===========================================================================================================原创 2015-07-05 13:40:54 · 481 阅读 · 0 评论 -
【大渣】图的存储方法
图论 这里以NKOJ 1120为例Description有一无负权有向图。求指定两点间的最短路径。 Input输入:第一行,两个数字n和m,表示n个顶点,m条边 接下来的m行,每行三个整数,分别表示边的起点、终点和边的长度 最后一行 两个整数 x y 表示求从点x到点y的最短路径 Output输出:一行,一个整数,最短路径长度 Sample In原创 2015-07-29 11:55:24 · 408 阅读 · 0 评论 -
【大渣】关于sort函数排序
首先sort函数要使用算法包#include使用形式为 sort(begin,end,way)begin 和 end 表示排序的范围way表示排序的方式,当然也可以不用way就是默认从小到大排序比如对与一个数组a[ ]从小到大 就可以写为 sort(a,a+k)#include#includeusing namespace std;int n,a[20];in原创 2015-10-16 15:27:46 · 440 阅读 · 0 评论 -
【大渣】KMP算法
分为两个部分首先需声明char A[],B[];int F[],n,m,i,j;scanf("%s%s",&A[1],&B[1]);A[0]=B[0]=' ';n=strlen(A)-1;m=strlen(B)-1;//需加入第一部分为求Fail数组F[1]=j=0; for(i=2;i<=m;i++) { while(j>0&&B[j+1]!=B[i])j原创 2015-07-24 15:07:23 · 394 阅读 · 0 评论 -
【大渣】线段树
======================================================================================================================================建树void maketree(int x,int y){ tot++; int now=tot;原创 2015-06-24 18:34:32 · 686 阅读 · 1 评论 -
【NOIP复习】【数学】
======================================================================一些NOIP可能会用到的关于数学的东西= =目录:1.欧几里德与扩展2.秦九昭算法3.欧拉函数4.卡特兰数5.二分快速幂6.杨辉三角/组合数计算7.差分约束PS:以上为个人整理/搬运,若有错误请指出PS*2:容斥原理原创 2015-11-03 16:29:45 · 699 阅读 · 0 评论 -
【大渣】最长上升公共子序列
太坑了所以决定写下来= =对于两个数列,我们要求他们的最长上升公共子序列该怎么求呢?用Dp来做,我们很容易想到F[ i ][ j ]来表示A的前i项和B的前j项可以组成的最长上升公共子序列。并且易得出转移方程: a[i]!=b[j]时:F[i][j]=F[i-1][j] a[i]==b[j]时:F[i][j]=max(F[i-1][k])+1 (1=b[k]//保证上升原创 2015-11-05 19:45:25 · 1169 阅读 · 0 评论 -
【大渣】二分快速幂
用于求 a^b%c,防止数据过大而溢出int _Montgomery(int a,int b,int c){ int ans=1; a=a%c; while(b>0) { if(b&1)ans=(ans*a)%c; b=b>>1; a=(a*a)%c; } return ans;}时间复杂度为O(log2b)原创 2015-07-05 13:51:19 · 952 阅读 · 0 评论