Hack & 请求加强数据
查看原帖
Hack & 请求加强数据
63444
芷陌陌吖楼主2023/12/1 10:40

提供一个对第二篇题解(@Gary818)的 Hack:

Input:

150
141 9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

Output:

4709614623714

原理是让 (n−2d1)\dbinom{n-2}{d_1} 超过 int 范围即可。

但只要改成 long long 就卡不住了。

因为答案是 (n−2)!∏i=1k(di−1)!\cfrac{(n-2)!}{\prod_{i=1}^k (d_i-1)!},Hack 的目标是让 (n−2d1)=(n−2)!d1!×(n−2−d1)!\dbinom{n-2}{d_1}=\cfrac{(n-2)!}{d_1!\times (n-2-d_1)!} 超过 long long 范围,而我们要让答案 ≤1017\le10^{17},因此从贪心角度看应该是无法 Hack 的。(而且这篇题解思路也很妙,不建议撤下,改一下就行)

然后顺便发现有 22 篇题解也无法通过:

@玫葵之蝶

这个是因为对 did_i 暴力算了阶乘,所以 did_i 大了就错了。

@star_eternal

这个代码预处理阶乘只处理了 2222 个,因此 nn 大就会挂掉。

2023/12/1 10:40
加载中...