7834 分成互質組

2021-08-04 02:45:36 字數 606 閱讀 5125

總時間限制: 1000ms 記憶體限制: 65536kb

描述 給定n個正整數,將它們分組,使得每組中任意兩個數互質。至少要分成多少個組?

輸入 第一行是乙個正整數n。1 <= n <= 10。

第二行是n個不大於10000的正整數。

輸出 乙個正整數,即最少需要的組數。

樣例輸入

6 14 20 33 117 143 175

樣例輸出

3 這題感覺自己寫起來有些難度,參考了一些大神的解題方法。

#include

using

namespace

std;

int n,a[11],p[11],i,s;

int g(int a,int b)

void fin(int x)

; if(x>n)return ;

else

}if(f==1) }}

if(p[x]==0) p[x]=++s;

if(x<=n) fin(x+1);

else

return ;

}}int main()

這篇寫的很好

OpenJudge 7834 分成互質組

本題由2008年第十三屆 華羅庚金盃 少年數學邀請賽 決賽第5題改編而成。一道簡簡單單的搜尋題,老師卻要我們用狀壓dp再做。毒瘤!設f x 表示狀態x下最少分成的組數。其中x為10位二進位制數,表示方法如下 若x 0000001101,表示第0 1 第2 3 第3 4 個數 0 2 3位為1 分在一...

AcWing 1118 分成互質組

我用的是狀壓dp。先預處理出可以在一組的集合。然後對每種狀態列舉它的子集進行轉移。像這樣子 for i 1 i 1 f i 表示已經把 i 集合裡的數安頓好了需要幾個組。屬性 min。時間複雜度 o n 2 times 2 n 3 n 其中 o n 2 times 2 n 是預處理的複雜度,o 3 ...

分成互質組 dfs

分成互質組 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65536kb 描述給定n個正整數,將它們分組,使得每組中任意兩個數互質。至少要分成多少個組?輸入第一行是乙個正整數n。1 n 10。第二行是n個不大於10000的正整數。輸出乙個正整數,即最少需要的組數。樣例輸入 614 2...