hdu 5564 快速矩阵幂+数位dp
来源:互联网 发布:手机投电视软件 编辑:程序博客网 时间:2024/05/16 14:06
hdu5564
这道题一看就知道用数位dp,但是在状态转移时,发现不可能转移成功,10^9,但是发现转移可以用矩阵来进行表示,因此……
但是要注意矩阵最后一列用来计算结果。代码看看就好了,毕竟卡着时间过的,2500ms左右,标程3000ms.
//hdu 5564 快速矩阵幂+数位dp#include<stdio.h>#include<cstdlib>#include<istream>#define mod 1000000007#define long long llusing namespace std;struct Mat{int on[72][72];void init(){int i, j;for (i = 0;i <= 71;i++)for (j = 0;j <= 71;j++)this->on[i][j] = 0;}friend Mat operator*(Mat a, Mat b);friend Mat operator^(Mat a, int n);};Mat operator*(Mat a, Mat b){Mat res;res.init();int i, j, l;for (i = 0;i <= 70;i++)for (j = 0;j <= 70;j++)for (l = 0;l <= 70;l++){ res.on[i][j] = (res.on[i][j] +(1ll*a.on[i][l]*b.on[l][j])%mod) % mod;}return res;}Mat operator^(Mat a, int n){Mat b;b.init();int i;for (i = 0;i <= 70;i++)b.on[i][i] = 1;while (n){if (n % 2){b = b*a;}a = a*a;n = n / 2;}return b;}int main(){int T;//freopen("d:\\in.txt", "r", stdin);scanf("%d", &T);while (T--){int l, r, k;scanf("%d%d%d", &l, &r, &k);Mat a,b;a.init();b.init();int i,j,t;for (i = 1;i <= 9;i++)a.on[0][i%7*10+i] = 1;for (i = 0;i <= 6;i++)for (j = 0;j <= 9;j++)for (t = 0;t <= 9;t++){if ((j + t) != k)b.on[i*10+j][(i*10+t)%7*10+t] = 1;}for (i = 0;i <= 9;i++)b.on[i][70] = 1;b.on[70][70] = 1;Mat a1, a2;a1.init();a2.init();a1 = a*(b ^ (l - 1));a2 = a*(b^r);printf("%d\n", (a2.on[0][70] - a1.on[0][70]+mod)%mod);}return 0;}
0 0
- hdu 5564 快速矩阵幂+数位dp
- hdu 5564 Clarke and digits (数位dp + 矩阵快速幂优化)
- BZOJ 3329: Xorequ 数位DP+矩阵快速幂
- BZOJ3329 Xorequ(数位dp+矩阵快速幂)
- HDU 2604 Queuing DP + 矩阵快速幂
- HDU 2294 Pendant DP+矩阵快速幂
- hdu 2294 Pendant (dp+矩阵快速幂)
- HDU 5318 (dp+矩阵快速幂优化)
- HDU 6030 DP + 矩阵快速幂
- [数位DP+矩阵快速幂优化]BZOJ 1875——[SDOI2009]HH去散步
- hdu 2243 (AC自动机 + dp + 矩阵快速幂)
- hdu 2604 queuing dfa dp + 矩阵快速幂
- hdu 2243 ac自动机 dp +矩阵快速幂
- 【HDU 5001】Walk(矩阵快速幂+概率DP)
- hdu 5411 CRB and Puzzle (矩阵快速幂优化dp)
- HDU 5411 CRB and puzzle (Dp + 矩阵快速幂)
- HDU 2604 Queuing(dp+矩阵快速幂)
- hdu 5001 Walk(概率dp+搜索,矩阵快速幂)
- GDB常用功能
- 51nod 1241:特殊的排序
- django上传文件原理解析
- Java虚拟机 堆和栈
- 虚基类作用
- hdu 5564 快速矩阵幂+数位dp
- PHP入门-配置虚拟主机
- Genymotion安装说明及遇到一些问题的解决办法
- nodejs 操作文件(文件夹)
- OC protocol
- SQL serer 2008 简介
- OC block Category
- 范式理论简介
- Bzoj 3409: [Usaco2009 Oct]Barn Echoes 牛棚回声