摘要: KMP算法(http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html)在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa P:ababaBF算法匹配的步骤如下 i=0 i=1 i=2... 阅读全文
posted @ 2012-07-15 23:07 xxx0624 阅读(617) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<cmath>#include<algorithm>using namespace std;#define N 50005int map[N];int n;bool cmp(int a,int b){ return abs(a)<abs(b);}int main(){ __int64 sum_t,used_t; int i,j,ans; while(cin>>sum_t>>n){ for(i=1;i<=n;i++) cin>>map[i];//scanf(&q 阅读全文
posted @ 2012-07-15 10:59 xxx0624 阅读(276) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX 30struct g{ int x; int y;}path[MAX+100];const int d[8][2] = {{-1, -2}, {1, -2}, {-2, -1}, {2, -1}, {-2, 1}, {2, 1}, {-1, 2}, {1, 2}};//这里就处理好了字典序的问题,为什么?int map[MAX][MAX];int color[MAX][MAX];int p,q,ok;int out(int x,i 阅读全文
posted @ 2012-07-14 09:04 xxx0624 阅读(196) 评论(0) 推荐(0) 编辑
摘要: *贪心,符合最优子结构性质。5个月统计一次都亏空,那么有5种情况: 1、若SSSSD亏空,那么全年可能最大盈利情况为: SSSSDSSSSDSS 2、若SSSDD亏空,那么全年可能最大盈利情况为:SSSDDSSSDDSS 3、若SSDDD亏空,那么全年可能最大盈利情况为: SSDDDSSDDDSS 4、若SDDDD亏空,那么全年可能最大盈利情况为: SDDDDSDDDDSD 5、若DDDDD亏空,那么全年可能最大盈利情况为: DDDDDDDDDDDD*/#include<stdio.h>int main(){ double s,d,ans; w... 阅读全文
posted @ 2012-07-14 08:59 xxx0624 阅读(1211) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<math.h>#define MAX 10105int prime[1300]={0},s[10105]={0};int isPrime(int n){ int i; for(i=2;i<=sqrt(1.0*n);i++) if(n%i==0) return 0;//0 is not prime return 1;//1 is prime}int main(){ int i,j,k,n,ans,sum; k=0; for(i=2;i<=MAX;i++) { if(s[i]==0) prime[k++]=i; 阅读全文
posted @ 2012-07-14 08:56 xxx0624 阅读(660) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>int main(){ int i,sum,temp; char ch[260]; while(1) { //scanf("%s",ch); gets(ch); if(strcmp(ch,"#")==0) break; sum=0; temp=1; for(i=0;i<strlen(ch);i++) { if(ch[i]>='A'&&ch[i]<='Z') sum+=(ch[i]-'A&# 阅读全文
posted @ 2012-07-14 08:50 xxx0624 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题意:提供给许多的点,这些点的坐标位置全都知道,知道起点终点,求起点到终点最少经过几个点,并且两两之间不能超过一定的长度BFS广度优先搜索就是从起点开始依次访问与之邻接的符合条件的点,然后再按照顺序访问这些邻接的点的符合条件的邻接点。。。。如此下去;BFS能做到求图的最短路径,但是要保证这些路径都相等。通常用队列来实现Q={起点s}标记s已被访问while (Q非空) { 取Q队首元素u; u出队; 所有与u相邻且未被访问的点进入队列;//可以在这里对所要求的目的进行处理标记u为已访问; } #include<cstdio>#include<cstdlib>#inclu 阅读全文
posted @ 2012-07-13 08:20 xxx0624 阅读(417) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<stdlib.h>struct g{ int l; int w; bool t;}sticks[2505];int cmp(const void *a,const void *b){ struct g *c=(g *)a; struct g *d=(g *)b; if(c->l!=d->l) return c->l-d->l; else return c->w-d->w;}int main(){ int i,j,t,n; int ans,temp; scanf("%d&qu 阅读全文
posted @ 2012-07-12 13:01 xxx0624 阅读(1200) 评论(1) 推荐(0) 编辑
摘要: (1) struct{ int x; int y; }test1; 好,定义了 结构 test1,test1.x 和 test1.y 可以在语句里用了。(2) struct test {int x; int y; }test1; 好,定义了 结构 test1,test1.x 和 test1.y 可以在语句里用了。与 1 比,省写 了 test(3) typedef struct test {int x; int y; }text1,text2; 只说了 这种结构 的(类型)别名 叫 text1 或叫 text2真正在语句里用,还要写:text1 test1;然后好用 test1.x test. 阅读全文
posted @ 2012-07-11 16:16 xxx0624 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb;//这多数不符合我们的意图,它只声明了一个指向字符变量的指针,//和一个字符变量;以下则可行:typedef char* PCHAR;PCHAR pa, pb;这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。用途二:用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名 阅读全文
posted @ 2012-07-11 16:07 xxx0624 阅读(202) 评论(0) 推荐(0) 编辑