百度之星2009第二場第一題(附個人寫的一個程序,測試得91分)

1.Sorry,打錯了(250分)

題目描述

龍先生是一位著名的記者,平時最喜歡報道一些鮮爲人知的故事。最近,由於聽說索馬里海盜猖獗,他打算實地探訪,做一個深入的調查。

龍先生聯繫了索馬里當地的一些朋友,做了周密的計劃——坐船從三亞出發,越過南海,趟過印度洋,最後到達索馬里海域的亞丁灣。可就在船離海岸僅10公里時,突然一夥海盜突襲客船,所有人都被劫持到了索馬里城內。

在人質被運送到“海盜基地”的途中,龍先生憑着多年的經驗,乘海盜不注意,躍下了卡車,在無數砰砰的槍聲中,沒命的向外跑去。跑了幾分鐘後,龍先生突然看到一個電話廳。他迅速向電話廳奔去,想打電話向住在索馬里的朋友求助。然而,隨着追趕腳步聲的臨近,龍先生估算留給自己打電話的時間最多30秒,決不容許撥錯電話。

遺憾的是,越是這種危機的時候,越容易犯錯。身爲“智者”的您,請幫龍先生算一算:當他打電話給一位朋友的時候,恰好打給了另外一個人(不一定是他朋友)的概率是多少?已知索馬里是一個有不超過10萬人的小城,電話號碼只有6位。

輸入格式

第1行:索馬里人數n。n <= 100000

接下來的n行:所有人的電話號碼

接下來的10行:一個10*10錯按表,表示按a鍵時按成b鍵的概率(第一行第一列表示按0時按成0的概率,第一行第二列表示按0時按成1的概率。所有的概率用整數0~10表示,即實際概率要除以10)

下一行:索馬里城中你的朋友人數m。m <= n。

接下來的m行:每個朋友的電話號碼。

輸出格式

打給你的每一個朋友時候,打通其他人的電話的概率(每行一個概率,乘以10^6 後用整數表示)

輸入樣例

5

267535

229127

693606

861879

902375

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

5

267535

229127

693606

861879

902375

輸出樣例

4

4

4

4

4

測試數據

共10個測試點,基本參數如下表:

 

測試點編號 n m
1 10 5
2 50 25
3 300 100
4 2000 1000
5 8000 3000
6 30000 10000
7 50000 10000
8 100000 20000
9 100000 50000
10 100000 100000

 

 

 

#include <stdio.h>
#define MAX 100000
int main()
{
 int n,m,sum=0;
 int i=0,j;
 int g[10][10];
 char d_r[MAX][6];
 char d_f[MAX][6];
 scanf("%d",&n);
 while(i<n){
  scanf("%s",d_r[i]);
  i++;
 }
 for(i=0;i<10;i++)
  for(j=0;j<10;j++)
   scanf("%d",&g[i][j]);
 i=0;
 scanf("%d",&m);
 while(i<m){
  scanf("%s",d_f[i]);
  i++;
 }
 i=0;
 while(i<m){
  for(j=0;j<n;j++){
   sum+=g[d_f[i][0]-48][d_r[j][0]-48]*g[d_f[i][1]-48][d_r[j][1]-48]/
   *g[d_f[i][2]-48][d_r[j][2]-48]*g[d_f[i][3]-48][d_r[j][3]-48]/
   *g[d_f[i][4]-48][d_r[j][4]-48]*g[d_f[i][5]-48][d_r[j][5]-48];
  }
  sum-=g[d_f[i][0]-48][d_f[i][0]-48]*g[d_f[i][1]-48][d_f[i][1]-48]/
   *g[d_f[i][2]-48][d_f[i][2]-48]*g[d_f[i][3]-48][d_f[i][3]-48]/
   *g[d_f[i][4]-48][d_f[i][4]-48]*g[d_f[i][5]-48][d_f[i][5]-48];
  printf("%d/n",sum);
  sum=0;
  i++;
 }
 return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章