高斯消元又弄了半天。。

注意只要能建立矩阵,那就必定有解,所以高斯消元里可以直接return 1

#include<bits/stdc++.h>
using namespace std; const int maxn = ;
const double esp = 1e-; int n,m,x,y,d;
double p[maxn],a[maxn][maxn],b[maxn];
int equ,var; int Gauss(){
for(int i=;i<n;i++){
int maxr=i;
for(int j=i+;j<n;j++)
if(fabs(a[j][i])>fabs(a[maxr][i]))
maxr=j;
if(fabs(a[maxr][i])<esp)continue;
if(maxr!=i)
swap(a[maxr],a[i]);swap(b[maxr],b[i]); for(int j=i+;j<n;j++){
if(fabs(a[j][i])<esp)continue;
double rate=a[j][i]/a[i][i];
for(int k=i;k<n;k++)
a[j][k]-=rate*a[i][k];
b[j]-=rate*b[i];
}
}
for(int i=n-;i>=;i--){
if(fabs(a[i][i])<esp)continue;
for(int j=i+;j<n;j++)
b[i]-=a[i][j]*b[j];
b[i]/=a[i][i];
}
return ;
} int id[maxn],cnt;
void bfs(int s){
memset(id,-,sizeof id);
cnt=;
queue<int>q;
q.push(s);id[s]=cnt++;
while(q.size()){
int x=q.front();q.pop();
for(int i=;i<=m;i++){
if(fabs(p[i])<esp)continue;
int y=(x+i)%n;
if(id[y]==-)
q.push(y),id[y]=cnt++;
}
}
} int main(){
int t;cin>>t;
while(t--){
scanf("%d%d%d%d%d",&n,&m,&y,&x,&d); for(int i=;i<=m;i++)
scanf("%lf",&p[i]),p[i]/=;
if(x==y){puts("0.00");continue;} n=*(n-);
if(d==)x=n-x;
bfs(x);
if(id[y]==- && id[n-y]==-){
puts("Impossible !");continue;
}
equ=var=cnt; memset(a,,sizeof a);
memset(b,,sizeof b);
for(int i=;i<n;i++){
if(id[i]==-)continue;
a[id[i]][id[i]]=;
if(i==y || i==n-y)continue;//到了终点y
for(int j=;j<=m;j++){
int y=(i+j)%n;
if(id[y]!=-){
a[id[i]][id[y]]-=p[j];
b[id[i]]+=j*p[j];
}
}
}
if(Gauss())
printf("%.2lf\n",b[id[x]]);
else printf("Impossible !\n");
}
}

期望dp+高斯消元+bfs——hdu4418的更多相关文章

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

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

  2. hdu4418 Time travel 【期望dp + 高斯消元】

    题目链接 BZOJ4418 题解 题意:从一个序列上某一点开始沿一个方向走,走到头返回,每次走的步长各有概率,问走到一点的期望步数,或者无解 我们先将序列倍长形成循环序列,\(n = (N - 1) ...

  3. HDU4418 Time travel(期望dp 高斯消元)

    题意 题目链接 Sol mdzz这题真的太恶心了.. 首先不难看出这就是个高斯消元解方程的板子题 \(f[x] = \sum_{i = 1}^n f[to(x + i)] * p[i] + ave\) ...

  4. ZJUT 1423 地下迷宫(期望DP&高斯消元)

    地下迷宫 Time Limit:1000MS  Memory Limit:32768K Description: 由于山体滑坡,DK被困在了地下蜘蛛王国迷宫.为了抢在DH之前来到TFT,DK必须尽快走 ...

  5. HDU 2262 Where is the canteen 期望dp+高斯消元

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...

  6. 【noi2019集训题1】 脑部进食 期望dp+高斯消元

    题目大意:有n个点,m条有向边,每条边上有一个小写字母. 有一个人从1号点开始在这个图上随机游走,游走过程中他会按顺序记录下走过的边上的字符. 如果在某个时刻,他记录下的字符串中,存在一个子序列和S2 ...

  7. LightOJ 1151 Snakes and Ladders 期望dp+高斯消元

    题目传送门 题目大意:10*10的地图,不过可以直接看成1*100的,从1出发,要到达100,每次走的步数用一个大小为6的骰子决定.地图上有很多个通道 A可以直接到B,不过A和B大小不确定   而且 ...

  8. P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】

    正题 题目链接:https://www.luogu.com.cn/problem/P4457 题目大意 开始一个人最大生命值为\(n\),剩余\(hp\)点生命,然后每个时刻如果生命值没有满那么有\( ...

  9. Codeforces.24D.Broken robot(期望DP 高斯消元)

    题目链接 可能这儿的会更易懂一些(表示不想再多写了). 令\(f[i][j]\)表示从\((i,j)\)到达最后一行的期望步数.那么有\(f[n][j]=0\). 若\(m=1\),答案是\(2(n- ...

随机推荐

  1. 《代码大全2》读书笔记 Week2

    <代码大全2>第四.五章 第四章“关键的‘构建’决策”主要有以下三要点:1.每种编程语言都有优点和缺点,程序员应根据需要选择编程语言,尽量选择熟悉的语言以提高生产效率.作为一种表达工具,编 ...

  2. 【学术篇】CF935E Fafa and Ancient Mathematics 树形dp

    前言 这是一道cf的比赛题.. 比赛的时候C题因为自己加了一个很显然不对的特判WA了7次但找不出原因就弃疗了... 然后就想划水, 但是只做了AB又不太好... 估计rating会掉惨 (然而事实证明 ...

  3. github合并分支到master

    (1)切换到master分支 git checkout master (2) 将backup分支的代合并到master git merge backup (3) 查看状态 git status (4) ...

  4. leetcood学习笔记-54-螺旋矩阵

    题目描述: 第一次提交: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: j,x = 0 ...

  5. Java中JNI的使用详解第六篇:C/C++中的引用类型和Id的缓存

    首先来看一下C/C++中的引用 从Java虚拟机创建的对象传到本地C/C++代码时会产生引用,根据Java的垃圾回收机制,只要有引用存在就不会触发该引用指向的Java对象的垃圾回收 第一.局部引用: ...

  6. 线段树区间离散化——牛客多校E

    这个区间离散化把我调死了.. 总之用vector来离散化,然后叶子节点维护的是一段区间,记录下每个叶子结点的起点+长度 千万要注意下标不能弄错! #include<bits/stdc++.h&g ...

  7. csp-s模拟测试97

    csp-s模拟测试97 猿型毕露.水题一眼秒,火题切不动,还是太菜了. $T1$看了一会儿感觉$woc$期望题$T1??$假的吧??. $T2$秒. $T3$什么玩意儿. 40 01:24:46 00 ...

  8. var 更明确地表示一个变量被设置为零值

    创建一个变量并被初始化其为零值,习惯使用关键字var.这种做法是为了更明确地表示一个变量被设置为零值. 如果变量被初始化为某个非零值,就配合结构字面量和短变量操作符来创建变量. 零值 数值类型:0 字 ...

  9. Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包)

    Tags: Hadoop Centos7.5安装分布式Hadoop2.6.0+Hbase+Hive(CDH5.14.2离线安装tar包) Centos7.5安装分布式Hadoop2.6.0+Hbase ...

  10. 洛谷P2184——贪婪大陆

    传送门:QAQQAQ 题意:给一个长度为$n$的区间,每次可以进行两种操作: 1.在$[l,r]$这个区间里放置一个和之前种类不同的炸弹 2.查询在$[l,r]$区间内有多少种不同种类的炸弹 思路:第 ...