赛场上一开始以为是递推,交了一发希望以为能卡着线过(毕竟是O(5N)的),结果WA了。

  又以为是dp,最后半小时尝试各种YY。。。各种WA

实际上取每次transfer中最大的概率然后递推是不对的。。。因为最终结果是每次的总乘积

sol:以第二个样例为例:

因为A[j][i]表示j->i的概率,所以把A先反转一下,令A[i][j]表示i->j的概率。

设初始矩阵B[0 0 1 0 0],B[1][i]表示当前角色i的概率

乘一次A,就得到新矩阵[0.2 0.1 0.0 0.4 0.3]

B是1x5的矩阵,A是5x5的矩阵,B[1][j]=sigma(k=1 to 5)【B[1][k]*A[k][j]】就是所有下一关玩到角色j的概率。

这样,令B=B*A^(n-1)。之后B[1][i]就表示n次后第i个角色的概率。找最大就行了。

注意精度1e-6

 #include<iostream>
#include<vector>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
#define eps 1e-6
typedef unsigned long int ULL;
typedef vector<double> vec;
typedef vector<vec> mat;
//const ULL P=9973;
int T,n,st;
double db[][]; mat mul(mat &A,mat &B) //return A*B
{
mat C(A.size(),vec(B[].size()));
for (int i=; i<(int)A.size(); i++)
{
for (int k=; k<(int)B.size(); k++)
{
for (int j=; j<(int)B[].size(); j++)
{
C[i][j]=(C[i][j]+A[i][k]*B[k][j]);
}
}
}
return C;
} mat m_pow(mat A,int m) //return A^m
{
mat B(A.size(),vec(A.size()));
for (int i=; i<(int)A.size(); i++)
B[i][i]=;
while (m>)
{
if (m&) B=mul(B,A);
A=mul(A,A);
m>>=;
}
return B;
} int main()
{
//freopen("out.txt","w",stdout);
cin>>T;
while(T--)
{
cin>>n;
mat A(,vec());
mat B(,vec());
for (int i=; i<; i++)
{
B[][i]=;
for (int j=; j<; j++)
cin>>A[j][i];
}
/*
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
*/
A=m_pow(A,n-);
cin>>st; B[][st-]=;
B=mul(B,A); for(int i=;i<;i++)
cout<<B[][i]<<" ";
cout<<endl; double mx=B[][];
int mxi=;
for(int i=;i<;i++)
{
if((fabs(B[][i]-mx)>eps)&&(B[][i]>mx))
{
mx=B[][i];
mxi=i;
}
}
cout<<mxi+<<endl;
}
return ;
}

xcoj 1208 矩阵的更多相关文章

  1. COJ 1208 矩阵快速幂DP

    题目大意: f(i) 是一个斐波那契数列 , 求sum(f(i)^k)的总和 由于n极大,所以考虑矩阵快速幂加速 我们要求解最后的sum[n] 首先我们需要思考 sum[n] = sum[n-1] + ...

  2. n*n矩阵 每行每列XOR为0(思维)

    题意:https://codeforc.es/contest/1208/problem/C 如题:就是给定一个数n,要你求一个n×n的矩阵,矩阵中的元素是 0 ~ n2-1 ,使得矩阵每一行和每一列的 ...

  3. C语言 · 矩阵乘法 · 算法训练

    问题描述 输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200). 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j ...

  4. 获取Canvas当前坐标系矩阵

    前言 在我的另一篇博文 Canvas坐标系转换 中,我们知道了所有的平移缩放旋转操作都会影响到画布坐标系.那在我们对画布进行了一系列操作之后,怎么再知道当前矩阵数据状态呢. 具体代码 首先请看下面的一 ...

  5. CSharpGL(32)矩阵与四元数与角度旋转轴的相互转换

    CSharpGL(32)矩阵与四元数与角度旋转轴的相互转换 三维世界里的旋转(rotate),可以用一个3x3的矩阵描述:可以用(旋转角度float+旋转轴vec3)描述.数学家欧拉证明了这两种形式可 ...

  6. “为什么DirectX里表示三维坐标要建一个4*4的矩阵?”

    0x00 前言 首先要说明的是,本文的标题事实上来自于知乎上的一个同名问题:为什么directX里表示三维坐标要建一个4*4的矩阵? - 编程 .因此,正如Milo Yip大神所说的这个标题事实上是存 ...

  7. js实现蛇形矩阵

    参加腾讯前端实习生笔试,真的是被虐了千百遍,除了一条js程序题,其他半点前端都没有,都是考算法,计算机原理,数据结构.下面贴上腾讯笔试最后三大条中的一条,实现一个蛇形矩阵的输出.蛇形矩阵的什么样这里我 ...

  8. ACM 中 矩阵数据的预处理 && 求子矩阵元素和问题

            我们考虑一个$N\times M$的矩阵数据,若要对矩阵中的部分数据进行读取,比如求某个$a\times b$的子矩阵的元素和,通常我们可以想到$O(ab)$的遍历那个子矩阵,对它的各 ...

  9. PAT 1050. 螺旋矩阵(25)

    本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...

随机推荐

  1. swift 定时器的使用

    在swift中,要使用定时器就需要用到对象NSTimer.通过NSTimer的实例化后,就可以调用fire方法来启用了. NSTimer有2个构造函数 init(timeInterval ti: NS ...

  2. android:ToolBar详解(手把手教程)(转)

    来源 http://blog.mosil.biz/2014/10/android-toolbar/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅 ...

  3. oracle 11g的企业管理器

    oracle 11g的企业管理器不同于其他版本,它是B/S的,默认登录为:https://localhost:1158/em,但我试了IE8跟360浏览器都不行,谷歌浏览器是可以访问的

  4. 动手开发自己的第一个 composer 包

    原文:http://blog.jayxhj.com/2016/05/basic-composer-package-development/ composer 是 PHP 的依赖管理工具,本篇文章就来说 ...

  5. 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)

    返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...

  6. 【JQuery】 ajax 无效的JSON基元

    [如题]个人理解就是 你向传数据[josn格式]了,但是后台接受确不是json格式的 数据, 贴段代码 var strJson = '{ "usercode": "123 ...

  7. android开发------编写用户界面之相对布局

    今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...

  8. 1104关于优化mysql服务器几个参数和思路

    转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...

  9. Struts2总结

    1.构建Struts2的开发环境? 1.1:导入相应jar包(最简化的,后期可以直接复制). 1.2:编写struts.xml配置文件.(从实例中提供参考). <package name=&qu ...

  10. 管理系统UI: System Bar 详解

    Google原文: http://developer.android.com/training/system-ui/index.html 管理系统UI之一:淡化System Bar(Dimming t ...