当你的 $k=1$ 或 $k=2$ 时需要特判(
by FLAMEs_ @ 2023-12-18 19:04:15
而且你不能每次运算一遍,你可以把答案预处理下来然后 $O(1)$ 查询
by FLAMEs_ @ 2023-12-18 19:05:42
@[FLAMEs_](/user/363272) 然后就卡50pts了
by nothing_exe_studio @ 2023-12-18 19:11:26
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5,Mod=32767,lN=1e6;
int n,k,a[N];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);cin>>n;
a[1]=1;a[2]=2;for(int i=3;i<=lN;i++)a[i]=(a[i-1]*2+a[i-2])%Mod;
while(n--){
cin>>k;
cout<<a[k]<<'\n';
}
return 0;
}
```
by FLAMEs_ @ 2023-12-18 19:14:20
《1 ≤ k < 1000000》
你让我预处理
by nothing_exe_studio @ 2023-12-18 19:14:47
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while (n--) {
int k;
cin >> k;
long long a = 1, b = 2, c;
for (int i = 3; i <= k; i++) {
c = (2 * b + a) % 32767;
a = b;
b = c;
}
cout << c << endl;
}
}
```
by 2011Andy @ 2023-12-18 19:15:22
啊?有什么不对吗
by FLAMEs_ @ 2023-12-18 19:16:13
谢两位大佬
by nothing_exe_studio @ 2023-12-18 19:17:26