算法
hawkeye丶
这个作者很懒,什么都没留下…
展开
-
Trie树链表版
#include#include#includeusing namespace std;const int maxn=1e6+10;char str[maxn];struct Trienode{ bool flag; Trienode *next[26]; Trienode() { flag=false; for(int原创 2016-07-21 11:57:23 · 361 阅读 · 0 评论 -
BM算法
#include#include#include#includeusing namespace std;char pattern[10000],str[10000];int last(char *p,char ch){ int length=strlen(p),num=0; char *pp=p+length+1; while(pp>=p) {原创 2017-02-20 11:09:28 · 273 阅读 · 0 评论 -
字符串指针实现全排列
#include #includechar str[10];int i;void swap(char *n,char*m){ char temp=*n; *n=*m; *m=temp;}void print(char *p){ char *s; if(*p=='\0') { printf("%d %s\n",i++,s原创 2017-01-10 20:36:15 · 237 阅读 · 0 评论 -
SPFA算法
#include #include#include#include#includeusing namespace std;const int maxn=1e9;int n,m,tol,hed[10000],dis[10000],vis[10000],cnt[10000];struct node{ int f; int t; int v; int n原创 2016-08-25 14:15:55 · 197 阅读 · 0 评论 -
线性筛
#include #include #include#includeusing namespace std;int vis[10000]={1,1},prime[10000];int main(){ int cnt=0; for(int i=2; i<=10000; i++) { if(!vis[i]) prime[cn原创 2016-09-02 20:09:36 · 582 阅读 · 0 评论 -
最小费用最大流
#include#include#include#include#includeusing namespace std;const int maxn=1e9;int src,sink,n,m,e,head[1005],pnt[50000],next[50000],cost[50000],cnt[1005],pre[1005],dis[1005],flow[50000];bool v原创 2016-09-02 20:03:30 · 294 阅读 · 0 评论 -
LIS (n*logn)
#include #include#include#includeusing namespace std;const int maxn=1e6+10;int cnt=0,n,m,p,a[maxn],dp[maxn],b[maxn];int main(){ while(~scanf("%d",&n)) { for(int i=1; i<=n; i++原创 2016-07-19 20:43:10 · 256 阅读 · 0 评论 -
欧几里得算法
#include#include#include#includeint gcd(int m,int n){ while(n) { int t=m%n; m=n; n=t; } return m;}int main(){int n,m;while(~scanf("%d%d",&m,&n)){原创 2016-09-12 09:39:28 · 169 阅读 · 0 评论 -
LIS
#include#include#include#includeusing namespace std;const int maxn=1e5+10;int n,a[maxn],dp1[maxn],dp2[maxn];int main(){ int t; scanf("%d",&t); while(t--) { while(~scanf原创 2016-07-19 20:41:45 · 243 阅读 · 0 评论 -
网络流Dinic算法
#include#include#include#include#includeusing namespace std;int maxn=1e9;int n,m,s,t,e,cost[1000],head[1000],pnt[1000*1000],next[1000],level[1000];queueq;void add(int u,int v,int w){ pnt原创 2016-08-29 14:18:35 · 327 阅读 · 0 评论 -
Trie树数组版
#include#include#include#includeusing namespace std;int cur=1;struct node{ int next[26]; int idx; void init() { idx=0; memset(next,-1,sizeof(next)); }};nod原创 2016-07-21 14:46:44 · 322 阅读 · 0 评论 -
并查集
#include#include#include#include#includeusing namespace std;int r[100005];int p[100005];int n,m;void init(){ for(int i=0;i<=n;i++) { p[i]=i; r[i]=0; }}int Find原创 2016-07-19 20:46:01 · 177 阅读 · 0 评论 -
LCIS
#include#include#include#includeusing namespace std;const int maxn = 510;int dp[maxn],num1[maxn],num2[maxn];int main(){int t,m,n;char ch[10]; cin>>t; while(t--) { cin>>n;原创 2016-07-19 20:44:25 · 178 阅读 · 0 评论 -
01背包
#include #include#include#includeusing namespace std;const int maxn=1010;int m,n,dp[maxn],v[maxn],c[maxn];int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=1; i<=n; i++)原创 2016-07-22 16:32:33 · 191 阅读 · 0 评论 -
前缀和后缀和
#include#include#include#includeusing namespace std;const int maxn=1e5+10;int n,a[maxn],pre[maxn],nex[maxn];int main(){ while(~scanf("%d",&n)) { for(int i=1; i<=n; i++)原创 2016-07-22 16:31:54 · 1044 阅读 · 1 评论 -
manacher
#include #include#include#include#includeusing namespace std;const int maxn=1e6+10;char str[maxn],s[maxn*2];int p[maxn*2];void rebuild(){ int n=strlen(str); s[0]='$'; s[1]='#';原创 2016-07-21 11:55:37 · 224 阅读 · 0 评论