P1036 選數 題解

2021-08-21 21:00:28 字數 1449 閱讀 1907

題目鏈結

已知 nn

n 個整數 x1,x2,…,xnx_1,x_2,…,x_nx1

​,x2

​,…,

xn​ ,以及 11

1 個整數 kk

k ( k

k<

n )。從 nn

n 個整數中任選 kk

k 個整數相加,可分別得到一系列的和。例如當 n=4,k=3n=4,k=3n=

4,k=

3 , 44

4 個整數分別為 3,7,12,193,7,12,193,

7,12

,19 時,可得全部的組合與它們的和為:

3+7+12=223+7+12=223+

7+12

=22

3+7+19=293+7+19=293+

7+19

=29

7+12+19=387+12+19=387+

12+1

9=38

3+12+19=343+12+19=343+

12+1

9=34

。 現在,要求你計算出和為素數共有多少種。

例如上例,只有一種的和為素數: 3+7+19=293+7+19=293+

7+19

=29 。

輸入格式:

鍵盤輸入,格式為:

n,kn,kn,

k ( 1≤n≤20,k1≤

n≤20

,kx1,x2,…,xn(1≤xi≤5000000)x_1,x_2,…,x_n (1 \le x_i \le 5000000)x1

​,x2

​,…,

xn​(

1≤xi

​≤50

0000

0)輸出格式:

螢幕輸出,格式為: 11

1 個整數(滿足條件的種數)。

輸入樣例#1:複製

4 3

3 7 12 19

輸出樣例#1:複製

1

對於函式我以前一般是能不傳參就不傳參,設定乙個全域性變數,而這個乙個題把我卡住了,這個題如果僅僅設定全域性變數的話,處理的話很麻煩。

附上某大神的**

#include

#include

using

namespace

std;

int x[20],n,k;//依照題目所設

bool isprime(int n)

return

true;

}int rule(int choose_left_num,int already_sum,int start,int end)

return sum;

}int main()

題解 P1036 選數

嗯,新手試煉場的,錯了兩次,對,我是蒟蒻。因為這道題對我有幫助,所以,它是好題。錯啦兩次,好尬的。49 17 100 不費話了,過程函式與遞推。當然要遞推 49分的不說了,從未先編譯一下試試。跟著題目走,判斷質數。來一段辣雞 includeusing namespace std int n,k in...

洛谷題解 P1036 選數

洛谷,已知 n 個整數 x1 x2 xn 以及1個整數k k3 7 12 22 3 7 19 29 7 12 19 38 3 12 19 34 現在,要求你計算出和為素數共有多少種。例如上例,只有一種的和為素數 3 7 19 29。鍵盤輸入,格式為 n,k 1 n 20,kx1 x2 xn 1 xi...

洛古P1036 選數 題解

我是傳送門 這是一道很經典的深搜與回溯 難度一般 可是就這個 普及 讓本蒟蒻做了一晚上 半個上午 實際我不會深搜回溯,全靠框架 去重 下面讓我分享下本蒟蒻的 全排列 暴搜去重 includeusing namespace std int n,r,ttt n是總數,r是選的數,ttt是答案 int a...