找啊找啊找朋友
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB
Total submit users: 14, Accepted users: 11
Problem 11548 : No special judgement
Problem description
  小明和小红是一对好朋友,小明一有空就去找小红玩。可是小红飘忽的行踪让小明非常是伤脑筋。

小红居住的小区的地下有当年抗战时期留下的地道,小红平时总是喜欢在这些地道里走来走去。

小红所在的小区有N个地道出入口,依次标记为0到N-1,小明想知道当他到小区的时候小红会在那个地道出入口,这样他就不会走冤枉路了。

小红初始的时候会在D号出入口,小明会在T个单位之间之后到达,小红每一个单位时间一定会从她当前所在的出入口通过地道走到与之相邻的出入口,假设有多个出入口与之相邻,那么她会等概率随机选择一个进行移动,即假设有3个,那么走到不论什么一个的概率都是1/3。4个的话就是1/4。

如今给你整个小区地道的布局。请你告诉小明T个单位时间之后,小红在各个出入口的概率是多少。

Input
  多组例子,请处理到文件结束。 

每组例子第一行包含3个整数,N (2 <= N <= 50), D(0 <= D < N), T(1 <= T <= 10^9).

接下来包括一个N * N的矩阵,每一个元素仅仅可能是0或者1,第i行第j列是1表示i号出入口与j号出入口有通道相连.数据保证各出入口都是联通的,并且矩阵一定是对称矩阵,当i==j时,元素的值一定是0.
Output
  对每组例子,首先输出一行Case #k:,k从1開始. 接着输出N个数,表示在出入口0到N-1的概率,保留2位小数,数字之间用一个空格隔开
Sample Input
2 0 2
0 1
1 0
3 1 1
0 1 1
1 0 1
1 1 0
Sample Output
Case #1:
1.00 0.00
Case #2:
0.50 0.00 0.50
Problem Source
  HNU Contest 

解析:我好像是用的矩阵做的。用到矩阵的高速幂

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define MAX(a,b) a>b? a:b
#define MIN(a,b) a<b?a:b
#define Max 1000000000
using namespace std;
int n,d,t;
double s[55][55],sum[55][55];
void cmp(double (*a)[55],double (*b)[55])//求矩阵a乘以矩阵b再存储在a中
{//跟度娘问候了半天。也没找到一个优化的计算法,仅仅有这个n^3的,还是抱着看看是否超时的想法来提交的。。
    int i,j,k,l;
    double c[55][55]={0};
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    if(a[i][j]>0)//这个也算剪枝吧
    {
        for(k=0;k<n;k++)
        c[i][k]+=a[i][j]*b[j][k];
    }
    for(i=0;i<n;i++)//把结果存到a里面去
    for(j=0;j<n;j++)
    a[i][j]=c[i][j];
}
void ksm()//标准高速幂,喜欢的带回家
{
    int i,j,k,l;
    memset(sum,0,sizeof(sum));
    sum[d][d]=1;//起点在d,那么就记录在sum[d][d]
    while(t>0)
    {
        if(t%2==1)cmp(sum,s);
        t/=2;
        cmp(s,s);
    }
}
int main(void)
{
    int i,j,k,l,cas=1;
    double c;
    while(scanf("%d%d%d",&n,&d,&t)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            c=0;
            for(j=0;j<n;j++)
            {
                scanf("%lf",&s[i][j]);
                c+=s[i][j];
            }
            if(c)
            for(j=0;j<n;j++)
            s[i][j]/=c;
        }
        ksm();
        printf("Case #%d:\n",cas++);
        for(i=0;i<n;i++)//我也不知道咋滴。所有打出来结果仅仅有第d行才有数据,应该是矩阵的特性吧。
        printf("%.2lf%c",sum[d][i],i==n-1?'\n':' ');
    }
    return 0;
}

