摘要:模式匹配,kmp算法,复杂度O(m+n)返回匹配位置,-1表示匹配失败,传入匹配串和模式串和长度可更改元素类型,更换匹配函数 1 #define MAXN 10000 2 #define _match(a,b) ((a)==(b)) 3 typedef char elem_t; 4 int pat_match(int ls,elem_t* str,int lp,elem_t* pat){ 5 int fail[MAXN]={-1},i=0,j; 6 for (j=1;j<lp;j++){ 7 for (i=fail[j-1];i>=0&&!_match(pat[..
阅读全文
摘要://加入一组精灵图片,里面包含5附图片 CCSpriteSheet * pMainMenu = [CCSpriteSheet spriteSheetWithFile:@"MainMenu.png"]; [self addChild:pMainMenu]; //从刚才的pMainMenu 加载精灵材质 m_pPicPoint.m_pContinuePlay = [CHoudleForTouch HoudleForTouchWithRect:CGRectMake(0, 0, 165, 30) spriteManager:pM...
阅读全文
摘要:1. 继承@interface MyView : UIView {2. 实现- (void)drawRect:(CGRect)rect3. 调用addSubView把新生成的view加入进来显示:addSubView[window addSubview:viewController.view];4.示例代码 1 - (void)drawRect:(CGRect)rect { 2 // create the bitmap context 3 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 4 CGCo...
阅读全文
摘要:原理不复杂:1. 创建一个bitmap context2. 在bitmap context上画东西3. 通过bitmap context生成一个CGImage4. 通过UIImage把CGImage内容画到屏幕上示例代码: // create the bitmap context CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(nil,27,27,8,0, colorSpace,kCGImageAlphaPremultip...
阅读全文
摘要:单源最短路径,用于路权相等的情况,dijkstra优化为bfs,正向表形式,复杂度O(m),求出源s到所有点的最短路经,传入图的大小n和正向表list,buf,边权值len,返回到各点最短距离min[]和路径pre[],pre[i]记录s到i路径上i的父结点,pre[s]=-1 1 #define MAXN 200 2 #define inf 1000000000 3 typedef int elem_t; 4 5 void dijkstra(int n,int* list,int* buf,elem_t len,int s,elem_t* min,int* pre){ 6 int ...
阅读全文
摘要:对连接矩阵求解最短路径有多种方法,用于路权相等的情况,dijkstra优化为bfs,邻接表形式,复杂度O(m),求出源s到所有点的最短路经,传入图的大小n和邻接表list,边权值len,返回到各点最短距离min[]和路径pre[],pre[i]记录s到i路径上i的父结点,pre[s]=-1。 1 #define MAXN 200 2 #define inf 1000000000 3 typedef int elem_t; 4 struct edge_t{ 5 int from,to; 6 edge_t* next; 7 }; 8 void dijkstra(int n,edge...
阅读全文
摘要:在编程中我们常常要使用素数来解决很多的问题,当然求解素数的方法也是有很多,在这里我们先研究一个比较好的求解素数的方法,并将其制作成一个比较容易管理的素数表,方便以后的使用和处理。int plist[10000],pcount=0;int prime(int n){ int i; if ((n!=2&&!(n%2))||(n!=3&&!(n%3))||(n!=5&&!(n%5))||(n!=7&&!(n%7))) return 0; for (i=0;plist[i]*plist[i]<=n;i++) if (!(n%plis
阅读全文
摘要:1 #include<string.h> 2 #define MAXN 10000 3 int lastdigit(char*buf) 4 { 5 const int mod[20] = {1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; 6 int len = strlen(buf),a[MAXN],i,c,ret = 1; 7 if(len == 1) 8 return mod[buf[0]-'0']; 9 for(i = 0;i<len;i++)10 a[i] = buf[len-1-i]-'0';11
阅读全文