警示后人
查看原帖
警示后人
1122477
sosksyx_is_my_wife楼主2024/12/21 10:18

特判一堆:

  • 如果 n=1n=1,不用验证,答案为 11
  • k1k1 表示有多少个点必选(可以到达的点中存在一个点只能经过必选点到达),k2k2 表示有多少个点不必选
    • 如果 k1k1 不为 00,则必选的点需要加上 max(0,k21)\max (0,k2-1)
    • 如果 k1k100,则必选的点为 max(1,k21)\max(1,k2-1),因为必须要问一个

写成代码形式就是:

	if(n==1) return cout<<"1.000000",0;
if(k1) k1+=max(0,k2-1);
else k1+=max(1,k2-1);
printf("%.6lf",1.0*(n-k1)/n);
2024/12/21 10:18
加载中...