uva 11885 - Number of Battlefields(矩阵快速幂)
来源:互联网 发布:固态硬盘坏了数据恢复 编辑:程序博客网 时间:2024/06/05 04:03
题目连接:uva 11885 - Number of Battlefields
题目大意:给出周长p,问多少种形状的周长为p的,并且该图形的最小包围矩阵的周长也是p,不包括矩形。
解题思路:矩阵快速幂,如果包含矩形的话,对应的则是斐波那契数列的偶数项,所以对应减去矩形的个数即可。
#include <cstdio>#include <cstring>using namespace std;typedef long long ll;const ll MOD = 987654321;void mul(ll a[2][2], ll b[2][2], ll c[2][2]) { ll ans[2][2]; memset(ans, 0, sizeof(ans)); for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 2; k++) ans[i][j] = (ans[i][j] + a[i][k] * b[k][j]) % MOD; } } memcpy(c, ans, sizeof(ans));}void power (ll a[2][2], int n) { ll ans[2][2] = {1, 0, 1, 0}; while (n) { if (n&1) mul(ans, a, ans); mul(a, a, a); n /= 2; } memcpy(a, ans, sizeof(ans));}int main () { int p; while (scanf("%d", &p) == 1 && p) { if (p&1 || p < 6) { printf("0\n"); continue; } p = (p - 4) / 2; ll a[2][2] = {1, 1, 1, 0}; /* power(a, 2*p-1); printf("%lld\n", (a[0][0] + a[0][1] - p - 1 + MOD) % MOD); */ power(a, 2*p); printf("%lld\n", (a[1][0] - p - 1 + MOD) % MOD); } return 0;}
1 0
- uva 11885 - Number of Battlefields(矩阵快速幂)
- Number of Battlefields UVA
- UVA 11885 - Number of Battlefields(斐波那契)
- toj 4613 Number of Battlefields
- UVA 10689 - Yet another Number Sequence(矩阵快速幂)
- UVA 11651 - Krypton Number System(DP+矩阵快速幂)
- uva 10689 - Yet another Number Sequence(矩阵快速幂)
- uva 11651 - Krypton Number System(矩阵快速幂)
- uva 10689 Yet another Number Sequence【矩阵快速幂】
- 【矩阵快速幂】UVA 10698 G - Yet another Number Sequence
- UVA 10698 Yet another Number Sequence 矩阵快速幂
- uva 11149 - Power of Matrix 【倍增 + 矩阵快速幂】
- HDU6198 number number number 矩阵快速幂
- Number Sequence 矩阵快速幂
- 【矩阵幂的和+矩阵快速幂】Power of Matrix UVA
- uva 10870(矩阵快速幂)
- uva 12470(矩阵快速幂)
- uva 10698 矩阵快速幂
- Android在真机上调试Eclipse
- [转载]hadoop 常用命令
- 随想录(从编程语言到库、框架、软件)
- hdu 1754 线段树
- 从头开始
- uva 11885 - Number of Battlefields(矩阵快速幂)
- intrins.h 简介
- OpenGL显示图片
- EL(JSTL)表达式的操作符
- 利用聚类优化分类器
- 如何将系统模块化
- 求助 combox 改变后 datagrid 里的显示相应数据并计算及排序并去除为小于等于 0 的数据
- Android 3.0 访问WebService 出现 android.os.NetworkOnMainThreadException异常
- 街区最短路径问题