原理:

image.png

实现方法

  1. #include <iostream>
  2. using namespace std;
  3. typedef long long LL;
  4. long long c[10][10];
  5. int main() {
  6. for(int i=0;i<10;i++){
  7. for(int j=0;j<=i;j++){
  8. if(!j) c[i][j]=1;
  9. else c[i][j]=(c[i-1][j]+c[i-1][j-1]);
  10. // cout << c[i][j] << ' ';
  11. }
  12. // cout << endl;
  13. }
  14. for(int i=1;i<10;i++){
  15. for(int j=1;j<=i;j++){
  16. cout << c[i][j] << ' ';
  17. }
  18. cout << endl;
  19. }
  20. return 0;
  21. }

原题:

  1. #include <iostream>
  2. using namespace std;
  3. typedef long long LL;
  4. const int N = 2010;
  5. LL c[N][N];
  6. const int M = 1e9 +7;
  7. void init(){
  8. for(int i=0;i<N;i++){
  9. for(int j=0;j<=i;j++){
  10. if(!j) c[i][j]=1;
  11. else c[i][j]=(c[i-1][j]+c[i-1][j-1]) % M;
  12. // cout << c[i][j] << ' ';
  13. }
  14. // cout << endl;
  15. }
  16. }
  17. int main() {
  18. init();
  19. int m, x ,y;
  20. cin >> m;
  21. while(m--){
  22. cin >> x >> y;
  23. cout << c[x][y] << endl;
  24. }
  25. return 0;
  26. }