博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1415 期望+记忆化搜索 ****
阅读量:5291 次
发布时间:2019-06-14

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

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 #define MOD 1000000007 10 const int INF=0x3f3f3f3f; 11 const double eps=1e-5; 12 typedef long long ll; 13 #define cl(a) memset(a,0,sizeof(a)) 14 #define ts printf("*****\n"); 15 int n,m,tt; 16 const int MAXN = 1010; 17 const int MAXM = 1010*4; 18 int mp[MAXN][MAXN]; 19 struct Edge 20 { 21 int to,next; 22 }edge[MAXM]; 23 int head[MAXN],tot; 24 void addedge(int u,int v) 25 { 26 edge[tot].to = v; 27 edge[tot].next = head[u]; 28 head[u] = tot++; 29 30 } 31 32 void init() 33 { 34 tot = 0; 35 memset(head,-1,sizeof(head)); 36 } 37 38 void bfs(int st) 39 { 40 queue
q; 41 q.push(st); 42 mp[st][st]=0; 43 while(!q.empty()) 44 { 45 int u=q.front(); 46 q.pop(); 47 for(int i=head[u];i!=-1;i=edge[i].next) 48 { 49 int v=edge[i].to; 50 if(v==u) continue; 51 if(mp[st][v]==-1) 52 { 53 mp[st][v]=mp[st][u]+1; 54 q.push(v); 55 } 56 } 57 } 58 } 59 int to[MAXN][MAXN]; 60 double f[MAXN][MAXN]; 61 bool vis[MAXN][MAXN]; 62 double F(int x,int y) 63 { 64 if(vis[x][y]) return f[x][y]; 65 vis[x][y]=1; 66 if(mp[x][y]==0) return f[x][y]=0.0; 67 if(mp[x][y]<=2) return f[x][y]=1.0; 68 double val=0; 69 int cnt=0; 70 int v; 71 for(int i=head[y];i!=-1;i=edge[i].next) 72 { 73 cnt++; 74 v=edge[i].to; 75 val+=F(to[to[x][y]][y],v); 76 } 77 return f[x][y]=val/cnt+1.0; 78 } 79 void fun() 80 { 81 for(int i=1;i<=n;i++) 82 { 83 for(int j=1;j<=n;j++) 84 { 85 printf("%.2lf ",f[i][j]); 86 } 87 printf("\n"); 88 } 89 } 90 int main() 91 { 92 int s,t; 93 int i,j,k; 94 #ifndef ONLINE_JUDGE 95 freopen("1.in","r",stdin); 96 #endif 97 init(); 98 scanf("%d%d%d%d",&n,&m,&s,&t); 99 int u,v;100 for(i=0;i
mp[k][v])119 {120 mx=mp[k][v];121 to[j][k]=v;122 }123 else if(mx==mp[k][v])124 {125 to[j][k]=min(v,to[j][k]);126 }127 }128 }129 }130 for(i=1;i<=n;i++)131 {132 addedge(i,i);133 }134 printf("%.3lf\n",F(s,t));135 return 0;136 }

 

转载于:https://www.cnblogs.com/cnblogs321114287/p/4788978.html

你可能感兴趣的文章
.NET CORE 第二节 中间件的原理和自定义中间件
查看>>
开放有限元分析计算平台介绍
查看>>
Python中的函数
查看>>
静态路由和动态路由
查看>>
为C1Chart for WPF添加自定义标题、坐标轴单位标签以及旋转坐标轴注释
查看>>
51job_selenium测试
查看>>
代理商数据库_文本过滤处理
查看>>
Bootstrapping算法
查看>>
性能测试(LoadRunner)基础知识
查看>>
数据结构(七)排序---归并排序
查看>>
java多线程知识点汇总(二)多线程实例解析
查看>>
mysql的用户管理(二)
查看>>
【科技】高斯消元简析
查看>>
没有欲望是一种什么样的感觉
查看>>
pzoj Problem 2127 养鸡场
查看>>
有趣的JavaScript隐式类型转换
查看>>
wireshark 无法抓取本地数据包
查看>>
sql 知道年龄 数据库里面只有身份证 查询条件为这个年龄的所有数据
查看>>
android 高德地图出现【定位失败key鉴权失败】
查看>>
如何使用mybatis插入数据之前就具生成id值
查看>>