24h購物| | PChome| 登入
2009-06-01 06:54:18| 人氣443| 回應0 | 上一篇 | 下一篇

95北市資訊學科能力競賽 送愛心到肯大亞 (Care)

推薦 0 收藏 0 轉貼0 訂閱站台

作法:DFS搜索節點

/****************************************************/

#include<stdio.h>
#include<stdlib.h>
double map[21][21]={0},ans=1;
int n,start,end,flag[21]={0};
void DFS(int now,double sum)
{
 int a;
  if(now==end)
   ans=ans*(1-sum);
   for(a=1;a<=n;a++)
    if(flag[a]==0&&map[now][a]!=0)
     {
      flag[a]=1;
      DFS(a,sum*map[now][a]);
      flag[a]=0;
     }
}
main()
{
 while(scanf("%d",&n)==1)
  {
   int a,b,c;
    for(a=1;a<=n;a++)
     for(b=1;b<=n;b++)
      scanf("%lf",&map[a][b]);
    scanf("%d %d",&start,&end);
    ans=1;
    flag[start]=1;
    DFS(start,1);
    flag[start]=0;
    printf("%.5lf\n",1-ans);
  }
 return 0;
}

 

台長: 來源不明
人氣(443) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:97北縣賽-4-金幣問題
此分類上一篇:2008 海峽兩岸青少年程式設計競賽 雷曼兔

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文