A.cpp 738 B

1234567891011121314151617181920212223242526272829
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int T;
  6. cin >> T;
  7. while (T--)
  8. {
  9. int n;
  10. cin >> n;
  11. vector < vector < int >> v(n + 1, vector < int > (n + 1, 0));
  12. for (int i = 1; i <= n; i++) {
  13. for (int j = 1; j <= i; j++) {
  14. cin >> v[i][j];
  15. }
  16. }
  17. vector < vector < int >> dp(n + 1, vector < int > (n + 1, 0));
  18. for (int i = 1; i <= n; i++) {
  19. dp[n][i] = v[n][i];
  20. }
  21. for (int i = n - 1; i >= 1; i--) {
  22. for (int j = 1; j <= i; j++) {
  23. dp[i][j] = max(dp[i + 1][j], dp[i + 1][j + 1]) + v[i][j];
  24. }
  25. }
  26. cout << dp[1][1] << endl;
  27. }
  28. return 0;
  29. }