sdutacm 期末考試 素數鍊錶

2021-07-31 22:27:55 字數 2627 閱讀 9512

素數鍊錶

time limit: 1000ms memory limit: 65536kb

problem 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"

所有輸出均不包括引號。

example input

2 1 2

0 5

1 6 3

1 2 3 3 4 5

1 1

4example output

invalid operation

deleted 0

all completed. it』s not a prime linked list

deleted 1

failed to delete 2

deleted 4

all completed. it』s a prime linked list

hint

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

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

author

「2016級《程式設計基礎(b)ii》期末上機考試-第一場」blue

學長題解:

題目坑點:因為這個題是鍊錶題,所以卡時間卡的厲害,首先判斷素數要用到開平方,其次鍊錶在用完之後要釋放這裡容易 runtime error,還有初始鍊錶時要一下子建下來,乙個乙個插入會超時,其次鍊錶長度top要用引用值,不然無法直接改變,1,0不是素數要特判,與此類似的還有螺旋填數,要把矩陣初始為-1,否則一直wr,最好加乙個列印函式,每進行一次操作就列印一次,盡量把操作都分解為函式。先寫這些吧

下面是ac**

#include 

#include

using namespace std;

struct node

;bool pan(int num)

}return f;

}void insert(node*head,int num)

node* build(node*head,int n)

return head;

}void show(node*head)

coutif(!pan(p->data))

else

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

//show(head);

}void zui(node*head,int n)}}

if(f)

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

else

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

}else

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

}int main()

//show(head);

printf("#%d\n",o);

int top = n;

while(q--)

else

}zui(head,top);

node*p = head->next;

//node

*q; while(p)

}// show(head);

return

0;}

生活感想 期末考試

期末考試成績出來了 差強人意 有所進步 但還是打不到最好的水平 小花在旁邊長吁短嘆 真受不了 我最近不想談成績 一談成績就容易惱 但是現在成績出來了 也該寫寫 現在心裡平靜了很多 總而言之 除了物理壓力很大 粗心錯了一道大題12分嗷嗷嗷要知道我和小花差了1.8分就八個人啊tut 其他的各項還好 數學...

期末考試題

1.假設屬性income的最大最小值分別是16000元和29000元。利用最大最小規範化的方法將屬性的值對映到0至1的範圍內。對屬性income的26000元將被轉化為 0.769 26000 16000 29000 16000 0.769 2.由8人組成的科研團隊的工資分別為 10,16,20,2...

757 期末考試

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 馬上就要考試了,小t有許多作業要做,而且每個老師都給出來了作業要交的期限,如果在規定的期限內沒 交作業就會扣期末成績的分數,假設完成每門功課需要一天的時間,你能幫助小t扣除的分數最小嗎?輸入輸入n,表示n門功課 n 2000 接...