首页 技术 正文
技术 2022年11月11日
0 收藏 914 点赞 3,028 浏览 1349 个字

思路:这个题看着感觉不能dp,其实是可以dp的,因为狼每次走两步,兔子每次走一步,每进行一轮以后,狼和兔子的距离

肯定是在接近的,没有相同的状态,dp之前预处理出来,每一步狼该往哪里走。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int>using namespace std;const int N = + ;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 +;int n, m, S, T, dis[N][N], nx[N][N];
bool vis[N];
vector<int> edge[N];double f[N][N];void bfs(int s) { memset(vis, false, sizeof(vis));
dis[s][s] = ; vis[s] = true;
queue<int> que;
for(int i = ; i < edge[s].size(); i++) {
int v = edge[s][i];
dis[s][v] = ;
nx[s][v] = v;
vis[v] = true;
que.push(v);
} while(!que.empty()) {
int u = que.front(); que.pop();
for(int i = ; i < edge[u].size(); i++) {
int v = edge[u][i];
if(!vis[v]) {
dis[s][v] = dis[s][u] + ;
nx[s][v] = nx[s][u];
vis[v] = true;
que.push(v);
} else if(vis[v] && dis[s][u] + == dis[s][v]) {
nx[s][v] = min(nx[s][v], nx[s][u]);
}
}
}
}double dp(int i, int j) {
if(f[i][j] >= ) return f[i][j];
if(i == j) return f[i][j] = ;
if(nx[i][j] == j || nx[nx[i][j]][j] == j) return f[i][j] = ; f[i][j] = ;
int nxi = nx[nx[i][j]][j];
double p = 1.0 / ((int) edge[j].size() + ); for(int k = ; k < edge[j].size(); k++) {
f[i][j] += p * dp(nxi, edge[j][k]);
} f[i][j] += p * dp(nxi, j);
return f[i][j];
}int main() { scanf("%d%d", &n, &m);
scanf("%d%d", &S, &T); for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++)
f[i][j] = -; for(int i = ; i <= m; i++) {
int u, v; scanf("%d%d", &u, &v);
edge[u].push_back(v);
edge[v].push_back(u);
} for(int i = ; i <= n; i++) bfs(i); printf("%.3f\n", dp(S, T));
return ;
}/*
*/
上一篇: vim编码相关
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289