博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOI2005]聪聪与可可(期望dp)
阅读量:4636 次
发布时间:2019-06-09

本文共 1839 字,大约阅读时间需要 6 分钟。

题意:给一张无向图,有一只猫和一只老鼠,猫每秒会向老鼠的方向移动两个单位,若它们的距离为一,那么只会移动一个单位,老鼠会等概率向周围移动一步或不动,求猫抓到老鼠的期望时间。

Solution

luoguAC第800题。

注意到猫的运动之和猫的位置和老鼠的位置有关,我们可以对其进行预处理,注意若有多种方案的情况会向编号小的点移动。

然后发现猫和老鼠的距离一定是会减小的,不如记录状态进行记忆化搜索,这样转移是不会出现环的。

Code

#include
#include
#include
#include
#define N 1002using namespace std;queue
q;const double eps=1e-10;int head[N],dis[N][N],tot,tag[N][N],n,m,s,t;bool vis[N];double dp[N][N];struct zzh{ int n,to;}e[N<<1];inline void add(int u,int v){ e[++tot].n=head[u]; e[tot].to=v; head[u]=tot;}double dfs(int s,int t){ if(dp[s][t]>eps)return dp[s][t]; if(s==t)return 0; int ss=tag[s][t]; if(ss==t)return 1; ss=tag[ss][t]; if(ss==t)return 1; double sum=0,ans=0; for(int i=head[t];i;i=e[i].n)ans+=dfs(ss,e[i].to),sum++; ans+=dfs(ss,t);ans=ans/(sum+1)+1; return dp[s][t]=ans;}int main(){ scanf("%d%d%d%d",&n,&m,&s,&t);int u,v; for(int i=1;i<=m;++i){scanf("%d%d",&u,&v);add(u,v);add(v,u);} memset(dis,0x3f,sizeof(dis));memset(tag,0x3f,sizeof(tag)); for(int i=1;i<=n;++i){ dis[i][i]=0; q.push(i); while(!q.empty()){ int u=q.front();q.pop();vis[u]=0; for(int j=head[u];j;j=e[j].n){ int v=e[j].to; if(dis[i][v]>dis[i][u]+1){ dis[i][v]=dis[i][u]+1; if(!vis[v]){ vis[v]=1; q.push(v); } } } } } for(int i=1;i<=n;++i) for(int k=1;k<=n;++k) for(int j=head[i];j;j=e[j].n) if(dis[i][k]==dis[i][e[j].to]+dis[e[j].to][k])tag[i][k]=min(e[j].to,tag[i][k]); printf("%.3lf",dfs(s,t)); return 0;}

 

转载于:https://www.cnblogs.com/ZH-comld/p/9680865.html

你可能感兴趣的文章
改变Web Browser控件IE版本
查看>>
Datagrip连接Mysql 和Hive
查看>>
CentOS与Win7远程桌面互通
查看>>
第一道A的BFS 。。。。SDUT的BFS水题联系
查看>>
java-Date-DateFormat-Calendar
查看>>
封装CLLocationManager定位获取经纬度
查看>>
Android实现换肤功能(二)
查看>>
Jmeter HTTP Proxy Server 代理录制 IE无法录制到请求的问题解决
查看>>
201621123026《JAVA程序设计》第十周学习总结
查看>>
Objective-c语言 字符串类NSMutableString用法
查看>>
我的第一篇博客-(Eclipse中或Myeclipse中如果不小心删除了包那可怎么办?)
查看>>
对easyui datagrid组件的一个小改进
查看>>
类似以下三图竞争关系的IT企业
查看>>
Qt5启动画面
查看>>
清明节
查看>>
Spring-Cloud-Zuul-网关配置
查看>>
瑞柏匡丞:电商转化率从何而来
查看>>
VMware workstation CentOs 7 虚拟机网卡设置为NAT模式并设置固定IP
查看>>
Philosophy is systematic reflective thinking on life.
查看>>
谈谈一些有趣的CSS题目(七)-- 消失的边界线问题
查看>>