問題:
給定乙個自然數 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 公升序排序後的...