algorithm
zhoutonglx
用汗水与泪水去追逐光荣与梦想,亦感受怅然与失落
展开
-
埃氏筛素数法
import java.util.*;public class Sieve { public static void main(String args[]){ new Sieve(); } Sieve(){ System.out.print("input the size of n: "); Scanner s = new Scanner(System.in); int n原创 2015-05-21 16:47:13 · 505 阅读 · 0 评论 -
hdu3068 Manacher --> find the longest palindrome
#include<bits/stdc++.h>using namespace std;char ss[250020];char s[250020];int p[250000];int main(){ while(scanf("%s",s)!=EOF){ memset(p,0,sizeof(p)); int i,j; int len =原创 2016-08-12 22:12:07 · 250 阅读 · 0 评论 -
Binary Search Tree (BST)
BST is a effective data structure for inserting,removing,searching. All of them cost log(n) #include<bits/stdc++.h>using namespace std;typedef struct node{ int value; node* lc; node* rc;}原创 2016-08-05 18:05:16 · 231 阅读 · 0 评论 -
Hash Table
A simple hash table code, to be continuedimport randomHT = [None for x in range(15)]res = random.randrange(100)key = 13l = len(HT)## count(elements)<key<l#def insert(n): ans = n%key原创 2016-08-01 15:46:59 · 267 阅读 · 0 评论 -
Linked List->single linked list
#include<bits/stdc++.h>using namespace std;typedef struct List{ int value; List* next;}*Link;Link head = NULL;Link tail = NULL;void InsertHead(int value){ Link tmp = new List; tmp->原创 2016-08-01 01:00:20 · 326 阅读 · 0 评论 -
Radix Sort
Radix sort is effective when the size of elements are short. and it’s steady.#include<bits/stdc++.h>using namespace std;int L[] = {3321,1,10,9680,577,9420,7,5622,4793,2030,3138,82,2599,743,4127};int原创 2016-07-31 16:46:48 · 360 阅读 · 0 评论 -
adjacency_matrix & adjacency_list
/* * 3--------4--------5 * | | | * | | | * | | | * 1--------2--------6 * \ / *原创 2016-08-03 20:48:23 · 882 阅读 · 0 评论 -
Counting Sort
As for counting sort,we need to know the range of value of the array.It can not be too large. Than we count how many times the element comes. At last, we start from 0 to max value as i, if count[i] is原创 2016-07-28 00:49:14 · 266 阅读 · 0 评论 -
Quick sort
#include<bits/stdc++.h>using namespace std;int L[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};void QuickSort(int left,int right){ int l = left; int r = right; if(left>=right){ re原创 2016-07-27 15:45:47 · 508 阅读 · 0 评论 -
hdu 3549 Flow Problem ek算法,网络流
啊,第一滴血,网络流#includeusing namespace std;const int inf = 0x3f3f3f3f;struct point{ int c; int f;}a[18][18];vector v[20];queue q;int n,m;int vis[25];int maxflow;int pre[25];int a原创 2015-07-19 19:10:02 · 310 阅读 · 0 评论 -
KMP算法
模板:char s1[1000005];char s2[1005];int p[10005];int l1,l2;void init(){ int i,j; i=0; l2 = strlen(s2); j=-1; p[0]=-1; while(i<l2) { if(j==-1||s2[i]==s2[j]原创 2015-08-25 23:36:50 · 296 阅读 · 0 评论 -
算法 归并排序
还有点瑕疵 #includeusing namespace std;int a[20];int b[20];void Merge(int a[],int b[],int i,int m,int n){ int j; int k; for(j=m+1,k=i;i<=m&&j<=n;++k) { if(a[i]>a[j])原创 2015-07-15 15:47:30 · 334 阅读 · 0 评论 -
扩展欧几里德算法
import java.util.*;public class Main{ private static int a,b,d,x,y; public static void main(String args[]){ Scanner s = new Scanner(System.in); System.out.println("求解ax+by=gcd(a,b):"); System原创 2015-05-21 15:39:02 · 389 阅读 · 0 评论 -
求最大匹配之匈牙利算法
模板:int vis[N];int edge[N][N];int link[N];int maxmatch;bool dfs(int x){ int v; for(v=1; v<=n; v++) { if(vis[v]==1&&edge[x][v]) { vis[v]=1; if(link[v]==-1||dfs(link[v])) {原创 2015-08-12 22:32:08 · 327 阅读 · 0 评论