hdu5015构造转移矩阵
- /*
- 构造转移矩阵:
- 先推公式:
- 首先是第0行:A[0][j+1]=A[0][j]*10+3
- 1-n行: A[i][j+1]=A[i][j]+A[i-1][j+1]=...
- =A[i][j]+A[i-1][j]+...+A[1][j]+A[0][j+1]
- 所以第j+1行状态可以由第j行通过乘上一个转移矩阵得到
- 那么就是转移矩阵的构造
- 设F[j]为第j列,F[j+1]为第j+1列,B为转移矩阵
- 有 F[j+1]=B*F[j]
- 按照递推性质
- 1 0 0 0 0 ... 0 3 3
- 1 10 0 0 0 ... 0 A[0][j] A[0][j+1]
- 1 10 1 0 0 ... 0 * A[1][j] = A[1][j+1]
- 1 10 1 1 0 ... 0 A[2][j] .
- 1 10 1 1 1 ... 0 A[3][j] .
- 1 10 1 1 1 ... 1 A[n][j] A[n][j+1]
- 规定初始数组F[0]=[3,233,a1,a2...an]
- */
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define mod 10000007
- ll F[],a[];
- ll n,m;
- struct Mat{
- ll m[][];
- Mat(){memset(m,,sizeof m);}
- };
- void mul1(Mat A,ll F[]){
- ll B[]={};
- for(int i=;i<n+;i++)
- for(int j=;j<n+;j++)
- B[i]=(B[i]+A.m[i][j]*F[j]%mod)%mod;
- memcpy(F,B,sizeof B);
- }
- void mul2(Mat & A,Mat B){
- Mat C;
- for(int i=;i<n+;i++)
- for(int j=;j<n+;j++)
- for(int k=;k<n+;k++)
- C.m[i][j]=(C.m[i][j]+A.m[i][k]*B.m[k][j]%mod)%mod;
- memcpy(A.m,C.m,sizeof C.m);
- }
- int main(){
- while(cin>>n>>m){
- F[]=,F[]=;
- for(int i=;i<n+;i++)cin>>F[i];
- Mat A,B;
- for(int i=;i<n+;i++)A.m[i][]=;
- for(int i=;i<n+;i++)A.m[i][]=;
- for(int j=;j<n+;j++)
- for(int i=j;i<n+;i++)
- A.m[i][j]=;
- while(m){
- if(m%)
- mul1(A,F);
- mul2(A,A);
- m>>=;
- }
- cout<<F[n+]<<endl;
- }
- }
hdu5015构造转移矩阵的更多相关文章
- 从随机过程到马尔科夫链蒙特卡洛方法(MCMC)
从随机过程到马尔科夫链蒙特卡洛方法 1. Introduction 第一次接触到 Markov Chain Monte Carlo (MCMC) 是在 theano 的 deep learning t ...
- 北京培训记day1
数学什么的....简直是丧心病狂啊好不好 引入:Q1:前n个数中最多能取几个,使得没有一个数是另一个的倍数 答案:(n/2)上取整 p.s.取后n/2个就好了 Q2:在Q1条件下,和最小为多少 答 ...
- MCMC 、抽样算法与软件实现
一.MCMC 简介 1. Monte Carlo 蒙特卡洛 蒙特卡洛方法(Monte Carlo)是一种通过特定分布下的随机数(或伪随机数)进行模拟的方法.典型的例子有蒲丰投针.定积分计算等等,其基础 ...
- 2014 ACM/ICPC Asia Regional Xi'an Online
03 hdu5009 状态转移方程很好想,dp[i] = min(dp[j]+o[j~i]^2,dp[i]) ,o[j~i]表示从j到i颜色的种数. 普通的O(n*n)是会超时的,可以想到o[]最大为 ...
- BZOJ4471 : 随机数生成器Ⅱ
\[\begin{eqnarray*}x_i&=&x_{i-1}+x_{i-2}\\x_i^2&=&x_{i-2}^2+x_{i-1}^2+2x_{i-2}x_{i-1 ...
- [转] - MC、MC、MCMC简述
贝叶斯集锦(3):从MC.MC到MCMC 2013-07-31 23:03:39 #####一份草稿 贝叶斯计算基础 一.从MC.MC到MCMC 斯坦福统计学教授Persi Diaconis是一位传奇 ...
- 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...
- AC自动机基础知识讲解
AC自动机 转载自:小白 还可参考:飘过的小牛 1.KMP算法: a. 传统字符串的匹配和KMP: 对于字符串S = ”abcabcabdabba”,T = ”abcabd”,如果用T去匹配S下划线部 ...
- LDA-math-MCMC 和 Gibbs Sampling
http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 3.1 随机模拟 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Mon ...
随机推荐
- R大
知乎链接 https://www.zhihu.com/collection/114506870
- mysql 原理 ~ 线程与IO
一 简介:今天来聊聊具体的线程和IO 二 具体线程与作用 1 master thread mysql的主要工作触发线程 1 redo and binlog日志 2 合并插入缓冲. ...
- 【转载】AutoML--超参数调优之Bayesian Optimization
原文:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效 ...
- java在进程启动和关闭.exe程序
/** * @desc 启动进程 * @author zp * @date 2018-3-29 */ public static void startProc(String processName) ...
- 【ARTS】01_15_左耳听风-20190218~20190224
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- dubbo源码分析8——服务暴露概述
从上文中可知,com.alibaba.dubbo.config.spring.ServiceBean类是负责解析<dubbo:service/>的配置的,下面是它的类图 从类图上可知它继承 ...
- 在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能
在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能. uniGUI 的客户端使用 EXTJS 6 ,本就有 Toast 功能. 但UniGui 官方没有相应的控件,我们如何使用 EX ...
- LaTeX Error: Something's wrong--perhaps a missing \item
使用Latex 引用参考文献,.bib文件是个很好的助手,创建后 1.第一步点击Latex编译,可以获得*.aux文件.*.dvi文件.*.log文件以及*.gz文件: 2.第二步点击Bibtex编译 ...
- select2使用方法总结
官网:http://select2.github.io/ 调用 <link href="~/Content/select2.min.css" rel="styles ...
- struts2框架学习之第一天
day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...