素數鍊錶 SDUT OJ 3873

2021-10-04 03:51:22 字數 2167 閱讀 1550

**

description

我們定義素數鍊錶為元素全部是素數的鍊錶。

給定乙個初始含有 n 個元素的鍊錶,並給出 q 次刪除操作,對於每次操作,你需要判斷鍊錶中指定位置上的元素,如果元素存在且不是素數則刪除。

在所有操作完成後你還需要檢查一下最終鍊錶是否是乙個素數鍊錶。

input

輸入資料有多組。第 1 行輸入 1 個整數 t (1 <= t <= 25) 表示資料組數。

對於每組資料:

第 1 行輸入 2 個整數 n (1 <= n <= 50000), q (1 <= q <= 1000) 表示鍊錶初始元素數量和操作次數

第 2 行輸入 n 個用空格隔開的整數(範圍 [0, 1000])表示初始鍊錶

接下來 q 行,每行輸入 1 個整數 i (1 <= i <= 50000),表示試圖刪除鍊錶中第 i 個元素

output

對於每組資料:

先輸出 1 行 「#c」,其中 c 表示當前是第幾組資料

對於每次刪除操作,根據情況輸出 1 行:

如果要刪除的位置不存在元素(位置超出鍊錶長度),則輸出 「invalid operation」

如果要刪除的位置存在元素且此位置的元素是非素數,則刪除元素並輸出 「deleted x」,其中 x 為成功刪除的數(必須為非素數才能刪除)

如果要刪除的位置存在元素且此位置的元素是素數,則輸出 「failed to delete x」,其中 x 為此位置上的數

刪除操作全部進行完畢後,則還需判斷該鏈表現在是否為乙個素數鍊錶。如果鍊錶非空且是素數鍊錶,則輸出 「all completed. it』s a prime linked list」,否則輸出 「all completed. it』s not a prime linked list」

所有輸出均不包括引號。

sample

input

21 205

16 3

1 2 3 3 4 511

4output

#1invalid operation

deleted 0

all completed. it』s not a prime linked list

#2deleted 1

failed to delete 2

deleted 4

all completed. it』s a prime linked list

hint

推薦直接複製貼上輸出語句字串到你的**中,以防手打敲錯。

鍊錶中第 1 個元素的位置為 1,第 2 個元素的位置為 2,以此類推。

#includeusing namespace std;

struct node

;int n;

int f(int k) //判斷素數

}if(book)

return 0;

else

return 1;

}}node *creat(int n) //建立順序鍊錶

return head;

}void del(node *head,int k) //刪除操作

if(f(p->data))

printf("failed to delete %d\n",p->data);

else

}}void pan(node *head) //判斷鍊錶是否非空且是素數鍊錶

else

p=p->next;

}if(cnt)

printf("all completed. it's not a prime linked list\n");

else

printf("all completed. it's a prime linked list\n");

}int main()

if(n) //鍊錶不為空 ,則進行素數鍊錶的判斷

pan(head);

else

printf("all completed. it's not a prime linked list\n"); }}

return 0;

}

SDUT OJ 不敢死隊問題 鍊錶

time limit 1000ms memory limit 65536k 有m個敢死隊員要炸掉敵人的乙個碉堡,誰都不想去,排長決定用輪迴數數的辦法來決定哪個戰士去執行任務。如果前乙個戰士沒完成任務,則要再派乙個戰士上去。現給每個戰士編乙個號,大家圍坐成一圈,隨便從某乙個戰士開始計數,當數到5時,對...

sdut oj1464 鍊錶 刪除指定元素

鍊錶 刪除指定元素 time limit 1000ms memory limit 65536k 有疑問?點這裡 題目描述 對於乙個給定的線性表,要求刪除線性表內的大於等於 min 且小於等於 max 的數,並輸出刪除後的線性表 要求 必須使用鍊錶做,否則不計成績!輸入輸入的第一行為乙個正整數 t,表...

SDUT OJ 資料結構實驗之鍊表九 雙向鍊錶

time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈...