SDUT 3488 小明 魔法計畫

2021-08-04 08:34:46 字數 1272 閱讀 6060

小明の魔法計畫

time limit: 1000ms memory limit: 65536kb

submit statistic

problem description

在乙個遙遠的數學魔法國度,小明在學習乙個魔法,這個魔法需要一些施法材料,所幸的是施法材料已經準備好了,下一步就是建立魔法陣了,每乙個施法材料都有乙個特性值,表示為乙個大於1小於10 ^ 7的整數,當且僅當乙個材料的特性值是另乙個材料的特性值的倍數的時候,他們才可以建立法力連線。比如說,乙個特性值為6和乙個特性值為9的施法材料是不可以建立法力連線的,而乙個特性值為9和乙個特性值為18的材料是可以建立法力連線的,值得注意的是法力連線是雙向的。乙個穩定的魔法陣要求屬於這個法陣的材料之間不存在任何兩個不直接連線的施法材料,比如說由(1,3,9)組成的魔法陣是穩定的,而(3,6,9)組成的魔法陣是不穩定的,因為值為6和值為9的材料無法建立連線。乙個魔法陣的威力定義為這個法陣需要的材料的個數。

現在小明已經收集到了一些材料,他想要知道在知道他收集的材料的特性值的前提下,能建立的最大威力的魔法陣的消耗材料的數量是多少。

input

首先乙個整數t,代表資料組數(t<=80)

對於每一組資料,第一行是乙個整數n,代表小明收集的施法材料的數量(1 < = n < = 1000)

接下來一行乙個有n個數,以空格隔開,分別代表n個施法材料的特性值,每個數1 < = a < = 10 ^ 7

具體見樣例

output

每組資料輸出一行乙個整數,代表最大威力的魔法陣的需要的材料的個數

example input

2 5

1 2 4 8 16

8 12 24 1 2 4 8 72 16

example output

5 6

hint

魔法陣不一定是矩陣,施法材料可以隨意擺放。

author

qasq

think:最長上公升序列思路

#include 

#include

#include

using

namespace

std;

int main()

sort(a,a+n);

b[1]=1;

for (int i=1;i<=n;i++)

}int max=0;

for (int i=1;i<=n;i++)

return

0;}

小明的骰子(SDUT 2859)

time limit 1000ms memory limit 65536k 有疑問?點這裡 眾所周知,小明非常喜歡玩骰子。一天,小芳問小明乙個問題。一次性拋n個骰子,一共能丟擲幾種結果?小明不想讓小芳覺得自己回答不上來,所以小明來求助於你。你一定要幫幫小明。首先輸入乙個整數t,代表有t組資料。接下來...

SDUT 2859 小明的骰子

time limit 1000ms memory limit 65536k 有疑問?點這裡 眾所周知,小明非常喜歡玩骰子。一天,小芳問小明乙個問題。一次性拋n個骰子,一共能丟擲幾種結果?小明不想讓小芳覺得自己回答不上來,所以小明來求助於你。你一定要幫幫小明。首先輸入乙個整數t,代表有t組資料。接下來...

SDUT 2778 小明的花費預算

time limit 1000ms memory limit 65536kb problem description 小明終於找到乙份工作了,但是老闆是個比較奇怪的人,他並不是按照每月每月的這樣發工資,他覺得你想什麼時候來取都可以,而小明恰好是乙個花錢比較大手大腳的人,所以他希望每次取得錢正好夠接下...