非整除集合

2022-02-16 07:27:43 字數 1028 閱讀 7084

今天天光明媚,在牛客網上刷到了乙個關於挖掘數的餘數性質的好題,特特記錄之!

問題說明:給定乙個由正整數組成的集合s,找出乙個最大的子集合s·,使得s·中任意兩個數字的和都不能被k整除。例如s=「10,10,12,19,22,24,25」,k=4。s·的可能取值為「10,12,25」或者「19,22,25」等,s·最多只能取3個數。

輸入為兩行,第一行兩個數字,分別表示集合s的元素數量n和k。第二行為n個數字,分別是s的各個元素值。

1我一開始是並沒有什麼想法的。在瀏覽大神們的**時我發現了這一種做法。它的精神我盡量地用我的一些理解來概括:將集合中的數有序儲存於乙個向量中。在建立乙個依附於此向量的

每乙個元素的關於k的餘數向量陣列。統計各餘數的出現次數。接下來乙個迴圈判斷遍歷餘數向量陣列問題得以解決。當然,這個遍歷語句很有一種對稱形的美感。它基於的關於數的性質是:........

(好吧,我還尚且不能內化語言描述出來,希望有沒有大神能解釋一下他的性質!)

執行結果是:

對啦,題目的敘述還是有一些問題的。關於集合的性質有一點是要去澄明的:集合之元素各各互異。

關於數學知識的一些敘述呈現於此:

對於模m同餘的數組成由模m決定的數類。而且只要在式子mq+r裡讓q通過所有的整數,我們就得到這個類裡的所有數。

乙個類的任意數,對於同乙個類的所有數而言,都叫做模m的剩餘。當q=0時,我們得到的剩餘正好等於餘數r,叫做非負的最小剩餘。

從每個類取乙個剩餘,我們得到模m的乙個完全剩餘組。

泛型集合,非泛型集合

arraylist 非泛型集合 list 泛型集合 集合跟陣列比較我們更容易理解。陣列 1,長度固定2,資料型別預先宣告 集合 1,長度可變2,資料型別預先宣告的為泛型集合,資料型別不限定為非泛型 arraylist 長度不固定,元素資料型別為object的集合。object類之間或間接為所有類的父...

VB判斷整除並整除

private sub command1 click dim m as integer,n as integer,d as integer dim s as long 儲存結果 m val text1.text n val text2.text d val text3.text s 0 sum m,...

Linq操作非泛型集合

我們都知道,linq能查詢泛型集合,確切的說是 linq能實現查詢泛型物件或者實現了ienumerable。但是,很遺憾的是諸如arraylist這樣的非泛型集合並沒有實現ienumerable。那咋辦呢?總不能把這麼絢麗的linq技術對非泛型關上大門把!其實,方法還是有的。場景還原 定義乙個car...