Light OJ 1151 (概率DP、高斯消元)

期望与概率DP专题/高斯消元 高斯消元 总结:概率和期望问题的求解都要依靠递推式,概率问题按照递推式进行dp,期望问题根据递推式化简的难易程度通过化简再dp或高斯消元求解,该类问题大部分仍属于各个类型的dp求解问题 2018.9.3-概率与期望dp学习 Discovering Gold 一排1到n的格子,每个格子上有黄金 ai ,你最开始在 1 号,每一次投骰子决定到哪一个格子,超出1~n范围则重新投掷,你到了哪个格子... 阅读详情

题目链接:https://vjudge.net/problem/LightOJ-1151


思路:


    因为这不是个DAG,所以记忆化会出现环。这种情况就要用高斯消元了。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
#include<iostream>
#include<map>
#include<cmath>
#define fin freopen("a.txt","r",stdin)
#define fout freopen("out.txt", "w", stdout)
using namespace std;
const int maxn = 100 + 10;
const double eps = 1e-7;
double a[maxn][maxn], x[maxn];
bool l[maxn];
int G[maxn];

int solve(double a[][maxn], double ans[], bool l[maxn], const int& n)
{
    int res = 0, r = 0;
    for(int i = 0; i < n; i++)
        l[i] = false;
    for(int i = 0; i < n; i++) {
        for(int j = r; j < n; j++)
           if(fabs(a[j][i] > eps)) {
              for(int k = i; k <= n; k++)
                swap(a[j][k], a[r][k]);
              break;
           }
        if(fabs(a[r][i]) < eps) {
            ++res;
            continue;
        }
        for(int j = 0; j < n; j++)
           if(j != r && fabs(a[j][i]) > eps) {
              double tmp = a[j][i] / a[r][i];
              for(int k = i; k <= n; ++k)
                a[j][k] -= tmp * a[r][k];
           }
        l[i] = true, ++r;
    }

    for(int i = 0; i < n; i++)
        if(l[i])
           for(int j = 0; j < n; j++)
              if(fabs(a[j][i]) > 0)
                 ans[i] = a[j][n] / a[j][i];
    return res;

}



int main()
{
	fin;
    int T, kase = 0, n, u, v;
    scanf("%d", &T);
    while(T--)
    {
    	memset(a, 0, sizeof a);
    	scanf("%d", &n);
        memset(G, -1, sizeof G);
        for(int i = 1; i <= n; i++)
        {
            scanf("%d%d", &u, &v);
            u--; v--;
            G[u] = v;
        }
        for(int i = 0; i < 94; i++)
        {
        	if(G[i] >= 0)
        	{
        		a[i][i] = 1;
        		a[i][G[i]] = -1;
        		continue;
        	}
        	a[i][i] = 6;
        	for(int j = i+1; j <= i+6; j++) a[i][j] = -1.0;
        	a[i][100] = 6.0;
        }
        for(int i = 94; i < 99; i++)
        {
        	if(G[i] >= 0)
        	{
        		a[i][i] = 1;
        		a[i][G[i]] = -1;
        	}
        	else
        	{
        		a[i][i] = 1.0 * (99-i);;
        		for(int j = i+1; j <= 99; j++)
        			a[i][j] = -1.0;
        		a[i][100] = 6.0;
        	}
        }
        a[99][99] = 1.0;
        solve(a, x, l, 100);
        printf("Case %d: %.10f\n", ++kase, x[0]);
    }
    return 0;
}



Deep Reinforcement Learning - 1. DDPG原理和算法 Deep Reinforcement Learning - 1. DDPG原理和算法 背景描述 DDPG的定义和应用场景 DDPG算法相关基本概念定义 DDPG实现框架和算法 DDPG对于DPG的关键改进 下一篇 以下用RL作为Reinforcement Learning 的简称。背景描述概括来说,RL要解决的问 阅读详情

相关推荐

5步搞定ABB机器人RobotStudio与S7-1500PLC的Profinet通讯(附PLCSIM调试技巧)

本文详细介绍了如何利用RobotStudio与TIA Portal软件,结合PLCSIM Advanced仿真器,在零硬件条件下实现ABB机器人与西门子S7-1500 PLC之间的Profinet通讯虚拟调试。通过五个核心步骤,从环境搭建、网络配置、信号映射到联合仿真与高级调试,帮助工程师在项目前期高效验证逻辑、压缩现场调试周期,并掌握实用的PLCSIM调试技巧。

