2306: [Ctsc2011]幸福路径

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 912  Solved: 437

Description

有向图 G有n个顶点 1,  2, …,  n,点i 的权值为 w(i)。现在有一只蚂蚁,从
给定的起点 v0出发,沿着图 G 的边爬行。开始时,它的体力为 1。每爬过一条
边,它的体力都会下降为原来的 ρ 倍,其中ρ 是一个给定的小于1的正常数。而
蚂蚁爬到某个顶点时的幸福度,是它当时的体力与该点权值的乘积。 
我们把蚂蚁在爬行路径上幸福度的总和记为 H。很显然,对于不同的爬行路
径,H 的值也可能不同。小 Z 对 H 值的最大可能值很感兴趣,你能帮助他计算
吗?注意,蚂蚁爬行的路径长度可能是无穷的。

Input

每一行中两个数之间用一个空格隔开。 
输入文件第一行包含两个正整数 n,  m,分别表示 G 中顶点的个数和边的条
数。 
第二行包含 n个非负实数,依次表示 n个顶点权值 w(1), w(2), …, w(n)。 
第三行包含一个正整数 v0,表示给定的起点。 
第四行包含一个实数 ρ,表示给定的小于 1的正常数。 
接下来 m行,每行两个正整数 x, y,表示<x, y>是G的一条有向边。可能有
自环,但不会有重边。

Output

仅包含一个实数,即 H值的最大可能值,四舍五入到小数点后一位。

Sample Input

5 5
10.0 8.0 8.0 8.0 15.0
1
0.5
1 2
2 3
3 4
4 2
4 5

Sample Output

18.0

HINT

对于 100%的数据, n ≤ 100, m ≤ 1000, ρ ≤ 1 – 10^-6

, w(i) ≤ 100 (i = 1, 2, …, n)。

Source

Day1

【分析】

  无限长的路,但是p不断变小,所以做到足够精度也就可以了。

  然后就是,用倍增来搞floyd。

  $F[i][j][t]$表示从i走到j走了t步的最大收益,$F[i][j][t]=max(F[i][j][t-1]+F[i][j][t-1]*{p}^{t-1});$

  这个滚动DP啦~~

  做到$2^t$超越精度就好了。

  【表示其实初始化那里有点迷人,我是看po姐的。。

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 using namespace std;
 7 #define Maxn 110
 8 #define Maxm 1100
 9 #define LL long long
10 #define INF 0xfffffff
11 const double eps=1e-8;
12
13 double w[Maxn],f[Maxn][Maxn][2];
14 double mymax(double x,double y) {return x>y?x:y;}
15
16 int main()
17 {
18     int n,m,st;
19     double p;
20     scanf("%d%d",&n,&m);
21     for(int i=1;i<=n;i++) scanf("%lf",&w[i]);
22     scanf("%d%lf",&st,&p);
23     memset(f,0xc2,sizeof(f));
24     for(int i=1;i<=n;i++) f[i][i][0]=0;
25     for(int i=1;i<=m;i++)
26     {
27         int x,y;
28         scanf("%d%d",&x,&y);
29         f[x][y][0]=w[y]*p;
30     }
31     int nw=0;
32     for(double l=p;l>eps;l=l*l)
33     {
34         for(int i=1;i<=n;i++)
35          for(int j=1;j<=n;j++)
36             f[i][j][nw^1]=-INF;
37         for(int k=1;k<=n;k++)
38          for(int i=1;i<=n;i++)
39           for(int j=1;j<=n;j++)
40           {
41              f[i][j][nw^1]=mymax(f[i][j][nw^1],f[i][k][nw]+f[k][j][nw]*l);
42           }
43         nw^=1;
44     }
45     double ans=0;
46     for(int i=1;i<=n;i++) ans=mymax(ans,f[st][i][nw]);
47     printf("%.1lf\n",ans+w[st]);
48     return 0;
49 }

View Code

2017-04-05 15:56:06

转载于:https://www.cnblogs.com/Konjakmoyu/p/6669096.html

