九度1069 查詢學生資訊(折半 線性查詢)

2021-06-28 00:51:10 字數 1457 閱讀 8166

題目1069:查詢學生資訊

時間限制:1 秒

記憶體限制:32 兆

特殊判題:否

提交:7855

解決:2124

題目描述:輸入n個學生的資訊,然後進行查詢。

輸入:輸入的第一行為n,即學生的個數(n<=1000)

接下來的n行包括n個學生的資訊,資訊格式如下:

01 李江 男 21

02 劉唐 男 23

03 張軍 男 19

04 王娜 女 19

然後輸入乙個m(m<=10000),接下來會有m行,代表m次查詢,每行輸入乙個學號,格式如下:

02

03

01

04

輸出:輸出m行,每行包括乙個對應於查詢的學生的資訊。

如果沒有對應的學生資訊,則輸出「no answer!」

樣例輸入:

4

01 李江 男 21

02 劉唐 男 23

03 張軍 男 19

04 王娜 女 19502

0301

0403

樣例輸出:

02 劉唐 男 23

03 張軍 男 19

01 李江 男 21

04 王娜 女 19

03 張軍 男 19

2023年清華大學計算機研究生機試真題

答疑:

方法1:直接利用陣列線性查詢,時間複雜度o(n*m)

方法2:利用折半查詢,時間複雜度o(nlogn  (排序) +  m*logn);

//方法1:

#include#include#includeusing namespace std;

struct infobuf[1010];

int main()

scanf("%d",&m);

char x[1010];

for(i=1;i<=m;i++)

}if(j==n+1)

} }return 0;

}//方法2

#include#include#includeusing namespace std;

struct student

}buf[1000];

int main()

else if(tmp>0)

else base=mid+1;

}if(ans==-1)

else printf("%s %s %s %d\n",buf[ans].no,buf[ans].name,buf[ans].***,buf[ans].age);

} }return 0;

}

九度OJ 1069 查詢學生資訊 (模擬)

題目1069 查詢學生資訊 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 7836 解決 2116 題目描述 輸入n個學生的資訊,然後進行查詢。輸入 輸入的第一行為n,即學生的個數 n 1000 接下來的n行包括n個學生的資訊,資訊格式如下 01 李江 男 21 02 劉唐 男 23 ...

九度oj 題目1069 查詢學生資訊 字典

鏈結 題目描述 輸入n個學生的資訊,然後進行查詢。輸入 輸入的第一行為n,即學生的個數 n 1000 接下來的n行包括n個學生的資訊,資訊格式如下 01 李江 男 21 02 劉唐 男 23 03 張軍 男 19 04 王娜 女 19 然後輸入乙個m m 10000 接下來會有m行,代表m次查詢,每...

題目1069 查詢學生資訊

題目描述 輸入n個學生的資訊,然後進行查詢。輸入 輸入的第一行為n,即學生的個數 n 1000 接下來的n行包括n個學生的資訊,資訊格式如下 01 李江 男 21 02 劉唐 男 23 03 張軍 男 19 04 王娜 女 19 然後輸入乙個m m 10000 接下來會有m行,代表m次查詢,每行輸入...