Run ID:148136
提交时间:2026-02-09 17:19:56
#include <iostream> #include <vector> using namespace std; int main() { int T; cin >> T; for (int i = 0; i < T; i++) { int N; cin >> N; vector<vector<long long>> age(N + 1, vector<long long>(N + 1, 0)); vector<long long> pig(N + 1, 0); if (N >= 1) { age[1][0] = 1; pig[1] = 1; } for (int day = 2; day <= N; day++) { for (int j = day - 2; j >= 0; j--) { age[day][j + 1] = age[day - 1][j]; } long long new_born = 0; for (int j = 1; j < day; j++) { new_born += age[day][j]; } age[day][0] = new_born; long long killed = 0; for (int j = 2; j <= day; j++) { killed += age[day][j]; } pig[day] = pig[day - 1] + new_born - killed; } cout << pig[N] << endl; } return 0; }