2014 ACM/ICPC Asia Regional Anshan Online

给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率

概率DP  測试数据太水了。。。。10000*50*50*50都能过

加个vector优化到

#include "stdio.h"
#include "string.h"
#include "vector"
using namespace std;double dp[10][101][101];
double ans[101];
vector<int>map[101];
int cnt[101];
int main()
{int n,m,d,Case,a,b,i,j,k,l;scanf("%d",&Case);while (Case--){scanf("%d%d%d",&n,&m,&d);memset(cnt,0,sizeof(cnt));while (m--){scanf("%d%d",&a,&b);cnt[a]++;cnt[b]++;map[a].push_back(b);map[b].push_back(a);}memset(dp,0,sizeof(dp));for (i=1;i<=n;i++)for (j=1;j<=n;j++)if (i!=j)dp[0][i][j]+=1.0/n;  // dp[d][i][j] 第d步,终点为i,中途不经过j的概率for (i=1;i<=d;i++){memset(dp[i%2],0,sizeof(dp[i%2]));for (j=1;j<=n;j++)for (k=0;k<map[j].size();k++)for (l=1;l<=n;l++)if (j!=l && j!=map[j][k])dp[i%2][map[j][k]][l]+=dp[1-i%2][j][l]*1.0/cnt[j];}memset(ans,0,sizeof(ans));for (i=1;i<=n;i++)for (j=1;j<=n;j++)if (i!=j)ans[i]+=dp[d%2][j][i];for (i=1;i<=n;i++){printf("%.10lf\n",ans[i]);map[i].clear();}}return 0;
}

记忆化搜索: 每次去掉一个点,然后对剩下的点进行记忆化搜索

#include "stdio.h"
#include "string.h"
#include "vector"
using namespace std;int vis[101][10011],cnt[101];
double dp[101][10011];
int d;
vector<int>map[101];
double dfs(int a,int b,int c) //当前在a点,已经走了b步,不经过c点
{int i;double ans;if (vis[a][b]) return dp[a][b];vis[a][b]=1;ans=0;if (b>d) return dp[a][b]=1;for (i=0;i<map[a].size();i++)if (map[a][i]!=c)ans+=1.0/cnt[a]*dfs(map[a][i],b+1,c);return dp[a][b]=ans;}int main()
{int Case,n,m,i,a,b;scanf("%d",&Case);while (Case--){scanf("%d%d%d",&n,&m,&d);memset(cnt,0,sizeof(cnt));for (i=0;i<=n;i++)map[i].clear();while (m--){scanf("%d%d",&a,&b);cnt[a]++;cnt[b]++;map[a].push_back(b);map[b].push_back(a);}memset(dp,0,sizeof(dp));for (i=1;i<=n;i++)map[0].push_back(i);cnt[0]=n;for (i=1;i<=n;i++){memset(vis,0,sizeof(vis));printf("%.10lf\n",dfs(0,0,i));}}return 0;
}

转载于:https://www.cnblogs.com/mfrbuaa/p/4294540.html

HDU 5001 概率DP || 记忆化搜索相关推荐

  1. Palindrome subsequence HDU - 4632 区间dp|记忆化搜索

    // 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...

  2. 【BZOJ2246】【codevs2135】迷宫探险,概率DP+记忆化搜索+状态压缩+运气

    Time:2016.08.24 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 思路: 毒瘤题目 考虑f[i][x][y][h]f[i][x][y][h]表示走到(x,y),血量 ...

  3. BZOJ.2246.[SDOI2011]迷宫探险(DP 记忆化搜索 概率)

    题目链接 求最大的存活概率,DP+记忆化. 用f[s][x][y][hp]表示在s状态,(x,y)点,血量为hp时的存活概率. s是个三进制数,记录每个陷阱无害/有害/未知. 转移时比较容易,主要是在 ...

  4. BZOJ1415 [Noi2005]聪聪和可可 【SPFA + 期望dp记忆化搜索】

    题目 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...

  5. hdu 4597 Play Game(记忆化搜索)

    题目链接:hdu 4597 Play Game 题目大意:给出两堆牌,仅仅能从最上和最下取,然后两个人轮流取,都依照自己最优的策略.问说第一个人对多的分值. 解题思路:记忆化搜索,状态出来就很水,dp ...

  6. 思维dp ---- Codeforces Round #711 (Div. 2) - C. Planar Reflections[dp/记忆化搜索]

    题目链接 题目大意: 就是给你n个平面和一个寿命为k的衰变粒子.开始粒子从左向右飞行,粒子每经过一个平面就会产生一个副本粒子,这个副本粒子比原粒子的寿命少1,即为k-1,并且飞行方向是原粒子的反方向. ...

  7. 数位dp 记忆化搜索java_hdu 5787 数位dp,记忆化搜索

    题意:求区间[l,r]内有多少个数符合,这个数的任意的相邻k位数(digits),这k个数都两两不相等 l,r范围是1~1e18,k是2~5 思路:数位DP,因为K<=5,我们最多需要保存下来当 ...

  8. pku 1191 棋盘分割 DP / 记忆化搜索

    http://poj.org/problem?id=1191 题意:中文省略. 思路:黑说p116有讲解, 主要的状态转移方程为 横着切: dp[k][x1][y1][x2][y2]  = min(d ...

  9. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)

    1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...

最新文章

  1. [JZOJ4786]小a的强迫症
  2. Hadoop学习13--zookeeper相关
  3. MRI原理谁都看得懂版
  4. mybatis 分页需要的jar包下载_064、MyBatis
  5. python二十:内置函数
  6. 最简单的基于FFmpeg的AVDevice例子(读取摄像头)
  7. RocketMQ角色介绍
  8. 在Packet Tracer中路由器静态路由配置
  9. 二分法的应用:POJ1064 Cable master
  10. 东北大学c语言真题及答案,东北大学C语言总测试题(含答案).pdf
  11. Android 自定义View绘制的基本开发流程 Android自定义View(二)
  12. LeetCode 187. 重复的DNA序列
  13. gb2312编码表_程序员趣味读物:谈谈Unicode编码
  14. [转载] python中 堆heapq以及 队列queue的使用
  15. android intent json,如何从android中的Intent服务中的服务器获取Json响应?
  16. Android Toast 总结
  17. 两招快速教会你们PDF怎么转图片jpg格式
  18. 【RuoYi-Vue-Plus】学习笔记 02 - OSS模块(二)之文件上传(使用MinIO基于Win10环境)
  19. Raspberry Pi 4B SSH、VNC及串口连接配置
  20. 钢铁侠或漫威中有哪些黑科技?

热门文章

  1. 用步进正弦激励法测量计算机声卡输出输入幅值频响函数
  2. 在Kmplayer中设置多字幕
  3. 【linux回炉 档案权限与目录配置】
  4. 第四周实践项目3单链表:逆置、连接与递增判断(包含三个程序)
  5. MATLAB双纵坐标绘图(重要)
  6. 握手失败_拜托了,看完这篇别再问我什么是TCP三次握手和四次挥手
  7. access四舍五入取整round_轻松办公|你一点儿也不懂“四舍五入”
  8. 防盗链测试01 - Jwplayer+Tengine2.3.1 mp4模块打造流媒体测试服务器
  9. ACM_变形课(并查集)
  10. 【计算机视觉】Objectness算法(一)---总体理解,整理及总结