Submission #42101507


Source Code Expand

// LUOGU_RID: 112375714
#include<bits/stdc++.h>
using namespace std;
const int maxn = 605;
const int maxm = 605 * 605 / 2;
double dp[maxn],f[maxn];
int n,m,out[maxn];
struct edge
{
	int to,nxt;
}e[maxm << 1];
int head[maxn],tot,maxx;
double ans;
void add_edge(int u,int v)
{
	e[++tot].nxt = head[u];
	head[u] = tot;
	e[tot].to = v;
}
void solve(int u)
{
	maxx = 0;
	out[u]--;
	for(int i = head[u];i;i = e[i].nxt)
	{
		int v = e[i].to;
		if(f[v] > f[maxx])
		{
			maxx = v;
		}
	}
	memset(dp,0,sizeof(dp));
	for(int x = n;x;x--)
    {
        for(int i = head[x];i;i = e[i].nxt)
        {
            int v = e[i].to;
            if(u == x && v == maxx)
                continue;
            dp[x] += (dp[v] + 1) / out[x];
        }
    }
	out[u]++;
	if(dp[1])
	{
		ans = min(ans,dp[1]);
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin >> n >> m;
	for(int i = 1;i <= m;i++)
	{
		int u,v;
		cin >> u >> v;
		add_edge(u,v);
		out[u]++;//计算出度
	}
	for(int u = n - 1;u;u--)
    {
        for(int i = head[u];i;i = e[i].nxt)
        {
            int v = e[i].to;
            f[u] += (f[v] + 1) / out[u];//初始的期望值
        }
    }
	ans = f[1];
	for(int i = 1;i < n;i++)
	{
		if(out[i] == 1)
		{
			continue;
		}
		solve(i);
	}
	printf("%.10lf",ans);
	return 0;
}

Submission Info

Submission Time
Task F - Fork in the Road
User luogu_bot2
Language C++ (GCC 9.2.1)
Score 600
Code Size 1383 Byte
Status AC
Exec Time 1257 ms
Memory 5072 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 65
Set Name Test Cases
Sample 00-sample-00, 00-sample-01, 00-sample-02
All 00-sample-00, 00-sample-01, 00-sample-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 01-handmade-06, 01-handmade-07, 01-handmade-08, 01-handmade-09, 02-small-10, 02-small-11, 02-small-12, 02-small-13, 02-small-14, 02-small-15, 02-small-16, 02-small-17, 02-small-18, 02-small-19, 02-small-20, 02-small-21, 02-small-22, 02-small-23, 02-small-24, 03-medium-25, 03-medium-26, 03-medium-27, 03-medium-28, 03-medium-29, 03-medium-30, 03-medium-31, 03-medium-32, 03-medium-33, 03-medium-34, 03-medium-35, 03-medium-36, 03-medium-37, 03-medium-38, 03-medium-39, 03-medium-40, 03-medium-41, 03-medium-42, 03-medium-43, 03-medium-44, 04-large-45, 04-large-46, 04-large-47, 04-large-48, 04-large-49, 04-large-50, 04-large-51, 04-large-52, 04-large-53, 04-large-54, 04-large-55, 04-large-56, 04-large-57, 04-large-58, 04-large-59, 04-large-60, 04-large-61, 04-large-62, 04-large-63, 04-large-64
Case Name Status Exec Time Memory
00-sample-00 AC 7 ms 3664 KiB
00-sample-01 AC 2 ms 3544 KiB
00-sample-02 AC 2 ms 3556 KiB
01-handmade-03 AC 1257 ms 5072 KiB
01-handmade-04 AC 1252 ms 4904 KiB
01-handmade-05 AC 2 ms 3492 KiB
01-handmade-06 AC 1203 ms 5056 KiB
01-handmade-07 AC 2 ms 3668 KiB
01-handmade-08 AC 176 ms 4036 KiB
01-handmade-09 AC 2 ms 3708 KiB
02-small-10 AC 2 ms 3708 KiB
02-small-11 AC 2 ms 3648 KiB
02-small-12 AC 2 ms 3608 KiB
02-small-13 AC 3 ms 3632 KiB
02-small-14 AC 2 ms 3640 KiB
02-small-15 AC 2 ms 3676 KiB
02-small-16 AC 2 ms 3672 KiB
02-small-17 AC 2 ms 3660 KiB
02-small-18 AC 2 ms 3644 KiB
02-small-19 AC 2 ms 3496 KiB
02-small-20 AC 2 ms 3704 KiB
02-small-21 AC 3 ms 3632 KiB
02-small-22 AC 4 ms 3500 KiB
02-small-23 AC 1 ms 3676 KiB
02-small-24 AC 2 ms 3632 KiB
03-medium-25 AC 2 ms 3672 KiB
03-medium-26 AC 2 ms 3652 KiB
03-medium-27 AC 2 ms 3508 KiB
03-medium-28 AC 2 ms 3508 KiB
03-medium-29 AC 2 ms 3572 KiB
03-medium-30 AC 2 ms 3656 KiB
03-medium-31 AC 2 ms 3580 KiB
03-medium-32 AC 2 ms 3684 KiB
03-medium-33 AC 2 ms 3568 KiB
03-medium-34 AC 2 ms 3512 KiB
03-medium-35 AC 2 ms 3560 KiB
03-medium-36 AC 2 ms 3620 KiB
03-medium-37 AC 5 ms 3652 KiB
03-medium-38 AC 2 ms 3584 KiB
03-medium-39 AC 2 ms 3644 KiB
03-medium-40 AC 1 ms 3712 KiB
03-medium-41 AC 2 ms 3712 KiB
03-medium-42 AC 2 ms 3512 KiB
03-medium-43 AC 3 ms 3668 KiB
03-medium-44 AC 2 ms 3724 KiB
04-large-45 AC 8 ms 3720 KiB
04-large-46 AC 16 ms 3688 KiB
04-large-47 AC 79 ms 3852 KiB
04-large-48 AC 148 ms 3908 KiB
04-large-49 AC 256 ms 4212 KiB
04-large-50 AC 6 ms 3692 KiB
04-large-51 AC 18 ms 3664 KiB
04-large-52 AC 86 ms 3892 KiB
04-large-53 AC 175 ms 4068 KiB
04-large-54 AC 329 ms 4368 KiB
04-large-55 AC 5 ms 3512 KiB
04-large-56 AC 23 ms 3712 KiB
04-large-57 AC 76 ms 3840 KiB
04-large-58 AC 152 ms 3968 KiB
04-large-59 AC 255 ms 4220 KiB
04-large-60 AC 6 ms 3648 KiB
04-large-61 AC 18 ms 3728 KiB
04-large-62 AC 85 ms 3828 KiB
04-large-63 AC 191 ms 4088 KiB
04-large-64 AC 390 ms 4404 KiB