洛谷 P1829 半數集問題

2021-08-02 10:02:09 字數 503 閱讀 7758

問題:

給定乙個自然數 n,由 n 開始可以依次產生半數集 set(n)中的數如下。

(1) n∈set(n);

(2) 在 n 的左邊加上乙個自然數,但該自然數不能超過最近新增的數的一半;

(3) 按此規則進行處理,直到不能再新增自然數為止。

例如,set(6)=。半數集 set(6)中有 6 個元素。 注意半數集是多重集。

輸入格式:

每個檔案只有 1 行,給出整數 n。(0

輸出格式:

輸出檔案只有 1 行,給出半 數集 set(n)中的元素個數。

輸入樣例#1:

6

輸出樣例#1:

6

**:

#include #include int s[500];

int ban(int n)

int main()

小結:題目看懂了就不算難了。

洛谷p1525 並查集

先將最大的犯罪都找出來然後將人員分組 假設兩人x,y 如果x 前面已經有過敵人了 那就將y合併到x的敵人裡去 y也是如此若有 將x合併到y的敵人去 如果x 和 y前面都沒有 那麼互相將彼此設為敵人 直到找到矛盾的 就是 xy有同乙個敵人 include include include using n...

洛谷P1978 集合

題目鏈結 顯然,我們是要把資料先排序的,然後從大到小列舉每個數,看是否能選上,能選就選,不能拉倒 若能,二分查詢a i k,若查詢成功,ans 將a i k標記為不能選擇 最後輸出答案即可 從小到大列舉會爆long long 1 include2 include3 include4 include5...

洛谷P6688 可重集

給出乙個長度為 n 的非負整數序列 a 1,a 2,a 3,ldots,a n 給出 q 次操作,每次先給出乙個引數 op 本質相同的定義 令區間長度為 text 序列 p dots p 為 a dots a 公升序排序後的結果,序列 q dots q text 為 a dots a 公升序排序後的...