hunnu--11548--找啊找啊找朋友的更多相关文章

  1. Head First 设计模式 --8 模板方法模式 别找我,我会找你

    模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤.设计原则:1.封装变化2.多用组合少用集成3.针对接口变 ...

  2. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  3. hunnu - 11545 小明的烦恼——找路径 (最大流)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545 只是要求不经过相同的边,那么每次找出一条增广路T-- ...

  4. hunnu 11545小明的烦恼——找路径 (最大流)

    小明的烦恼--找路径  Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: ...

  5. sql server 子找父和父找子

    父找子 with RTD1 as( select Id,pid from Sys_XCode ), RTD2 as( select * from RTD1 where id=1 union all s ...

  6. 常用的sql语句(找不同位数,找重复)

    1.SQL找不同位数 select length(aae135),count(1) from ac01 group by  length(aae135) ; ————————————————————— ...

  7. jquery parents() next() prev() 找父级别标签 找同级别标签

    html结构 解决方法: jquery parents()  找父级别标签 next() 同级别向下找 prev() 同级别想上找 我这里找的是一个,下面有n个的方法 $(document).read ...

  8. 【IDEA】【maven】idea使用maven插件 打包提示找不到符号找不到类,但是却没有错误

    [本篇方法如果无效,请使用终极解决方法] [终极解决方法]:https://www.cnblogs.com/sxdcgaq8080/p/10117852.html 如下,在右侧maven工具中进行打包 ...

  9. UVaLive 6950 && Gym 100299K Digraphs (DFS找环或者是找最长链)

    题意:有n个只包含两个字母的字符串, 要求构造一个m*m的字母矩阵, 使得矩阵的每行每列都不包含所给的字符串, m要尽量大, 如果大于20的话构造20*20的矩阵就行了. 析:开始吧,并没有读对题意, ...

  10. 【Java】idea找不到符号找不到类,但是却没有错误

    编译错误,Ctrl+Shift+F9 将提示没有符号类的文件打开,右键单独编译一次,再重新打包即可解决: 特别说明:在Java的集成开发环境中,比如Eclipse.IDEA中,有常常有三种与编译相关的 ...

随机推荐

  1. 记录: 百度webuploader 分片文件上传java服务器端(spring mvc)示例的优化

    最近项目上用到文件分片上传,于是找到了百度的一个开源前端控件webuploader. 于是尝试使用. 下载下来后,它提供的服务器端示例代码是php版的,那么Java版的呢? 其实,上传文件都是按照rf ...

  2. Jquery 返回json数据在IE浏览器中提示下载的问题

    Jquery 返回json数据,IE浏览器提示下载的问题,当提交完数据后返回的本来是json数据的,在火弧里测试正常,解决方法如下 今天遇到Jquery 返回json数据,IE浏览器提示下载的问题,当 ...

  3. Codeforces Gym100971 B.Derangement (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)

    昨天训练打的Gym,今天写题解. 这个题就是输出的时候有点小问题,其他的都很简单. 代码: #include<iostream> #include<cstring> #incl ...

  4. UVA 272 TEX Quotes【字符串】

    https://vjudge.net/problem/UVA-272 [分析]:标记一下. [代码]: #include <bits/stdc++.h> using namespace s ...

  5. codeigniter视图

    怎么加载视图? 例如我们有一个视图在 application/views/welcome.php public function index() { $this->load->view(' ...

  6. 深入SQL SERVER 2000的内存管理机制

    http://www.cnblogs.com/softj/articles/243591.html

  7. 【spring cloud】子模块启动报错com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect

    spring cloud子模块启动报错 Caused by: java.lang.ClassNotFoundException: com.netflix.hystrix.contrib.javanic ...

  8. 【前端阅读】——《程序员思维修炼》摘记&读后感&思维导图

    前言:这是一本介绍如何用脑的书,并从思维的角度(以程序员为例),介绍如何从新手成为专家.作者带领着读者(我)共同经历一次有关认知科学.神经学.学习和行为理论的旅程,探索人类大脑令人 惊奇的工作的机制, ...

  9. 报错: Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library

    报错: Access restriction:The type JPEGCodec is not accessible due to restriction on required library C ...

  10. mongoDb学习以及spring管理 (包括百度云配置)

    1.windows下的安装http://www.cnblogs.com/liuzhiying/p/5915741.html 2.慕课网学习单机操作mongoDb 赋权限:http://blog.csd ...