選數 NOIP2002 學習總結

2022-03-06 18:34:38 字數 1111 閱讀 1116

//

[問題描述]

//已知 n 個整數 x1,x2,…,xn,以及乙個整數 k(k<n)。從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。

//例如當 n=4,k=3,4 個整數分別為 3,7,12,19 時,可得全部的組合與它們的和為:

//3+7+12=22  3+7+19=29  7+12+19=38  3+12+19=34。

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

//例如上例,只有一種的和為素數:3+7+19=29)。

//[輸入]:

//鍵盤輸入,格式為:

//n , k (1<=n<=20,k<n)

//x1,x2,…,xn (1<=xi<=5000000)

//[輸出]:

//螢幕輸出,格式為:

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

//[輸入輸出樣例]:

//輸入:

//4 3

//3 7 12 19

//輸出://1

//看一下n的取值範圍 n<=20 則最壞的情況從n中選k個數,也不算很壞,有點數學基礎的就可以算出。

//要解決此題 先寫個prime 函式來判斷 和是否為素數。然後回溯列舉所有情況,看**。

#include #include

using

namespace

std;

const

int maxn = 30

;int n,k,ans = 0,sum = 0,path[maxn]=;//

ans用來記錄每一種的和,sum用來記錄總種數

int a[maxn] = ;//

a用來存讀入的資料

int pos=0

;int prime (int m)

return1;

}int search (int

cur)

else search (j+1

); ans -= a[j];//

回溯 pos--;

}}int

main()

search(0);

cout

<< sum <}

NOIP2002 普及組 選數

題目描述 已知 n 個整數 x1,x2,xn,以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 3,7,12,19 時,可得全部的組合與它們的和為 3 7 12 22 3 7 19 29 7 12 19 38 3 12 1...

NOIP 2002 選數 DFS 素數判定

題目描述 已知n個整數 x1,x2,xn,以及乙個整數 k k n 從n個整數中任選k個整數相加,可分別得到一系列的和。例如當n 4,k 3,4個整數分別為 3,7,12,19時,可得全部的組合與它們的和為 3 7 12 22 3 7 19 29 7 12 19 38 3 12 19 34 現在,要...

NOIP 2002提高組 選數 dfs 暴力

2002年noip全國聯賽普及組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題目描述 description 已知 n 個整數 x1,x2,xn,以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 ...