小甲鱼 发表于 2013-3-14 02:13:34

第三十六讲 KMP算法(养成篇)(视频+课件)

该讲座视频下载地址:

http://blog.fishc.com/2274.html


该讲座所需课件:





注:VIP会员享有免费下载本站所有资源的特权!

友情提示:通过购买鱼C光盘/优盘打包(具体内容)均可加入VIP终身会员^_^



沉思者 发表于 2013-3-14 07:17:56

狂顶啊!哈哈~

沉思者 发表于 2013-3-14 07:18:28

kmp算法终于出来了

七月之变 发表于 2013-3-14 11:30:00

下载没人回复的啊?顶起

ξ_飄¢樰ぺ 发表于 2013-3-14 15:18:11

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

零食 发表于 2013-3-14 15:31:51

帮忙顶了,支持甲鱼:lol

金力 发表于 2013-3-14 15:33:28

帮忙顶了,支持甲鱼

寄意寒星 发表于 2013-3-16 00:14:43

沉思者 发表于 2013-3-14 07:18 static/image/common/back.gif
kmp算法终于出来了

初学者,请问KMP是什么意思呀?

寄意寒星 发表于 2013-3-16 00:15:19

金力 发表于 2013-3-14 15:33 static/image/common/back.gif
帮忙顶了,支持甲鱼

我也顶一下

沉思者 发表于 2013-3-18 13:08:03

寄意寒星 发表于 2013-3-16 00:14 static/image/common/back.gif
初学者,请问KMP是什么意思呀?

KMP就是大名鼎鼎的看毛片算法

天天向上啊去 发表于 2013-3-24 15:14:19

认真学习中

wapding 发表于 2013-4-14 09:35:20

强烈支持楼主ing……{:1_1:}

davi60 发表于 2015-11-11 22:36:29

11111111111111111111111

小甲鱼的小甲鱼 发表于 2019-3-19 22:04:16

#include<stdio.h>
int count=0;
int notDanger(int row,int j,int (*a))
{
        int flag=0,flag2=0,flag3=0,flag4=0,flag5=0,k;
        //判断同列是否安全
        for(int i=0;i<8;i++)
        {
                if(*(*(a+i)+j)!=0)
                {
                        flag=1;
                        break;
                }       
       
               
        }
        //判断左上方是否安全
        for(int i=row,k=j;i>=0&&k>=0;i--,k--)
        {
                if(*(*(a+row)+k)!=0)
                {
                        flag2=1;
                        break;
                }
               
        }
        //判断左上方是否安全
        for(int i=row,k=j;i<8&&k<8;i++,k++)
        {
                if(*(*(a+row)+k)!=0)
                {
                        flag3=1;
                        break;
                }
       
        }
        //判断右上方是否安全
        for(int i=row,k=j;i>=0&&k<8;i--,k++)
        {
                if(*(*(a+row)+k)!=0)
                {
                        flag4=1;
                        break;
                }
               
        }
        //判断左下方是否安全
        for(int i=row,k=j;i<8&&k>=0;i++,k--)
        {
                if(*(*(a+row)+k)!=0)
                {
                        flag5=1;
                        break;
                }
               
        }
        if(flag || flag2 || flag3 || flag4 || flag5)
        {
                return 0;
        }
        else
        {
                return 1;
        }
       
}
void EightQueen(int row,int n,int (*a))
{
        int a1;
        for(int i=0;i<8;i++)
        {
                for(int j=0;j<8;j++)
                {
                        a1=*(*(a1+i)+j);
                }
        }
        if(8==row)
        {
                printf("第%d次\n",count+1);
                for(int i=0;i<8;i++)
                {
                        for(int j=0;j<8;j++)
                        {
                                printf("%d ",a);
                        }
                        printf("\n");       
                }
                printf("\n");       
                count++;
        }
        else
        {
                for(int j=0;j<n;j++)
                {
                        if(notDanger(row,j,a))
                        {
                                for(int i=0;i<8;i++)
                                {
                                        *(*(a1+row)+i)=0;       
                                }
                                *(*(a1+row)+j)=-1;       
                        }
                }
                EightQueen(row+1,n,a1);
                       
               
        }
       
}
int main()
{
        int a;
        for(int i=0;i<8;i++)
        {
                for(int j=0;j<8;j++)
                {
                        a=0;
                }
        }
        EightQueen(0,8,a);
        printf("总共有%d种方法解决\n",count);
        return 0;
}
页: [1]
查看完整版本: 第三十六讲 KMP算法(养成篇)(视频+课件)