【CodeM初赛B轮】F 期望DP
【CodeM初赛B轮】F
题目大意:有n个景点,m条无向边,经过每条边的时间需要的时间是li,在第i个景点游览花费的时间是ti,游览完第i个景点可以获得的满意度是hi。你的总时间为k,起初你等概率的选择游览一个景点,然后每次等概率的前往一个相邻的景点游览,当你剩余时间不够游览一个相邻的景点时就结束游览。问所获得的满意度的期望值。(本题强行询问两次~)
n<=100,总时间<=500
题解:显然的期望DP啊,不过本题的细节比较多,我这里只说一些细节吧~
用f[i][j]表示游览完景点i,还剩时间j,所获得的期望满意度。显然f[i][j]可以由相邻的景点转移而来,不过可没那么简单~
你还需要维护p[i][j]表示游览完景点i,还剩时间j,这种情况发生的概率;d[i][j]表示游览完景点i,还剩时间j,此时景点i的出度(显然,一个点的出度在不同时间是不一样的。)现在你才能进行状态转移。
$f[i][k]=\sum {f[j][k+l[i][j]+t[i]]\over d[j][k+l[i][j]+t[i]]}+h[i]*p[i][k]$
答案就是所有出度为0的状态的f之和(显然它们的p之和=1,如果你的程序正确的话~)
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
typedef long double ld;
int n,m,T;
int map[110][110],t[110],h1[110],h2[110],d[110][500];
ld ans,ans1,ans2,p[110][500],f1[110][500],f2[110][500];
int rd()
{
int ret=0,f=1; char gc=getchar();
while(gc<'0'||gc>'9') {if(gc=='-')f=-f; gc=getchar();}
while(gc>='0'&&gc<='9') ret=ret*10+gc-'0',gc=getchar();
return ret*f;
}
int main()
{
n=rd(),m=rd(),T=rd();
int i,j,k,a,b,c,flag;
for(i=1;i<=n;i++) t[i]=rd(),h1[i]=rd(),h2[i]=rd();
for(i=1;i<=m;i++) a=rd(),b=rd(),map[a][b]=map[b][a]=rd();
for(i=1;i<=n;i++) p[i][T-t[i]]=1.0/n;
for(k=T-1;k>=0;k--)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) if(map[i][j]&&k>=map[i][j]+t[j]) d[i][k]++;
for(j=1;j<=n;j++)
{
if(!map[i][j]) continue;
c=k+map[i][j]+t[i];
if(c>=T) continue;
p[i][k]+=p[j][c]/d[j][c];
f1[i][k]+=f1[j][c]/d[j][c];
f2[i][k]+=f2[j][c]/d[j][c];
}
f1[i][k]+=p[i][k]*h1[i];
f2[i][k]+=p[i][k]*h2[i];
if(!d[i][k]) ans+=p[i][k],ans1+=f1[i][k],ans2+=f2[i][k];
}
}
printf("%.5lf %.5lf",(double)ans1,(double)ans2);
return 0;
}
【CodeM初赛B轮】F 期望DP的更多相关文章
- 【CodeM初赛B轮】A 贪心
[CodeM初赛B轮]A 题目大意:给你一棵树,起初所有点都是白色的,你每次都能选择一个白点i,将这个点i到根路径上的所有到i的距离<k[i]的点都染成黑色(根和i也算,已经被染成黑色的点还是黑 ...
- loj #6191. 「美团 CodeM 复赛」配对游戏 期望dp
题意:有一个栈,随机插入 $n$ 次 $0$/$1$ 如果栈顶是 $1$,然后插入 $0$,则将这两个元素都弹出,否则,插入栈顶. 求:$n$ 次操作后栈中期望的元素个数. 我们发现,按照上述弹栈方式 ...
- CodeM初赛B轮
做什么啊,我这么菜,应该弃赛的 [编程|1500分] 子串 时间限制:3秒空间限制:32768K 题目描述 给出一个正整数n,我们把1..n在k进制下的表示连起来记为s(n,k),例如s(16,16) ...
- 美团CodeM初赛B轮 合并字符串的价值 (线段树,分类讨论)
输入两个字符串a和b,合并成一个串c,属于a或b的字符在c中顺序保持不变.如"ACG"和"UT"可以被组合成"AUCTG"或"AC ...
- 【CodeM初赛A轮】D 分解质因数+暴力
题目描述树链是指树里的一条路径.美团外卖的形象代言人袋鼠先生最近在研究一个特殊的最长树链问题.现在树中的每个点都有一个正整数值,他想在树中找出最长的树链,使得这条树链上所有对应点的值的最大公约数大于1 ...
- 【CodeForces】913 F. Strongly Connected Tournament 概率和期望DP
[题目]F. Strongly Connected Tournament [题意]给定n个点(游戏者),每轮游戏进行下列操作: 1.每对游戏者i和j(i<j)进行一场游戏,有p的概率i赢j(反之 ...
- 美团2018年CodeM大赛-初赛B轮 B 配送(最短路)
美团2018年CodeM大赛-初赛B轮 B 配送 题意 题解 对于每个任务,只要从上个任务的终点出发即可. 时间.地点很少,可以算出每个地点-时间的最小花费. 以题目描述的起点终点起始结束时间建图,很 ...
- 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp
题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...
- 【BZOJ-4008】亚瑟王 概率与期望 + DP
4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec Memory Limit: 512 MBSec Special JudgeSubmit: 832 Solved: 5 ...
随机推荐
- log4j输出日志到flume
现需要通过log4j将日志输出到flume,通过flume将日志写到文件或hdfs中 配置flume-config文件 将日志下沉至文件 a1.sources = r1 a1.sinks = k1 a ...
- Android使用TextView,设置onClick属性无效解决的方法
Android在布局文件里为View提供了onClick属性.用法例如以下: <TextView android:id="@+id/user" android:layout_ ...
- es6 - filter for-chrome
'use strict'; let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; // 除去取余2的 - es6 let es5OddNumbers = numbers ...
- Android学习(四) Layout五大布局
我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前, 视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit ...
- object-c 框架之经常使用结构体
Foundation 框架定义经常使用结构体.结构体採用object-c 定义:经常使用NSSRange,NSPoint.NSSize,NSRect等 一.NSRange 创建范围结构体. 方法:NS ...
- css3——position定位详解
最近热衷于前端的开发,因为突然发现虽然对于网站.应用来说,功能处于绝对重要的地位,但是用户体验对于用户来讲同样是那么的重要,可以说是第一印象.最近在开发当中发现以前对于css中的position的理解 ...
- eclipse maven tools.jar找不到y也就是在这个
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile ...
- WIN10 当中装BDM驱动
方法: 禁用第三方签名 将插件替换原有的dll 1.参考此篇文档 http://jingyan.baidu.com/article/375c8e19c2b25b25f2a229a3.html ...
- 关于解决 http 状态码200,php 文件有输出,但是不显示模板文件的问题
一 问题 给公司搭建一个在线测试站点之后,在浏览器地址栏输入 "http://xxx.xxx.xxx/index.php",页面什么都没显示.调出浏览器的开发者工具查看,http ...
- ThinkPad E430C从待机状态恢复后,无线网络就不可用了
奇妙的问题,ThinkPad E430C从待机状态恢复后.无线网络就不可用了. Windows7系统.按Fn+F8或F7能够调节屏幕亮度,可是F9+Fn也没反应. 把驱动卸载了又一次安装了也无论用,W ...