编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#21047 | #1029. 寒域爷的兔子 | Accepted | 100 | 121 ms | 356 K | C++ 11 / 1.1 K | 钱91-夏泽 | 2019-12-03 17:58:09 |
#include <iostream>
using namespace std;
typedef long long ll;
ll p, a[2][2], ret[2][2];
unsigned long long n;
void multr(void) {
ll c[2][2];
c[0][0] = c[0][1] = c[1][0] = c[1][1] = 0;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
for (int k = 0; k < 2; k++) c[i][j] += a[i][k] % p * ret[k][j] % p % p;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++) ret[i][j] = c[i][j];
return;
}
void multa(void) {
ll c[2][2];
c[0][0] = c[0][1] = c[1][0] = c[1][1] = 0;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
for (int k = 0; k < 2; k++) c[i][j] += a[i][k] % p * a[k][j] % p % p;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++) a[i][j] = c[i][j];
return;
}
int main() {
ret[0][0] = ret[1][1] = 1;
a[0][0] = a[1][0] = a[0][1] = 1;
cin >> n >> p;
if (n <= 2) {
cout << 2 % p;
return 0;
}
unsigned long long x = n - 2;
while (x) {
if (x & 1)
multr();
multa();
x >>= 1;
}
cout << (2 * ret[0][0] % p + 2 * ret[0][1] % p) % p;
return 0;
}
用户输出
5770
系统信息
Exited with return code 0
用户输出
27662
系统信息
Exited with return code 0
用户输出
8791
系统信息
Exited with return code 0
用户输出
6732
系统信息
Exited with return code 0
用户输出
1454
系统信息
Exited with return code 0
用户输出
3790
系统信息
Exited with return code 0
用户输出
11690
系统信息
Exited with return code 0
用户输出
2151
系统信息
Exited with return code 0
用户输出
1617
系统信息
Exited with return code 0
用户输出
10509
系统信息
Exited with return code 0
用户输出
4380
系统信息
Exited with return code 0
用户输出
2560
系统信息
Exited with return code 0
用户输出
1938
系统信息
Exited with return code 0
用户输出
10705
系统信息
Exited with return code 0
用户输出
9350
系统信息
Exited with return code 0
用户输出
8076
系统信息
Exited with return code 0
用户输出
7210
系统信息
Exited with return code 0
用户输出
666
系统信息
Exited with return code 0
用户输出
16089
系统信息
Exited with return code 0
用户输出
5065
系统信息
Exited with return code 0
用户输出
9362
系统信息
Exited with return code 0
用户输出
9370
系统信息
Exited with return code 0
用户输出
4198
系统信息
Exited with return code 0
用户输出
4041
系统信息
Exited with return code 0
用户输出
4361
系统信息
Exited with return code 0
用户输出
11702
系统信息
Exited with return code 0
用户输出
13980
系统信息
Exited with return code 0
用户输出
1442
系统信息
Exited with return code 0
用户输出
24628
系统信息
Exited with return code 0
用户输出
6954
系统信息
Exited with return code 0
用户输出
5562
系统信息
Exited with return code 0