摘要:
1 递归形式 2 3 int find(int x) 4 { 5 if(x!=f[x])f[x]=find(f[x]); 6 return f[x]; 7 } 8 9 10 非递归11 int find(int x)12 {13 if(f[x]==x)return x;14 int r=x;15 while(r!=f[r])16 {17 r=f[r];18 }19 int y=x,k;20 while(y!=f[y])21 {22 23 k=f[y];24 f[y... 阅读全文
摘要:
#include<stdio.h>int f[30005];int find(int x){ if(x!=f[x])f[x]=find(f[x]); return f[x];}int main(){ int n,m,i,j,k,a,b; while(scanf("%d%d",&n,&m),m+n) { for(i=0;i<=n;i++)f[i]=i; for(i=1;i<=m;i++) { scanf("%d",&k); scanf("%d",&a); in... 阅读全文
摘要:
1 strstr(a,b); 2 返回b串在a串中出现的第一个位置,否则返回NULL 3 4 5 #include<string.h> 6 #include<stdio.h> 7 const int N=100; 8 int m; 9 char dna[N][N];10 int search(char s[],int len)11 {12 int i;13 for(i=1;i<m;i++)14 {15 if(!strstr(dna[i],s))return 0;16 }17 return 1;18 }19 int main()20 ... 阅读全文
摘要:
1 void get_next(char *str) 2 { 3 int len=strlen(str); 4 next[0]=-1; 5 int j=0,k=-1;//k记录next[]; 6 7 while(j<len) 8 { 9 if(k==-1||str[j]==str[k])10 {11 k++;12 j++;13 if(str[k]!=str[j])14 next[j]=k;15 ... 阅读全文
摘要:
poj 3080 PKU 3080 Blue Jeans(kmp)?#include<stdio.h>#include<string.h>const int N=100;int n,m,next[N];char dna[N][N];void get_next(char *str,int len){ next[0]=-1; int j=0,k=-1;//k记录next[]; while(j<len) { if(k==-1||str[j]==str[k]) { k++; j++; ... 阅读全文
摘要:
#include<stdio.h>#include<string.h>const int N=100;int n,m,next[N];char dna[N][N];void get_next(char *str,int len){ next[0]=-1; int j=0,k=-1;//k记录next[]; while(j<len) { if(k==-1||str[j]==str[k]) { k++; j++; if(str[k]!=str[j]) ... 阅读全文