把 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...