P1832 A+B Problem(再升级)
生活随笔
收集整理的這篇文章主要介紹了
P1832 A+B Problem(再升级)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目背景
·題目名稱(chēng)是吸引你點(diǎn)進(jìn)來(lái)的
·實(shí)際上該題還是很水的
題目描述
·1+1=? 顯然是2
·a+b=? 1001回看不謝
·哥德巴赫猜想 似乎已呈泛濫趨勢(shì)
·以上純屬個(gè)人吐槽
·給定一個(gè)正整數(shù)n,求將其分解成若干個(gè)素?cái)?shù)之和的方案總數(shù)。
輸入輸出格式
輸入格式:
?
一行:一個(gè)正整數(shù)n
?
輸出格式:
?
一行:一個(gè)整數(shù)表示方案總數(shù)
?
輸入輸出樣例
輸入樣例#1:?復(fù)制 7 輸出樣例#1:?復(fù)制 3說(shuō)明
【樣例解釋】
7=7 7=2+5
7=2+2+3
【福利數(shù)據(jù)】
【輸入】 20
【輸出】 26
【數(shù)據(jù)范圍及約定】
對(duì)于30%的數(shù)據(jù) 1<=n<=10
對(duì)于100%的數(shù)據(jù),1<=n<=10^3
?
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> int n,a[1001]; long long dp[1001]; using namespace std; int aaa(int x){int flag[x+10];memset(flag,1,sizeof(flag)); for(int i=2;i<=x;i++){if(flag[i]){for(int j=i*2;j<=x;j+=i){flag[j]=0;}}}int sum=0; for(int i=2;i<=x;i++){if(flag[i]) a[++sum]=i;}return sum; } int main(){memset(dp,0,sizeof(dp));dp[0]=1;scanf("%d",&n);for(int i=1;i<=aaa(n);i++){for(int j=a[i];j<=n;j++){dp[j]=dp[j]+dp[j-a[i]];}}printf("%lld",dp[n]); return 0; }
轉(zhuǎn)載于:https://www.cnblogs.com/xiongchongwen/p/11188144.html
總結(jié)
以上是生活随笔為你收集整理的P1832 A+B Problem(再升级)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: webapi------宿主程序
- 下一篇: 事件概念和事件监听