这题的状态是循环依赖的有环。。

之前一道概率DP,类似有环。。但是它是可以消掉的

比如dp[i]=0.3*dp[i+1]+0.2*dp[i+2]+0.5*dp[i];

完全可以变成,0.5*dp[i]=0.3*dp[i+1]+0.2*dp[i+2]

然后把系数除过去就好了,

然而这个题是,dp[i]=0.5*dp[i+1]+0.5*dp[i-1]+1;

这个+1是什么意思呢,dp[i]->要到i+1,i-1任意两个状态之一,一定要付出1步的代价!

想一想背包问题。。类似的,

然后你会发现dp[i]还没递归完。。dp[i-1]和dp[i+1]又跑回来找它了。。。这不可能DP得出来

所以这个题正确的消环方法是,高斯消元

高斯消元我还不太会写。。待我学习一波回来写一写!

(学了高斯消元回来补辣!

我博客里的模板正常用是会TLE的!

需要剪枝!

 1 #include <iostream>
2 #include <cstdio>
3 #include <vector>
4 #include <cmath>
5 #include <cstring>
6 using namespace std;
7 const double EPS=1e-8;
8 int n,p;double A[1005][1005];
9 double x[1005];
10 int Gauss(){
11 for(int i=0;i<n;++i){
12 int pivot=i;
13 for(int j=i+1;j<n;++j)if(abs(A[j][i]>abs(A[pivot][i]))) pivot=j;
14 if(pivot!=i) for(int k=0;k<n;++k) swap(A[i][k],A[pivot][k]);
15 if(abs(A[i][i])<EPS) return 0;
16 for(int j=i+1;j<=n;++j) A[i][j]/=A[i][i];
17 for(int j=i+1;j<n;++j)
18 if(j!=i) {
19 if(abs(A[j][i])<EPS) continue;
20 for(int k=i+1;k<=n;++k) A[j][k]-=A[j][i]*A[i][k];
21 }
22 }
23 for(int i=0;i<n;++i) x[i]=A[i][n]; double ans;
24 for(int i=n-1;i>=0;--i){
25 ans=x[i];
26 for(int j=i+1;j<n;++j) ans-=A[i][j]*x[j];x[i]=ans;
27 }
28 return 1;
29 }
30 int main(){
31 int T;scanf("%d",&T);
32 while(T--){
33 scanf("%d%d",&n,&p);
34 //构造系数矩阵
35 memset(A,0,sizeof(A));
36 for(int i=0;i<n;++i){
37 if(i==p) {
38 A[i][i]=1;A[i][n]=0;
39 continue;
40 }
41 A[i][i]=1;A[i][(i-1+n)%n]=-0.5;
42 A[i][(i+1)%n]=-0.5;A[i][n]=1;
43 }
44 Gauss();
45 printf("%.4f\n",x[0]);
46 }
47 return 0;
48 }

14行和19行是剪枝的地方,不减的话这题最高1000^3还是会T的

sdut2878 环形依赖的DP(高斯消元,剪枝后的模板的更多相关文章

  1. BZOJ 3270: 博物馆 [概率DP 高斯消元]

    http://www.lydsy.com/JudgeOnline/problem.php?id=3270 题意:一张无向图,一开始两人分别在$x$和$y$,每一分钟在点$i$不走的概率为$p[i]$, ...

  2. BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元

    BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机 ...

  3. BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元

    BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元 题意: 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 3 ...

  4. LightOJ - 1151概率dp+高斯消元

    概率dp+高斯消元 https://vjudge.net/problem/LightOJ-1151 题意:刚开始在1,要走到100,每次走的距离1-6,超过100重来,有一些点可能有传送点,可以传送到 ...

  5. 【BZOJ3640】JC的小苹果 概率DP+高斯消元

    [BZOJ3640]JC的小苹果 Description 让我们继续JC和DZY的故事. “你是我的小丫小苹果,怎么爱你都不嫌多!” “点亮我生命的火,火火火火火!” 话说JC历经艰辛来到了城市B,但 ...

  6. 【bzoj1778】[Usaco2010 Hol]Dotp 驱逐猪猡 矩阵乘法+概率dp+高斯消元

    题目描述 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两 ...

  7. BZOJ3270 博物館 概率DP 高斯消元

    BZOJ3270 博物館 概率DP 高斯消元 @(XSY)[概率DP, 高斯消元] Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博 ...

  8. 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径

    2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 682  Solved: 384[Submit][Stat ...

  9. 2014多校第一场J题 || HDU 4870 Rating(DP || 高斯消元)

    题目链接 题意 :小女孩注册了两个比赛的帐号,初始分值都为0,每做一次比赛如果排名在前两百名,rating涨50,否则降100,告诉你她每次比赛在前两百名的概率p,如果她每次做题都用两个账号中分数低的 ...

随机推荐

  1. 2020 CSP&NOIP 游记

    CSP初赛 CSP初赛 Day -1 早上打了模拟赛,T2寒假正好做过,然而还是还是被踩Orz,郑外NB!.中午出校吃了大盘鸡和拉面,还带回来了三瓶可乐. 初赛知识点看了两页不(看)想(不)看(懂)了 ...

  2. Web自动化测试python环境中安装 --selenium安装、火狐和火狐驱动版本、谷歌和谷歌驱动版本、测试

    一.安装selenium Windows命令行(cmd)输入pip install selenium(无须指定版本默认最新)或 pip install selenium==3.141.0(可指定版本) ...

  3. CPU处理器架构和工作原理浅析

    CPU处理器架构和工作原理浅析 http://c.biancheng.net/view/3456.html 汇编语言是学习计算机如何工作的很好的工具,它需要我们具备计算机硬件的工作知识. 基本微机设计 ...

  4. goroutine 分析 协程的调度和执行顺序 并发写 run in the same address space 内存地址 闭包 存在两种并发 确定性 非确定性的 Go 的协程和通道理所当然的支持确定性的并发方式(

    package main import ( "fmt" "runtime" "sync" ) const N = 26 func main( ...

  5. 活动精彩实录 | 王峰:Cassandra在360的多场景应用及未来趋势

    点击此处观看完整活动视频 大家好,我是360的王峰,我今天主要通过Cassandra在多场景下的应用来介绍一下Cassandra在360落地的情况. 我会从以下这几个方面进行介绍.首先介绍下Cassa ...

  6. Redis集群数据没法拆分时的搭建策略

    在上一篇文章中,针对服务器单点.单例.单机存在的问题: 单点故障 容量有限 可支持的连接有限(性能不足) 提出了解决的办法:根据AKF原则搭建集群,大意是先X轴拆分,创建单机的镜像,组成主主.主备.主 ...

  7. 系列trick - 随机

    系列trick - 随机 不断更新中,欢迎来提供idea 随机的字符串 出现次数 \(\ge 2\) 的子串期望长度是 \(\log n\) 两个随机串的期望LCP,LCSuf,LCSub长度是 \( ...

  8. WireGuard 教程:使用 DNS-SD 进行 NAT-to-NAT 穿透

    原文链接:https://fuckcloudnative.io/posts/wireguard-endpoint-discovery-nat-traversal/ WireGuard 是由 Jason ...

  9. 一:Spring Boot 的配置文件 application.properties

    Spring Boot 的配置文件 application.properties 1.位置问题 2.普通的属性注入 3.类型安全的属性注入 1.位置问题 当我们创建一个 Spring Boot 工程时 ...

  10. mysql数据恢复:.frm和.ibd,恢复表结构和数据

    mysql数据恢复:.frm和.ibd,恢复表结构和数据 一.恢复表结构 二.恢复表数据 相关内容原文地址: CSDN:她说巷尾的樱花开了:mysql根据.frm和.ibd文件恢复表结构和数据 博客园 ...