第十屆藍橋杯省賽C B組 數的分解

2021-10-04 15:21:17 字數 815 閱讀 3750

把 2019 分解成 3 個各不相同的正整數之和,並且要求每個正整數都不包含數字 2 和 4,一共有多少種不同的分解方法?

注意交換 3 個整數的順序被視為同一種方法,例如 1000+1001+18 和

1001+1000+18 被視為同一種。

這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果為一

個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。

分解為三個數滾動檢測,一開始肯定直接想列舉判斷,那麼就到n^3的複雜度,201920192019直接爆棧。

我們優化掉一重迴圈,即c=2019-a-b,此時到了n^2.

又因為1000+1001+18 和1001+1000+18 被視為同一種。

那麼我們將所有逆序都省略,只列舉順序,即a>b>c.

此時基本可以通過。

#include

using

namespace std;

boolf(

int x)

//判斷是否含2||4

return

true;}

main (

) cout

}

#include

using

namespace std;

int ans;

intcheck

(int n)

return0;

}int

main()

cout

}

第十屆藍橋杯省賽C B組 數的分解

試題 d 數的分解 本題總分 10 分 問題描述 把 2019 分解成 3 個各不相同的正整數之和,並且要求每個正整數都不包含數字 2 和 4,一共有多少種不同的分解方法?注意交換 3 個整數的順序被視為同一種方法,例如 1000 1001 18 和 1001 1000 18 被視為同一種。答案提交...

第十屆藍橋杯省賽C B組 數的分解(暴力)

試題 d 數的分解 本題總分 10 分 問題描述 把 2019 分解成 3 個各不相同的正整數之和,並且要求每個正整數都不包含數字 2 和 4,一共有多少種不同的分解方法?注意交換 3 個整數的順序被視為同一種方法,例如 1000 1001 18 和 1001 1000 18 被視為同一種。答案提交...

第十屆藍橋杯省賽C B組 數列求值

試題 c 數列求值 本題總分 10 分 問題描述 給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。答案提交 答案 4659 思路 因為結果只要最後4位數字,所以每做一次加法就對10000取模即可。include incl...