【矩阵乘法】CDOJ1610 黑红梅方
考虑用4^n-不存在连续4个相同的。
f(i,j,k,l)表示以i为结尾的序列,最后三位分别是j,k,l时的方案。
可以转移,写一个64*64的转移矩阵。
貌似可以优化?……未完待续。
#include<cstdio>
#include<vector>
#include<iostream>
using namespace std;
typedef long long ll;
#define MOD 1000000009ll
typedef vector<ll> vec;
typedef vector<vec> mat;
mat I;
mat operator * (const mat &A,const mat &B){mat C(A.size(),vec(B[0].size()));for(int i=0;i<A.size();++i){for(int k=0;k<B.size();++k){for(int j=0;j<B[0].size();++j){C[i][j]=(C[i][j]+A[i][k]*B[k][j]%MOD)%MOD;}}}return C;
}
mat Quick_Pow(mat a,ll p)
{if(!p){return I;}mat res=Quick_Pow(a,p>>1ll);res=res*res;if((p&1ll)==1ll){res=res*a;}return res;
}
ll Quick_Pow(ll a,ll p)
{if(!p){return 1;}ll res=Quick_Pow(a,p>>1ll);res=res*res%MOD;if((p&1ll)==1ll){res=(a%MOD*res)%MOD;}return res;
}
ll n;
int main(){cin>>n;I.assign(64,vec(64));for(int i=0;i<64;++i){for(int j=0;j<64;++j){I[i][j]=0;}}for(int i=0;i<64;++i){I[i][i]=1;}mat A(64,vec(1));for(int i=0;i<64;++i){A[i][0]=1;}mat b(64,vec(64));for(int i=0;i<64;++i){for(int j=0;j<64;++j){b[i][j]=0;}}for(int i=0;i<4;++i){for(int j=0;j<4;++j){for(int k=0;k<4;++k){int hang=i*16+j*4+k;if(i==j || j==k || i==k){for(int l=0;l<4;++l){int lie=l*16+i*4+j;b[hang][lie]=1;}}else{for(int l=0;l<4;++l){if(l==i || l==j || l==k){int lie=l*16+i*4+j;b[hang][lie]=1;}}}}}}
// for(int i=0;i<64;++i){
// for(int j=0;j<64;++j){
// printf("%I64d ",b[i][j]);
// }
// puts("");
// }mat c=Quick_Pow(b,n-3ll)*A;ll n4=Quick_Pow(4ll,n);ll tmp=0;for(int i=0;i<64;++i){tmp=(tmp+c[i][0])%MOD;}cout<<(n4-tmp+MOD)%MOD<<endl;return 0;
}
转载于:https://www.cnblogs.com/autsky-jadek/p/6935697.html
【矩阵乘法】CDOJ1610 黑红梅方相关推荐
- UESTC1610 黑红梅方
题意:一行有n个扑克牌,每一个扑克牌有四种颜色,问有几种扑克牌,满足连续四个不相等 题解:状态压缩+递推+矩阵快速幂,不过状态很多,不能直接写,这里分为5种状态 #include <bits/s ...
- UESTC 1610 黑红梅方
题目链接:http://acm.uestc.edu.cn/#/problem/show/1610 解法: 卿式扑克序列? 出现一组有连续4张牌均不同的序列 不好计算,怎么办? 可以计算出没有一组连续4 ...
- 破解黑红梅方提前知道保单机里的答案
现在市面上保单机一般就是热敏和激光打印机,激光也简称*射打印机,一般适用与,五星宏辉,单挑王,超级金三色,,彩金宏辉,富家乐 等等打保单的保单 机, 热敏打印机的原理是热敏打印机的工作原理是打印头上安 ...
- 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)
矩阵乘法效率比较 1. 矩阵乘法 2. 效率比较 2.1. DenseMatrix(50% zeros) X DenseMatrix 2.2. SparseMatrix X DenseMatrix ...
- 【bzoj5082】弗拉格 矩阵乘法
题目描述 给你n个flag,你要把每个染色成红黑白黄四色之一,满足: 1.相邻旗不能同色 2.白不能和黄相邻,红不能和黑相邻 3.不能存在连续三个球依次是"黑白红"或"红 ...
- 【Android 应用开发】Paint 滤镜原理 之 颜色矩阵 ( 颜色模式 | 颜色通道 | 颜色矩阵 | 矩阵运算 | 矩阵乘法 | 矩阵加法 | 颜色矩阵深入解析 )
文章目录 颜色模式 颜色通道 Android 中的颜色矩阵 矩阵乘法运算 滤镜中的矩阵乘法运算 矩阵加法运算 滤镜中的矩阵乘法运算 滤镜运算原理 ( 总结 ) 实际滤镜理论示例 颜色模式 颜色模式 : ...
- HNOI2008 GT考试 (KMP + 矩阵乘法)
传送门 这道题目的题意描述,通俗一点说就是这样:有一个长度为n的数字串(其中每一位都可以是0到9之间任意一个数字),给定一个长度为m的模式串,求有多少种情况,使得此模式串不为数字串的任意一个子串.结果 ...
- 年终重磅盘点:2022计算机科学6大突破!破解量子加密、最快矩阵乘法等榜上有名...
来源:新智元 编辑:Aeneas 好困 [导读]2022年,计算机领域发生了哪些大事?Quanta Magazine的年终盘点来了. 2022年,计算机领域发生很多划时代的大事. 在今年,计算机科学家 ...
- MegEngine| CUDA 矩阵乘法终极优化
前言 单精度矩阵乘法(SGEMM)几乎是每一位学习 CUDA 的同学绕不开的案例,这个经典的计算密集型案例可以很好地展示 GPU 编程中常用的优化技巧,而能否写出高效率的 SGEMM Kernel , ...
最新文章
- 2022年:机器人技术的重大革命
- 现实世界的Windows Azure:采访Figlo的全球合作伙伴支持经理Nathan Brouwer
- 图数据库Neo4j全栈Web技术解密
- ssl证书(https) iis 配置安装
- qmoc文件_手动生成MOC文件
- LINUX修改文件权限 学习
- 使用RabbitMQ实现延迟任务
- C语言和设计模式(装饰模式)
- smali-2.2.4.jar baksmali-2.2.4.jar
- SpringMVC对象绑定时自定义名称对应关系
- 面试官:设计一个安全的登录都要考虑哪些?我一脸懵逼。。
- C#- XPath教程
- html小任务,编写表单里的各项元素
- Android对话框的使用总结
- mysql group by作用_group by实现原理及其作用
- 艾司博讯:拼多多商品讲解视频如何制作
- 开源博客wordpress,一键搭建属于自己的博客
- HashSet集合保证元素唯一性原理分析
- E Enigmatic Partition 2020牛客暑期多校训练营(第八场)
- Word如何添加标题