题意:一个机器人在正方形迷宫的左上角,迷宫里有些格子有障碍物,每一步机器人会等概率地向能走的格子转移(包含自身)。问你无限长的时间之后,机器人处于矩形对角线的右下方的概率。

无限长时间意味着,起点没有了意义。只需统计右下方每个格子的贡献之和比上所有格子的贡献之和。

假设迷宫不是离散的,而是连续的,那么概率就是右下方的面积比上正方形的总面积。

然而,因为迷宫是离散的,而且有坏点存在,也就意味着会有“边缘效应”存在,边缘处的贡献会降低。假设最开始中间每个格子贡献为5(有五个格子可以转移到它),边缘为4,角落为3。再扣去坏点的损失,直接用右下方之和比上所有之和就是答案了。

#include<cstdio>
#include<algorithm>
using namespace std;
int T,n,K;
int x[1005],y[1005];
typedef long long ll;
const int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
bool a[10005][10005];
int main(){
scanf("%d",&T);
for(int zu=1;zu<=T;++zu){
scanf("%d%d",&n,&K);
ll ans=(ll)(n-2)*(ll)(5*n+6)+12ll;
ll ans2=(ans-5ll*(ll)n+4ll)/2ll+5ll*(ll)n-4ll;
for(int i=1;i<=K;++i){
scanf("%d%d",&x[i],&y[i]);
a[x[i]][y[i]]=1;
}
for(int i=1;i<=K;++i){
int cnt=0;
for(int j=0;j<4;++j){
int tx=x[i]+dx[j],ty=y[i]+dy[j];
if(tx>=0 && tx<n && ty>=0 && ty<n){
++cnt;
if(!a[tx][ty]){
--ans;
if(tx+ty>=n-1){
--ans2;
}
}
}
}
ans-=(ll)(cnt+1);
if(x[i]+y[i]>=n-1){
ans2-=(ll)(cnt+1);
}
}
printf("Case #%d: %lld/%lld\n",zu,ans2/__gcd(ans2,ans),ans/__gcd(ans2,ans));
for(int i=1;i<=K;++i){
a[x[i]][y[i]]=0;
}
}
return 0;
}

【概率】【找规律】hdu6229 Wandering Robots的更多相关文章

  1. hdu6229 Wandering Robots 2017沈阳区域赛M题 思维加map

    题目传送门 题目大意: 给出一张n*n的图,机器人在一秒钟内任一格子上都可以有五种操作,上下左右或者停顿,(不能出边界,不能碰到障碍物).题目给出k个障碍物,但保证没有障碍物的地方是强联通的,问经过无 ...

  2. HDU 6229 - Wandering Robots - [概率题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6229 转载: https://blog.csdn.net/Anna__1997/article/det ...

  3. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)" role=" ...

  4. HDU 4910 Problem about GCD 找规律+大素数判断+分解因子

    Problem about GCD Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. Just Random HDU - 4790 思维题(打表找规律)分段求解

    Coach Pang and Uncle Yang both love numbers. Every morning they play a game with number together. In ...

  6. 【HDOJ6229】Wandering Robots(马尔科夫链,set)

    题意:给定一个n*n的地图,上面有k个障碍点不能走,有一个机器人从(0,0)出发,每次等概率的不动或者往上下左右没有障碍的地方走动,问走无限步后停在图的右下部的概率 n<=1e4,k<=1 ...

  7. hdu 3951 - Coin Game(找规律)

    这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...

  8. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  9. hdu4952 Number Transformation (找规律)

    2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...

随机推荐

  1. Android 搭建Linux系统

    本文精心从网上搜罗出相关资料并整理,含有大量外部链接 安卓手机上安装linux大致分为两种方案 一.使用Linux Deploy 二.使用 Linux on Android 本文对Linux Depl ...

  2. L - Looking for Taste Gym - 101991L 二进制枚举/思维

    方法一:因为最多是10的六次方,所以可以直接枚举二进制上的每一位来得到最优结果. AC代码: #include<iostream> #include<stack> #inclu ...

  3. thinkphp博客项目纪录

    项目地址:http://files.cnblogs.com/files/wordblog/blog.zip

  4. 【过滤器】web中过滤器的使用与乱码问题解决

    一.过滤器Filter 1.filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目   标资源访问前后进行逻辑处理 2.快速入门 步骤: 1)编写一个过 ...

  5. linux的主题与图标

    我先在使用arch跟xfce, 速度没得说,偶尔用一下openbox 有一天将xfce的声音给搞没了,完全不知道哪里配置错了,只好将用户文件夹下的所有配置删除,然后重启进入一切又ok啦 说一下主题,小 ...

  6. C++ 模板特化以及Typelist的相关理解

    近日,在学习的过程中第一次接触到了Typelist的相关内容,比如Loki库有一本Modern C++ design的一本书,大概JD搜了一波没有译本,英文版600多R,瞬间从价值上看到了这本书的价值 ...

  7. juery中循环遍历json数组

    var dataList=[]; var stock0={stockcode:"007758",stockname:"商业政7",state:"1&q ...

  8. openjudge-NOI 2.6-2988 计算字符串距离

    题目链接:http://noi.openjudge.cn/ch0206/2988/ 题解: 首先,题目有误,少了一个添加操作 和求解LCS之类的思路类似 f[i][j]表示a序列中1..i的部分和b序 ...

  9. Springboot swagger2 导出api文档

    具体导出的代码,参考了:http://www.spring4all.com/article/699 导出前,首先需要配置好swagger2,参见 https://www.cnblogs.com/yan ...

  10. Windows: 在系统启动时运行程序、定时计划任务、定时关机

    lesca今天介绍一些让系统在启动时,而非登录时,加载用户自定义的应用程序或脚本的方法,推荐度从前到后依次递减. 1. Windows任务计划(task scheduler) 用户可以按以下步骤进行操 ...