$n$ 才20的資料量,我當時居然還在想怎麼分組組合,直接 $2^$ 暴力搞就行了。
$x_i $太大了,不能事先處理出所有素數。誤!多數了乙個0!但是一共和的結果最多和選法的次數一樣,$2^$,也就是 $10^$(好像也很多),驗證是素數要$10^$……
原來看錯了!那就用埃篩然後暴力判斷就好了。
暴力都寫了半天,關鍵在於要在dfs進入的時候立刻處理選擇才對。
#includeusingnamespace
std;
#define ll long long
int num[10000005
];int p[10000005
];int ptop=0
;int ans=0
;void
init()
}/*for(int i=0;i*/
}int
n,k;
int a[25
];void dfs(int i,int c,int curk,int
sum)}}
else
else
}}int
main()
dfs(
0,0,k,0
); dfs(
0,1,k-1,0
); printf(
"%d\n
",ans);
}
洛谷P1036 選數
已知 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。...
洛谷 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 x...
洛谷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 輸入樣例 4 33 7 12 19 輸出樣例 1 include...