weixin_29188043的博客 505

高斯消元入门⑥-配合求解概率/期望dp-HDU4870

前言: 对于期望dp/概率dp,我们有状态以及状态转移方程.我们将所有的状态看成未知数,状态转移方程看成线性方程。那么就得到了一个线性方程组. 适用情形: 状态转移有后效性时 优化点: 大多数情况下它会是一个稀疏矩阵(因为一个转移方程所牵涉到的状态比较少).所以在 消元的时候,遇到0元素就continue. 这个trick可以将复杂度从三次方优化到近似二次方.(前提是要是一个稀疏矩阵.) 题目一:HDU4780 题目大意: 你有两个数A,BA,BA,B。 每次你会选择min(A,B)min(A,B)min(

qq_35577488的博客 673

【锂离子电池力学耦合及相场法模拟技术与应用】

8. 电化学仿真软件的使用与案例分析 (1) 各向异性纳米线锂化应力分析(实例讲解1) (2) 化学反应及死锂现象研究(案例分析2)(3) 锂化循环损伤计算(案例分析3)6. 4. 电池材料的力学与电化学耦合性能分析(1) 耦合效应对电池性能的影响(2) 耦合模型的验证与应。5. 5. 电池颗粒、极片、电芯尺度力-电-化-热多场耦合模型概述力学-7. 颗粒尺度耦合模型在电池失效分析中的应用。2. 2. 电池电极材料的分类与特性。5. (2) 耦合模型的验证与应用。电化学耦合模型与仿真。

weixin_51101456的博客 521

bzoj 3270: 博物馆

Time Limit:30 SecMemory Limit:128 MBSubmit:167Solved:94[Submit][Status][Discuss] Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆。这座博物馆有着特别的样式。它包含由m条走廊连接的n间房间,并且满足可以从任何一间房间到任...

weixin_33779515的博客 224

OV5640调试大坑,关于binning、RES分辨率与EV曝光

OV5640在使用binning模式时,必须考虑使用场景,分辨率下降叠加动态范围压缩,会使目标对象细节在高光环境下大量丢失,2x2的binning模式,分辨率会远低于感光面积的1/4。

chongyun_的专栏 1824

第4课 SiC MOSFET的动态特性——关断过程

本文分析了SiC MOSFET的关断过程,将其划分为四个阶段:栅源电容放电阶段(t6-t7)、米勒平台阶段(t7-t8)、电压过冲阶段(t8-t9)和换流结束阶段(t9-t10)。通过等效电路详细描述了各阶段的电压电流变化特点。同时探讨了MOSFET的极间电容特性,包括输入电容Ciss、输出电容Coss和反向转移电容Crss,分析了它们对器件开关速度、损耗及电压变化速率的影响。研究指出这些非线性电容会显著影响器件的动态性能。

嵌入式老牛的博客 1045

LightOJ 1151 Snakes and Ladders (期望+高斯消元)

题意:有100个格子,初始位置在1,格子之间可能存在传送,传送不会连续,每次掷骰子前进相应步数,若走出去重新掷骰子,求最后走到100的掷骰子的期望数。 题解:期望+高斯消元 跟这题有点搞混,链接给的是与掷骰子无关的金子数,只要考虑能到的格子,这题是掷骰子要掷多少次的期望,考虑包括不能到的格子。 因为格子与格子之间存在传送,不好递推,用高斯消元解方程。 考虑三种情况: ①不存在传送,假设cnt为不超...

gongyuandaye的博客 319

从玩具到工业:手把手教你用Webots仿真Scara抓取(逆解实战篇)

本文详细介绍了如何在Webots仿真环境中实现Scara机械臂的逆解计算与抓取操作,涵盖从环境配置、逆运动学算法到轨迹规划与实时控制的完整流程。通过实战案例演示,帮助读者掌握机械臂逆解的核心技术,并应用于工业自动化场景,提升Scara机械臂的编程与控制能力。

weixin_30932215的博客 504

LightOJ 1151 Snakes and Ladders(概率DP + 高斯消元)

题意:1~100的格子,有n个传送阵,一个把进入i的人瞬间传送到tp[i](可能传送到前面,也可能是后面),已知传送阵终点不会有另一个传送阵,1和100都不会有传送阵。每次走都需要掷一次骰子(1~6且可能性一样),掷多少走多少,目的地超出100重掷,问你走到100所需掷骰子的期望。 思路:概率DP肯定的,但是会往前传送就很难直接算。用DP[i]代表从i走到100的期望。 那么如果i没有传送阵,...

weixin_34378045的博客 164

redhawk:avgTW maxTW minTW minWC的区别

分析dynamic ir drop报告时会遇到这几个值,avgTW maxTW minTW minWC,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 693

Unity3D实现自定义河流路径或泥石流路径

此工具是一个插件,插件很好用,可以根据地形编辑河流的走向以及宽度,也可以发挥想象编辑成其他的效果,比如泥石流效果,岩浆效果,小溪,或者大江或者大河等等博客将会介绍可以编辑河流的工具的使用。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。提示:以下是本篇文章正文内容,下面案例可供参考本次总结的就是工具的使用, 有需要会继续增加功能不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

心疼你的一切博客 5266

LightOJ - 1151

概率dp。to[i]代表第i个位置可以到的位置,初始to[i] = i。 f[i]={f[to[i]],to[i]≠i∑j=1616∗f[i+j],to[i]=if[i]=\left\{ \begin{aligned} &amp;f[to[i]],to[i]=\not i \\ &amp;\sum_{j=1}^{6}\frac{1}{6} *f[i+j],to[i]=i \end...

No cost too great! 290

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

light oj 1151 - Snakes and Ladders 高斯消元+概率DP

思路: 在没有梯子与蛇的时候很容易想到如下公式: dp[i]=1+(∑dp[i+j])/6 但是现在有梯子和蛇也是一样的,初始化p[i]=i; 当有梯子或蛇时转移为p[a]=b; 这样方程变为: dp[i]=1+(∑dp[p[i+j]])/6 再就是注意当i+j>100时,停在原地不变。 代码如下: 1 #include<iostream> 2 #...

weixin_30752377的博客 130

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LightOJ - 1151 Snakes and Ladders (高斯消元+概率DP)

题意:10*10的方格,每掷一次骰子向前走相应的步数,给n组数,x,y 表示从x可以到直接传送到y。 可以直接简化为1*100的模型,网上的一些递推公式看不太懂。每次掷骰子的时候跟前几个题是一样的,dp[i] = dp[i+1]/6 + dp[i+2]/6 + … +d[i+6]/6 +1 ; 不过要注意下边界。化简一下就可以得到 6*dp[i] - dp[i+1] - … -dp[i+6] =

ywq4321的博客 399

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

概率 高消light oj 1151

t个样例 n个楼梯或蛇; a b 刚好走到a会到b; 问走到100期望; dp[i] i到100的期望 这一点没奇怪的东西 dp[i]=1/6(dp[i+1]+dp[i+2]..+6); 有 dp[i]=dp[tp[i]]; 6*dp[i]-dp[i+1]...=6; dp[i]-dp[tp[i]]=0; 方程 然后消一下 ...

weixin_30604651的博客 66

LightOJ-1151 Snakes and Ladders

概率dp+高斯消元:https://www.cnblogs.com/jiachinzhao/p/7204458.html #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; #include&lt;cmath&gt; using namespace s...

wl16wzl的博客 263

【高斯消元求期望】LightOJ - 1151 Snakes and Ladders

Step1 Problem: 有 100 个格子,从 1 开始走,每次抛骰子走 1~6,如果所走位置大于 100,则重新抛骰子。i 会被传送至 nex[i]。 问你从 1 走到 100 所抛骰子的期望次数。 Step2 Ideas:(待填坑) Step3 Code: #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; const int N =...

ACMer 梁剑锋 的博客 319

概率dp && 高斯消元 专题训练

寒假真是极度荒废的,想补一补自己的概率方面的知识,感觉也没很好的补,只是把概率dp和高斯消元的一些东西搞懂了,难的也不会做。 什么期望的线性递推啊,概率公式,高深的基本都没学 lightoj 1027 这是以前碰到的老概率题了,当年压根不会,现在会了 有n个门让你选,每个门有一个数字,正数代表x分钟后出去,负数代表x分钟后回到起点重新开始 然后问你出去的时间期望是多少分钟 这题

Miracle_ma的专栏 1397

如何使用高斯消元解决期望DP

前言破事水一篇:我们为什么会用高斯消元来解决期望DP的问题在之前的几篇字里我们确乎是提到了期望DP的,但只有博物馆一道题是要用到高斯消元的。那么这是不是一种特例呢? Obviously not. 事实上,在期望与概率DP中引入高斯消元并不是突兀的,毫无关联的,而确乎是有实际需求的。因为在一类概率问题中,有的事件的概率是前后关联的。出于简化运算的目的,我们会列出方程来求解。这个时候我们自然需要利用

Friedrich_Taylor的博客 989

lightoj 1151 概率dp + 高斯消元

链接:vjudge.. 题意:10*10的地图,不过可以直接看成1*100的,从1出发,要到达100,每次走的步数用一个完美的大小为6的骰子决定。地图上有A和B,A和B都使你跳跃,不过一个是往前跳,一个是使你往后跳。。问从1走到100的期望 思路:概率dp的方程很简单就能想到,不过由于可以往前或者往后走,没法直接递推,用高斯消元解方程组得到解。//原来一直都懒得用高斯消元,都想递推解决,不过有

黑山老猴妖的专栏 1472

Rating【概率dp+高斯消元】

题目链接:https://vjudge.net/problem/HDU-4870 将问题转换为每次可能+1分,-2分,目标到达20分。 且最终状态一定是一个账号19分,另一个账号20分。 因为期望的线性性,所以可以对两个账号分别计算期望,然后求和。 dp[u]表示以u分开始,到达20分的期望比赛场数,那么有dp[u] = p*(dp[u+1]+1) + (1-p)*(dp[u-2]+1) ...

蒟蒻 lxw的博客 403

[概率DP] LightOJ 1151 - Snakes and Ladders

1151 - Snakes and Ladders 题意: 有100个格子,从1开始走,每次随机走1~6。有n个格子会单向传送到其他格子,tp[i]表示从i传送到tp[i]。 1和100不会有传送,一个格子也不会有两种传送。问走到100的期望值,注意不能走到100以外。 题解: 容易看出是个期望值DP,用DP[i]DP[i]表示从第ii个格子走出去需要走的次数,有两种情况。 1.1.第i

穹妹的家 1799

LightOJ1151---Snakes and Ladders (高斯消元+概率dp)

‘Snakes and Ladders’ or ‘Shap-Ludu’ is a game commonly played in Bangladesh. The game is so common that it would be tough to find a person who hasn’t played it. But those who haven’t played it (unlucky

Alex 2022

lightoj1151——高斯消元+期望

题目链接:https://cn.vjudge.net/problem/LightOJ-1151 'Snakes and Ladders' or 'Shap-Ludu' is a game commonly played in Bangladesh. The game is so common that it would be tough to find a person who hasn't p...

mumei的博客 454

LightOJ - 1151概率dp+高斯消元

概率dp+高斯消元 https://vjudge.net/problem/LightOJ-1151 题意:刚开始在1,要走到100,每次走的距离1-6,超过100重来,有一些点可能有传送点,可以传送到前面或后面,那么概率dp没法递推,只能高斯消元 设期望E(x),首先100这个位置的期望E(100)=0,然后可以找出方程, 对于传送点,E(x)=E(go(x)),对于非传送点,E(x)=(E...

weixin_30892987的博客 187

高斯消元配合概率dp-图上随机游走模型

题目大意: 给你一张无向连通图,从第111点随机游走到nnn点。花费为经过的边的编号的和.问你如何安排边的编号使得期望花费最小化. n≤500,m≤n2n \leq 500,m \leq n^2n≤500,m≤n2 题目思路: 很容易想到,求出每条边期望经过次数,然后贪心安放即可. 但是mmm太大,无法求解.考虑先求每个点期望经过次数. 考虑到nnn点就停止了,所以不考虑nnn的贡献。 显然有转移: f1=1+∑(1,j)∈Efjdujf_1=1+\sum_{(1,j)\in E}^{}\frac{f_j}

qq_35577488的博客 1185
上一篇: 伸展树模板
下一篇: UVa 1608 Non-boring sequence (分治)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值