Eating Everything Efficiently(反向dp)
2024-09-07 14:16:37
取最大值即可。用拓扑,dfs都可以实现
#include <bits/stdc++.h>
using namespace std;
const int maxn=500009;
int n,m;
struct p{
int to,nxt;
}d[maxn];int head[maxn],cnt=1;
void add(int u,int v){
d[cnt].nxt=head[u],d[cnt].to=v,head[u]=cnt++;
}
double ans=0,dp[maxn],val[maxn];
void dfs(int now)
{
if(dp[now]) return;
dp[now]=0;
for(int i=head[now];i;i=d[i].nxt)
{
int v=d[i].to;
dfs(v);
dp[now]=max(dp[now],dp[v]);
}
dp[now]=max(val[now]+dp[now]/2.0,dp[now]);
ans=max(ans,dp[now]);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>val[i];
for(int i=1;i<=m;i++)
{
int l,r;
cin>>l>>r;l++,r++;
add(l,r);
}
dfs(1);
printf("%.6lf",ans);
}
最新文章
- java编码解码乱码问题
- 疯狂java学习笔记之面向对象(四) - this关键字
- mongo3.x ssl版安装文件
- Windows平台上安装搭建iPhone/iPad的开发环境
- css选择器选择顺序是从右往左的,为什么?
- 【英语】Bingo口语笔记(56) - “令人失望”的表达
- 【转】解决Cannot change version of project facet Dynamic web module to 2.5
- Alljoyn 概述(2)
- 深入探究VC —— 链接器link.exe(4)
- selenium Chromediver
- POJ1273(最大流)
- HTTP 0.9 / 1.0 / 1.1
- [转载]Apple Watch 开发详解
- firefox设置每次访问时检查缓存
- 大数据学习笔记02-HDFS-常用命令
- WaitForMultipleObjects
- POJ 1753 Flip Game(bfs+位压缩运算)
- 一、Kafka初认识
- php各版本下载
- Unity5-CacheServer(资源平台切换之缓存服务器)的部署与使用