bzoj 2306 幸福路径 【floyd】【dp】

原创 2015年11月20日 22:57:47

期望值最大的dp,转移有环

开始在想强连通分量缩点之后,块内高斯消元+拓扑图dp。

但是高斯消元没有max的转移。

所以用了处理有环最大值的方法:floyd

总结一下:

处理转移有环的方法:

最短路(单源 floyd)主要是求max/min

高斯消元 主要是求期望。

强连通分量缩点 主要是题内有明显提示或强连通分量内部有特殊性质。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>

#define ll long long
#define inf 1e9
#define eps 1e-10
#define md
#define N 110
using namespace std;
double w[N],f[N][N],g[N][N];
int a[N][N];
int main()
{
	int n,m,S;
	double p; 
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++) scanf("%lf",&w[i]);
	scanf("%d%lf",&S,&p);
	n++;
	for (int i=1;i<=n;i++)
	  for (int j=1;j<=n;j++)
	    g[i][j]=-inf;
	for (int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		a[x][y]=1; g[x][y]=w[y]*p;
	}
	w[n]=0;
	for (int i=1;i<=n;i++) g[i][n]=0;
	for (int t=1;t<=50;t++,p*=p)
	{
		for (int i=1;i<=n;i++)
		  for (int j=1;j<=n;j++)
		    f[i][j]=-inf;
		for (int k=1;k<=n;k++)
		  for (int i=1;i<=n;i++)
		    for (int j=1;j<=n;j++)
		      f[i][j]=max(f[i][j],g[i][k]+g[k][j]*p);
		memcpy(g,f,sizeof(f));
		//printf("%.2lf : %.2lf %.2lf %.2lf\n",p,g[1][2],g[1][3],g[1][4]);
	}
	double ans=-inf;
	for (int i=1;i<=n;i++)
	    ans=max(ans,f[S][i]);
	printf("%.1lf\n",ans+w[S]);
	return 0;
}



相关文章推荐

【bzoj2750】【HAOI2012】【Road】【最短路+dp】

Description C国有n座城市,城市之间通过m条单向道路连接。一条路径被称为最短路,当且仅当不存在从它的起点到终点的另外一条路径总长度比它小。两条最短路不同,当且仅当它们包含的道路序列不...

BZOJ 2306 [Ctsc2011] 幸福路径 [期望DP做法]

期望DP

bzoj 2306: [Ctsc2011]幸福路径 倍增+floyed

这道题果然是倍增卡精度。。。。        首先可以得到走2^k步时,f[i][j]表示i~j的最大收益;那么第2^(k+1)步就有f[i][j]=min{f[i][k]+f[k][j]*ρ^(2^...

BZOJ2306/Ctsc2011 幸福路径

BZOJ2306/CTSC 2011 幸福路径

BZOJ 2306 [Ctsc2011] 幸福路径 [倍增+floyd做法]

倍增+floyd

【bzoj2500】幸福的道路 单调队列+树形dp

重要的事情说三遍 我是傻逼!!! 我是傻逼!!! 我是傻逼!!! 把%d打成了%lld一直WA 题意坑爹,求从i出发的最长链的长度a[i],求最长的一段a[i],满足最大值-最小值 第...

[BZOJ 2500]幸福的道路 树形dp+单调队列+二分答案

考试的时候打了个树链剖分,而且还审错题了,以为是每天找所有点的最长路,原来是每天起点的树上最长路径再搞事情。。 先用dfs处理出来每个节点以他为根的子树的最长链和次长链。(后面会用到) 然后用类似dp...

BZOJ 4720 换教室 (期望dp Floyd)

4720: [Noip2016]换教室Time Limit: 20 Sec Memory Limit: 512 MB Description对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际...
  • w4149
  • w4149
  • 2017年07月30日 21:32
  • 96

[BZOJ1907]树的路径覆盖(贪心||树形dp)

Being yourself is an honor, because nobody else can be you. 做自己是一种荣耀,因为没有任何人能成为你。...

BZOJ 2337 HNOI2011 XOR和路径 期望DP+高斯消元

题目大意:给定一个无向连通图,从1出发,每次等概率沿着任意一条出边走到n为止,求路径上的边权的异或和的期望值 首先既然是位运算的问题我们的一般处理办法就是拆位,按位处理 对于每一位 令f[i]为从i节...
  • PoPoQQQ
  • PoPoQQQ
  • 2014年12月28日 23:50
  • 2557
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bzoj 2306 幸福路径 【floyd】【dp】
举报原因:
原因补充:

(最多只允许输入30个字)