【BZOJ 2306】 2306: [Ctsc2011]幸福路径 (倍增floyd)相关推荐

  1. bzoj 1706: [usaco2007 Nov]relays 奶牛接力跑(倍增floyd)

    1706: [usaco2007 Nov]relays 奶牛接力跑 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 675  Solved: 352 [S ...

  2. BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)

    题目链接 先考虑 假设S确定,使构造S操作次数最小的方案应是:对T建SAM,S在SAM上匹配,如果有S的转移就转移,否则操作数++,回到根节点继续匹配S.即每次操作一定是一次极大匹配. 简单证明:假设 ...

  3. BZOJ 2085 [Poi2010]Hamsters Hash+倍增floyd

    题意:链接 方法: Hash+倍增floyd 解析: 首先这个BZ的无脑翻译我真是受不了. 加俩条件 所有串的长度总和不超过100000,并且对于任意不同子串A,B,A不包含于B,B不包含于A. 然后 ...

  4. BZOJ 2085 Poi2010 Hamsters Hash+倍增Floyd

    题目大意:给定n个长度总和不超过10W的字符串,求一个最短的母串,使所有字符串的出现次数之和=m 这n个字符串保证不互相包含 TM能不能好好翻译了 令f[i][j]表示第i个字符串后面接上第j个字符串 ...

  5. 【bzoj2360】【cstc2011】【幸福路径】【倍增+floyd】

    Description 有向图 G有n个顶点 1,  2, -,  n,点i 的权值为 w(i).现在有一只蚂蚁,从 给定的起点 v0出发,沿着图 G 的边爬行.开始时,它的体力为 1.每爬过一条 边 ...

  6. 【Ctsc2011】幸福路径

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2306 给定一张有向图,每个点有权值,蚂蚁从某个节点出发,初始体力值为$1$,每走一条边$体 ...

  7. 【传递闭包】【倍增】幸福路径(P4308)

    正题 P4308 题目大意 给一个图,每个点有一个权值 axa_xax​,当你经过一条边时体力×p\times p×p(体力初始为1),每到一个点造成的贡献为体力×ax\times a_x×ax​,问 ...

  8. [Hash 倍增Floyd] BZOJ 2085 [Poi2010]Hamsters

    Po姐的题解:http://blog.csdn.net/popoqqq/article/details/44077515 搬运下复杂度分析吧 这不会T? 首先设第i个字符串的长度为ai,设k=Σai ...

  9. BZOJ.1178.[APIO2009]会议中心(贪心 倍增)

    BZOJ 洛谷 \(Description\) 给定\(n\)个区间\([L_i,R_i]\),要选出尽量多的区间,并满足它们互不相交.求最多能选出多少个的区间以及字典序最小的方案. \(n\leq2 ...

  10. POJ 1734 求最小环路径 拓展Floyd

    九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11888019 题意: n个点 m条无向边 下面m条有权无向边 问图中最小环的路径 ...

最新文章

  1. (八)java版spring cloud+spring boot 社交电子商务平台-消息总线(Spring Cloud Bus)
  2. oracle安装中桌面模式与服务器模式的去别
  3. enter power save mode解决
  4. 一加7T Pro最新渲染图曝光:背部有小改动
  5. 前端面试js-手写事件委托(一点小改进)
  6. 发一个招聘启事,成都有兴趣的朋友可以来看一看。
  7. mfc三视图和斜等测图实现_如何在UE4中实现NPR(非真实感)渲染效果?
  8. 变换型设计与事务型设计
  9. linux7配置永久路由,CentOS7添加永久静态路由
  10. Oracle数据库安装及配置
  11. 软件测试报告的项目背景,软件测试报告范本
  12. golang库文件收集
  13. 手把手教你写软件1.软件介绍已经心得体会
  14. exe4j打成的exe文件运行时弹窗this executable was created with an evaluation version of exe4j问题解决
  15. java hypot_static double hypot(double x, double y)
  16. 科技云报道:2023,云计算的风向变了
  17. VUE实现长时间未操作退出登录
  18. 冬至到了,一碗香喷喷的饺子是否能温暖到你的胃
  19. ale_python_interface安装操作
  20. 网站域名被墙怎么办?国内免备案301完美解决!

热门文章

  1. 如何使用以太网将 Mac 接入互联网?
  2. 可视化数学分析软件MATLAB R2021b _Update_2_macoS
  3. Mac比较知名的数据库开发工具Navicat Premium 15.0.30
  4. MacBook 键盘出现故障,如何修复?
  5. Java 11 的新特性(上)
  6. 深入理解JUnit 5的扩展模型
  7. FlexboxLayout——Android弹性布局
  8. Angular JS 学习笔记(二)
  9. Ubuntu Desktop安装及桌面美化(修复图片)
  10. APUE习题[实现dup2函数功能,不使用fcntl]