入門者筆記 神奇的模擬(1)

2021-09-12 06:37:23 字數 1053 閱讀 4530

原題位址

description

2023年後的世界,只存在想象中的恐怖動物與人類展開殊死戰鬥。

想象力足以改變一切。

為了拯救世界,saki醬獨自開始了冒險。

現在有 n 只化鼠阻擋在她的面前,每只化鼠有屬性值 ai, saki醬將使用技能將它們擊敗。

已知saki醬的技能是群體傷害技能,每次可以擊敗許多化鼠, 但必須要滿足的要求是:這一次施放技能所擊敗的化鼠中, 任意兩隻化鼠的屬性值的乘積都是乙個完全平方數。

請問,saki醬擊敗所有化鼠最少要使用多少次技能?

input

第一行為乙個正整數 t (1<=t<=10), 代表有t組測試資料;

在接下來的每組資料中:

第一行為乙個正整數 n(1<=n<=100000),代表有n只化鼠;

第二行有 n 個數, 第 i 個數為 ai (1<=ai<=100000),代表第i只化鼠的屬性值為ai。

output

輸出一行包含乙個非負整數,表示saki 醬擊敗所有化鼠最少要使用多少次技能。

sample input 135

2 5 8 5 1

42 4 8 1613

sample output 132

1hint

第乙個測試資料中:

第1次技能消滅第1、3只化鼠;第2次技能消滅第2、4只化鼠;第3次技能消滅第5只化鼠。

最少使用3次技能。

**:

#include

#include

#include

#include

int qq[

100010

],cnt[

100010

],ans=0;

intmain()

printf

("%d\n"

,ans);}

return0;

}

神奇的幻方 模擬

幻方是乙個很神奇的 n n 矩陣,它的每行 每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。階數為奇數 第乙個數字寫在第一行的中間 如果該數字在第一行,則下乙個數字寫在最後一行,列數為該數字的右一列 如果該數字在最後一列,則下乙個數字寫在第一列,行數為該數字的上一行 如果該...

模擬 神奇的樹

time limit 1000ms memory limit 65536k sdut有一顆神奇的蘋果樹。假如某天早上這樹上有x個蘋果,那麼這樹這一天會再結出x個蘋果來,也就是說到了晚上會有2 x個蘋果,到了深夜,會有專人人來摘蘋果,而摘蘋果的人總會使蘋果數剩下當前數量對m的餘數,也就是說假如當前數量...

神奇的幻方(模擬)

幻方是一種很神奇的n n矩陣 它由數字1,2,3,n n構成,且每行 每列及兩條對角線上的數字之和都相同。當n為奇數時,我們可以通過以下方法構建乙個幻方 首先將1寫在第一行的中間。之後,按如下方式從小到大依次填寫每個數k k 2,3,n n 1.若 k 1 在第一行但不在最後一列,則將k填在最後一行...