题意:一个二元函数S(i, t)满足下列方程:
给出,其中N为i的个数,需要求出的值
思路:矩阵快速幂,递推式如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 50+10;
const int inf = 0x3f3f3f3f;
int n, m, A, B, C, T, s[maxn][maxn], x[maxn][maxn], temp[maxn][maxn];
void mul(int a[maxn][maxn], int b[maxn][maxn])
{memset(temp, 0, sizeof(temp));for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)for (int k = 0; k < n; k++)temp[i][j] = temp[i][j]%m + a[i][k]*b[k][j]%m;memcpy(a, temp, sizeof(temp));
}
void pow_mod(int a[maxn][maxn], int k)
{int t[maxn][maxn];memcpy(t, a, sizeof(t));while (k) {if (k&1) mul(t, a);mul(a, a);k >>= 1;}memcpy(a, t, sizeof(t));
}
int main()
{//  freopen("test.txt", "r", stdin);while (~scanf("%d%d%d%d%d%d", &n, &m, &A, &B, &C, &T)) {if (n+m+A+B+C+T == 0) break;memset(s, 0, sizeof(s));memset(x, 0, sizeof(x));for (int i = 0; i < n; i++) {scanf("%d", &s[i][0]);}if (T == 0) {for (int i = 0; i < n; i++)printf("%d%c", s[i][0], i == n-1 ? '\n' : ' ');continue;}for (int i = 0; i < n; i++) {if (i-1 >= 0) x[i][i-1] = A;if (i+1 < n)x[i][i+1] = C;x[i][i] = B;}pow_mod(x, T-1);mul(x, s);for (int i = 0; i < n; i++)printf("%d%c", x[i][0]%m, i == n-1 ? '\n' : ' ');}return 0;
}

2012 Tokyo Regional C. One-Dimensional Cellular Automaton 矩阵快速幂相关推荐

  1. ICPC Central Europe Regional Contest 2019 K. K==S(AC自动机+矩阵快速幂)

    Progressive hard octave rock tunes (so-called "phorts") are written using a specifific mus ...

  2. UVA1386 【Cellular Automaton】题解

    题面:UVA1386 Cellular Automaton 矩阵乘法+快速幂解法: 这是一个比较裸的有点复杂需要优化的矩乘快速幂,所以推荐大家先做一下下列洛谷题目练练手: (会了,差不多就是多倍经验题 ...

  3. 2012-2013 Asia Tokyo Regional (ABCDFGI)

    2012-2013 Asia tokyo regional gym 101412 南昌区域赛校内PK赛 目录 A 签到 数论相关 B 暴力&方程组 C n阶矩阵快速幂 D 高斯消元解多项式系数 ...

  4. 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest

    文章目录 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest A.Bit String Reordering B.Miscalculation C.Shop ...

  5. poj 3150 Cellular Automaton(迷糊,但原理是用的快速幂)

    http://blog.csdn.net/guard_mine/article/details/44351103 http://www.cnblogs.com/xin-hua/archive/2013 ...

  6. POJ3150—Cellular Automaton(循环矩阵)

    题目链接:http://poj.org/problem?id=3150 题目意思:有n个数围成一个环,现在有一种变换,将所有距离第i(1<=i<=n)个数小于等于d的数加起来,对m取余,现 ...

  7. HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)

    So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  8. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  9. 【长更】一句话题解(组队训练的俄罗斯题、oj、camp)

      还是太长了,第二次分裂..   标 * 的为有价值的题,标 ^ 的为欺诈题,标 - 的为知识点待填坑,标 ? 的表示看别人是这样做的但是没懂为什么   组队训练的题,如果是队友过的板刷题,题面又很 ...

最新文章

  1. 使用system语句出现不明确问题
  2. ICML 2019 | 图马尔可夫神经网络
  3. R语言data.table导入数据实战:data.table使用字符向量创建新的数据列
  4. 【零基础】讲述网络安全介绍
  5. 独立成分分析 ( ICA ) 与主成分分析 ( PCA ) 的区别
  6. ati显卡驱动安装linux,恭喜自己 ati显卡驱动安装成功
  7. 关于Ubuntu16.04下安装VMwareTools失败,未发现软件包open-vm-dkms,open-vm-tools问题解决
  8. 哪些行为会影响个人征信?
  9. Go语言的原子操作和互斥锁的区别
  10. 计算机科学中的递归算法是把问题,递归运算法
  11. python运行程序的时间计算
  12. 汤晓鸥为CNN搓了一颗大力丸
  13. 前端JavaScript之DOM事件操作~都是干货
  14. 关键路径转化率分析——漏斗模型
  15. 元老职员离职申请书怎么写模板,共计10篇
  16. linux rz sz使用
  17. 姓名国别分类代码:PyTorch深度学习实践 - Lecture_13_RNN Classifier
  18. 便捷式计算机无线功能按钮,便携式wifi热点怎么用 便携式WI-FI热点使用步骤【详解】...
  19. php webp格式转换,webp的格式的转换
  20. Android微信支付集成流程及其常见错误

热门文章

  1. CCS:Type region `APP_CODE_MEM' overflowed by 641240 b
  2. excel学习-数据透视图(插入+设置样式+加公司logo+设置logo大小+删除表中多余东西)
  3. 解决Android Studio Gradle慢的方法
  4. 乔治亚大学计算机科学,乔治亚大学的计算机科学排名,真得稳重考察
  5. Oasis Sapphire黑客松来袭 | 构建隐私DApp,赢取9000美元奖励!
  6. 运维工单系统 php,运维平台体系化建设之工单系统
  7. java事件处理入门
  8. 计算机无法连接蓝牙键盘,电脑如何连接无线键盘_电脑上怎么连接蓝牙键盘-win7之家...
  9. 军队文职(数学2+物理)——高等数学 1、函数
  10. 6种品牌打印机介绍及打印机旗舰店推荐