亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xdsyyr.c

?? 野人與修道士問題 這是一個古典的問題.假設有n個修道士和n個野人準備渡河,但只有一條能容納c人的小船,為了防止野人侵犯修道士,要求無論在何處,修道士的個數不得少于野人的人數(除非修道士個數為0)
?? C
字號:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

/////////////////////////////////////////////////////////////////////
typedef struct 
{
 int xds;//修道士
 int ymr;//野蠻人
 int zt;//狀態
}DataType;

typedef struct Node
{
 int dest;
 struct Node *next;
}Edge;

typedef struct
{
 DataType data;
 int sorce;
 Edge *adj;
 int pre;//指向此點的點的序號
}AdjLHeight;

typedef struct
{
 AdjLHeight a[10000];
 int numOfVerts;
 int numOfEdges;
}AdjLGraph;
//////////////////////////////////////////////////////////////////
void AdjInitiate(AdjLGraph *G)
{
 int i;

 G->numOfEdges=0;
 G->numOfVerts=0;
 for(i=0;i<10000;i++)
 {
  G->a[i].sorce=i;
  G->a[i].adj=NULL;
  G->a[i].data.zt=-1;
  G->a[i].pre=-1;
 }
}

void AdjDestroy(AdjLGraph *G)
{
 int i;
 Edge *p,*q;
 for(i=0;i<G->numOfVerts;i++)
 {
  p=G->a[i].adj;
  while(p!=NULL)
  {
   q=p->next;
   free(p);
   p=q;
  }
 }
}

void InsertVertex(AdjLGraph *G, int i, DataType vertex)
{
 if( i>=0 && i<10000 )
 {
  G->a[i].data.xds=vertex.xds;
  G->a[i].data.ymr=vertex.ymr;
  G->a[i].data.zt=vertex.zt;
  G->numOfVerts++;
 }
 else printf("結點越界!\n");
}

void InsertEdge(AdjLGraph *G,int v1,int v2)
{
 Edge *p;
 if(v1<0||v1>=G->numOfVerts||v2<0||v2>G->numOfVerts)
 {
  printf("參數v1或v2越界出錯!");
  exit(0);
 }
 p=(Edge *)malloc(sizeof(Edge));
 p->dest=v2;
 p->next=G->a[v1].adj;
 G->a[v1].adj=p;
 G->numOfEdges++;
}

////////////////////////////////////////////////////////////////////

 int n,c;
 DataType fa[10000];
////////////////////////////////////////////////////////////////////


int jiancha(DataType x)     //檢查當前情況下,修道士是否安全
{
    if ((x.xds>=x.ymr||x.xds==0)&&((n-x.xds)>=(n-x.ymr)||x.xds==n)&&x.xds>=0&&x.xds<=n&&x.ymr>=0&&x.ymr<=n)
       return 1;
    else
       return 0;
}

int findfa(DataType x)     //生成在船上修道士仍安全的幾種情況;
{
 int i=0,a,b,t=0;
 if(x.zt)
 {
  a=0;b=c-a; 
  while (a+b>=1)
   {
    t++;
    while (b>=0)
    {
     
     fa[i].xds=a;
     fa[i].ymr=b;
     i++;
     a++;
     b--;
    }
    a=0;
    b=c-a-t;
   }
 }
 else
 {
  a=1;b=0;t=0;
  while (a+b<=c)
  {
   t++;
   while (a>=0)
   {     
    fa[i].xds=a*(-1);
    fa[i].ymr=b*(-1);
    i++;
    a--;
    b++;
   } 
   a=fa[0].xds*(-1)+t;
   b=0;
  }
 }
 return i; 
}


int print(AdjLGraph *p,int g)     //打印安全渡河的過程
{
    DataType b[1000];
    int i=0;
    while (g!=-1)
    {
       b[i++]=p->a[g].data;
       g=p->a[g].pre;
    }

    while ((--i)>-1)     
    {
          printf("( %d %d %d )",b[i].xds,b[i].ymr,b[i].zt);
          if (!(b[i].xds==0&&b[i].ymr==0&&b[i].zt==0)) 
          {
     if (b[i].zt==1)
   printf(" → ( %d %d ) → ( %d %d 0 )\n",b[i].xds-b[i-1].xds,b[i].ymr-b[i-1].ymr,b[i-1].xds,b[i-1].ymr);
   else printf(" ← ( %d %d ) ← ( %d %d 1 )\n",(b[i].xds-b[i-1].xds)*(-1),(-1)*(b[i].ymr-b[i-1].ymr),b[i-1].xds,b[i-1].ymr);
          }
          else printf("\n");    
    }
    printf("渡河成功!\n");
    
 return 1;
}

