mirror of
https://github.com/wczffl-503/OI-Codes.git
synced 2025-07-08 02:13:51 +08:00
Add FZOI Codes
This commit is contained in:
41
FZOI/自然数拆分.cpp
Normal file
41
FZOI/自然数拆分.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
void f(int n, int r, vector<int>& vt, int start, int count) {
|
||||
if (count == 0) {
|
||||
for (int i = 0; i < vt.size(); i ++ ) {
|
||||
cout << vt[i];
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
else {
|
||||
for (int i = start; i >= r; i--) {
|
||||
vt.push_back(i);
|
||||
f(n, r - 1, vt, i - 1, count - 1);
|
||||
vt.pop_back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int n, r;
|
||||
cin >> n >> r;
|
||||
|
||||
vector<int> vt;
|
||||
f(n, r, vt, n, r);
|
||||
|
||||
int t = 1;
|
||||
for (int i = n; i > n - r; i--) {
|
||||
t *= i;
|
||||
}
|
||||
for (int i = 2; i <= r; i++) {
|
||||
t /= i;
|
||||
}
|
||||
|
||||
cout << "total=" << t << endl;
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user