1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /* * n: 전체 원소의 수 * arr : 지금가지 고른 원소들의 번호 * toPick : 더 고를 원소의 수 * 일 때, 앞으로 toPick 개의 원소를 고르는 모든 방법을 출력한다. */ void toPick(const vector<int>& arr, int n, int toPick) { // 기저 사례: 더 고를 원소가 없을 때 고른 원소들을 출력한다. if (toPick == 0) { printArr(arr); } // 고를 수 있는 가장 작은 번호를 계산한다. int next = arr.size() == 0 ? 0 : arr.back() + 1; // 이 단계에서 원소 하나를 고른다. for(;next < n; ++next) { arr.push_back(next); toPick(arr, n, toPick - 1); arr.pop_push(); } } | cs |
2017 10 23 증명의 부제 (0) | 2017.10.23 |
---|---|
DP 를 배우다 (0) | 2017.10.05 |
20170917 - 정리에 시간 (0) | 2017.09.17 |
알고리즘 문제풀이 사이트 (0) | 2017.09.03 |
PICNIC(소풍 문제를 해결하는 재귀 호출 코드) (0) | 2017.08.20 |
댓글 영역