void work(AdjLGraph *p)//廣搜建立表
{
 DataType tem;
 int i,flag1,g=0,j,count=0,k=0,t;
 while (p->a[k].data.zt!=-1)
 {
        j=findfa(p->a[k].data);
        for (i=0;i<j;i++)
  {
   tem.xds=p->a[k].data.xds-fa[i].xds;
   tem.ymr=p->a[k].data.ymr-fa[i].ymr;
   tem.zt=1-p->a[k].data.zt;
   if (jiancha(tem))
   {
    flag1=1;
    t=k;
                while (t!=-1)
    {
     if(tem.xds==p->a[t].data.xds&&tem.ymr==p->a[t].data.ymr&&tem.zt==p->a[t].data.zt)
     {
      flag1=0;
         break;                
     }
     t--;
    }
   
                if(flag1==1)
    {
     
     g++;
     p->a[g].pre=k;
     InsertVertex(p,g,tem);
     InsertEdge(p,k,g);
     if (tem.xds==0&&tem.ymr==0&&tem.zt==0)
     {
      count++;
      print(p,g);
     }
    }
   }
  }
  k++;
 }  

 if (count==0)
  printf("不能渡河!\n");
 else
  printf("有%d種渡河方式。\n",count);
}

////////////////////////////////////////////////////////////////

