本来的思路是想用两个队列存储每行的值,但是部分测试用例会运行超时,最后只有40分。
#include<iostream>
#include<queue>
using namespace std;
int N;
int site = 0;
void display(queue<int> q) {
while (!q.empty()) {
cout << q.front() << " ";
q.pop();
}
cout << endl;
}
int main() {
int line = 2;
cin >> N;
if (N == 1) {
cout << 1 << endl;
return 0;
}
queue<int> q1;
q1.push(1);
q1.push(1);
queue<int> q2;
int flag = 1;//表示队列q1不为空
int a, b;
while (true) {
line++;
if (flag == 1) {
q2.push(1);
while (q1.size() > 1) {
a = q1.front();
q1.pop();
b = q1.front();
q2.push(a + b);
if (q2.back() == N) {
site = q2.size();
break;
}