国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言通過深度優先搜索來解電梯問題和N皇后問題的示例

2020-01-26 14:34:20
字體:
來源:轉載
供稿:網友

N皇后問題
問題描述:
在n×n格的棋盤上放置彼此不受攻擊的n個皇后。按照國際象棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n后問題等價于再n×n的棋盤上放置n個皇后,任何2個皇后不妨在同一行或同一列或同一斜線上。
需求輸入:
給定棋盤的大小n (n ≤ 13)
需求輸出:
輸出有多少種放置方法。

#include <stdio.h>#include <math.h>#define MAX 101int total = 0;char m[MAX][MAX]; int is_ok(int s,int i,int *a){  int j ;  for(j=1 ; j< s ; j++)  if( (abs(i-a[j]) == abs(s-j)) || (i == a[j])) /*按行填入,所以只要檢查列和斜列是否有皇后即可*/    return 0 ;  return 1 ;}void nfind(int s,int n,int *a){  int i,p,q;  if( s > n)  {    total ++ ;    printf("========The num of %d is ========== ",total);     for(p=1 ; p<= n ; p++)    {      for(q=1; q<=n ; q++)        printf("%c ",m[p][q]);      printf(" ");    }      }  else  {    for(i=1 ;i<= n; i++)         if(is_ok(s,i,a))      {                  a[s]=i ;        m[s][i]='O' ;        nfind(s+1,n,a);        m[s][i]='*' ;            }       }}int main(void){  int n ,a[MAX]={0};  scanf("%d",&n);  memset(m,'*',sizeof(m));  nfind(1,n,a);  printf(" total=%d ",total);  system("pause");  return 0;}

電梯問題
問題描述:
呵呵,有一天我做了一個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且第i層樓(1<=i<=N)上有一個數字Ki(0<=Ki<=N)。電梯只有四個按鈕:開,關,上,下。上下的層數等于當前樓層上的那個數字。當然,如果不能滿足要求,相應的按鈕就會失靈。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),從一樓開始。在一樓,按“上”可以到4樓,按“下”是不起作用的,因為沒有-2樓。那么,從A樓到B樓至少要按幾次按鈕呢?
需求輸入:
輸入文件共有二行,第一行為三個用空格隔開的正整數,表示N,A,B(1≤N≤200, 1≤A,B≤N),第二行為N個用空格隔開的正整數,表示Ki。
需求輸出:
輸出文件僅一行,即最少按鍵次數,若無法到達,則輸出-1。
示例輸入:

5 1 53 3 1 2 5

示例輸出:

復制代碼 代碼如下:
3

實現代碼:

#include <stdio.h>#define MAX 501int a,b,n ;int v[MAX],flag=0 ;void trytofind(int x,int total){   if(x-v[x] == b || x+v[x] == b)   {       if ( total < flag || flag == 0)   flag = total ;       }   else   {    if(x+v[x] <= n)    trytofind(x+v[x],total+1);    if(x-v[x] >= 1)    trytofind(x-v[x],total+1);   }   }int main(void){  int i,j,k ;  scanf("%d %d %d",&n,&a,&b);  for(i=1 ; i<= n; i++)  scanf("%d",&v[i]);    trytofind(a,1) ;    if(flag)  printf("%d ",flag);  else  printf("-1 ");    system("pause");      return 0 ;} 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 庆安县| 织金县| 宿迁市| 云林县| 二连浩特市| 琼结县| 中阳县| 汤原县| 安乡县| 神农架林区| 建宁县| 保山市| 玛纳斯县| 凉山| 柳江县| 潼南县| 陇南市| 上饶市| 娄底市| 吐鲁番市| 陇南市| 七台河市| 健康| 宁明县| 康乐县| 太谷县| 黄龙县| 图片| 沙田区| 苗栗县| 黔西县| 元谋县| 阿瓦提县| 金昌市| 南阳市| 盐山县| 桃江县| 夏津县| 惠州市| 桃江县| 嘉荫县|