main()
{
 AdjLGraph G;
 DataType first;
 
 while(1)
 {
  printf("請輸入野蠻人和修道士人數N:");
  scanf("%d",&n) ;
  if(n==0) break;
  printf("請輸入船可乘人數C:");
  scanf("%d",&c) ;
  AdjInitiate(&G);
  first.xds=n;
  first.ymr=n;
  first.zt=1;
  InsertVertex(&G, 0, first);

  work(&G);
 
  AdjDestroy(&G);
 }
  system("pause");

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播成人在线| 美女视频网站久久| 国产日韩精品视频一区| 日韩免费成人网| 日韩一区二区三区视频在线| 欧美日韩高清一区| 欧美久久久久免费| 欧美精品一级二级| 日韩视频不卡中文| 精品电影一区二区| 久久午夜电影网| 亚洲国产成人一区二区三区| 国产精品拍天天在线| 国产精品蜜臀av| 亚洲三级电影网站| 婷婷综合在线观看| 麻豆精品一区二区| 国产成人免费视频网站 | 一区二区三区在线观看国产| 蜜桃一区二区三区在线| 日本一不卡视频| 九九精品视频在线看| 成人一区二区三区中文字幕| 99精品欧美一区| 欧美久久免费观看| 久久网这里都是精品| 亚洲少妇中出一区| 免费人成黄页网站在线一区二区| 国模大尺度一区二区三区| 成人理论电影网| 欧美日韩免费电影| 久久久久九九视频| 亚洲一二三四在线观看| 国产精品一线二线三线精华| 99精品国产91久久久久久| 91精品免费在线| 国产精品电影一区二区三区| 日日欢夜夜爽一区| 不卡的电视剧免费网站有什么| 欧洲激情一区二区| 国产片一区二区三区| 亚洲成人1区2区| av在线不卡网| 精品国产制服丝袜高跟| 一区二区三区欧美在线观看| 国产成人自拍在线| 欧美精品在欧美一区二区少妇| 国产精品网站在线播放| 日本一区中文字幕| 欧美午夜精品久久久| 国产欧美一区二区三区鸳鸯浴| 日韩国产在线观看| 91国偷自产一区二区使用方法| 久久久国产精品麻豆| 人人爽香蕉精品| 欧美午夜精品久久久久久孕妇| 国产精品麻豆久久久| 久久91精品国产91久久小草| 欧美日韩亚洲丝袜制服| 尤物av一区二区| 99精品国产一区二区三区不卡| 国产亚洲一区二区三区在线观看| 麻豆成人91精品二区三区| 欧美亚日韩国产aⅴ精品中极品| 中文字幕免费在线观看视频一区| 精品一区二区三区免费视频| 日韩欧美美女一区二区三区| 亚洲mv在线观看| 欧美精品日韩精品| 香蕉乱码成人久久天堂爱免费| 一本到三区不卡视频| 一色屋精品亚洲香蕉网站| 风间由美性色一区二区三区| 久久久久久久综合| 国产91精品入口| 国产日韩欧美综合一区| 国产99一区视频免费| 久久久不卡网国产精品二区| 国产精品系列在线观看| 日本一区二区三区四区| 成人午夜大片免费观看| 亚洲情趣在线观看| 欧美伊人久久久久久午夜久久久久| 亚洲狠狠丁香婷婷综合久久久| 91国模大尺度私拍在线视频| 亚洲国产日韩a在线播放性色| 欧美日韩精品一区二区三区| 日韩av电影免费观看高清完整版在线观看| 555夜色666亚洲国产免| 久久精品国内一区二区三区| 欧美精品一区二区三区蜜臀| 国产成人av一区二区| 国产精品久久久久久久久免费桃花| 99久久国产综合色|国产精品| 亚洲精品国产成人久久av盗摄| 欧美精品三级在线观看| 久久99久久久欧美国产| 国产情人综合久久777777| 91在线视频官网| 香蕉成人伊视频在线观看| 精品国产99国产精品| 成人深夜视频在线观看| 亚洲成人精品影院| 久久久久久久久免费| 一本一道综合狠狠老| 日本欧美久久久久免费播放网| 久久色在线观看| 91国产福利在线| 国产麻豆一精品一av一免费| 亚洲夂夂婷婷色拍ww47| 精品国产伦一区二区三区免费| av一二三不卡影片| 首页欧美精品中文字幕| 国产精品第五页| 日韩精品中文字幕一区二区三区| 99免费精品在线| 老司机午夜精品| 一区二区三区四区中文字幕| 精品国产一区二区三区久久影院| 一本久久精品一区二区| 韩日精品视频一区| 亚洲第一二三四区| 日韩精品电影在线| 国产精品三级电影| 欧美一区二区三区日韩视频| 最新热久久免费视频| 欧美人动与zoxxxx乱| 成人国产电影网| 精品中文字幕一区二区| 亚洲不卡一区二区三区| 国产精品传媒入口麻豆| 欧美精品一区二区在线播放| 欧美丰满嫩嫩电影| 一本色道亚洲精品aⅴ| 欧美成人女星排行榜| 91国模大尺度私拍在线视频| 国产高清亚洲一区| 国产一区在线不卡| 美女视频免费一区| 日韩电影在线一区二区| 亚洲一区二区四区蜜桃| 亚洲日本在线视频观看| 亚洲国产精品成人综合| 国产亚洲精品福利| 久久众筹精品私拍模特| 精品少妇一区二区三区视频免付费| 欧美午夜免费电影| 欧美日韩国产不卡| 在线播放国产精品二区一二区四区 | 精品国产一区二区三区av性色| 精品视频一区 二区 三区| 91网站视频在线观看| 99久久国产综合色|国产精品| 99热在这里有精品免费| 波多野结衣欧美| 91免费精品国自产拍在线不卡| 暴力调教一区二区三区| 91在线观看一区二区| a亚洲天堂av| 在线一区二区视频| 欧美日韩综合不卡| 欧美一区二区在线观看| 精品福利二区三区| 国产精品婷婷午夜在线观看| 国产精品国产三级国产有无不卡 | 韩国一区二区在线观看| 久久成人免费网站| 国产精品一级黄| 不卡一区二区三区四区| 色诱亚洲精品久久久久久| 欧美日韩精品电影| 日韩精品一区二区三区老鸭窝| 久久色在线视频| 亚洲精品中文在线| 久久精品国产免费看久久精品| 国产一区二区三区精品欧美日韩一区二区三区| 狠狠色丁香婷综合久久| 欧美日本国产一区| 久久夜色精品国产噜噜av| 国产午夜亚洲精品不卡| 亚洲精品少妇30p| 免费不卡在线观看| 99久久国产免费看| 日韩一卡二卡三卡四卡| 国产三级欧美三级日产三级99 | 一区二区三区电影在线播| 男人的j进女人的j一区| youjizz久久| 欧美一区二区三区四区高清| 欧美国产一区二区| 天天射综合影视| 不卡一区在线观看| 欧美一区日韩一区| 亚洲少妇屁股交4| 狠狠色综合播放一区二区| 在线视频你懂得一区| 久久精品亚洲麻豆av一区二区 | 国产日本欧美一区二区| 天天综合日日夜夜精品| 成人午夜激情在线|