abc 204

E - Rush Hour 2

给出一张有 \(n\) 个点,\(m\) 条边的无向图,在时间 \(t\) , 通过边 \(i\) ,会花费 \(c_i +\lfloor \frac{d_i}{t+1}\rfloor\) 的时间. 可以在一个节点停留任意自然数时间.

输出达到节点 \(n\) 的最少时间.

\(1\leq n\leq 10^5, 0\leq m\leq 10^5\)

在时间 \(t\) 通过边 \(i\) 后的时间是 \(f(t)=t+c_i+\lfloor \frac{d_i}{t+1}\rfloor\) .

这是一个单峰的函数,但是,不建议使用三分,原因是:

可能会有取到两个位置 \(f(t)\) 值相同,但是峰却在两个位置的左边或者右边. 这时,三分的判断就会出现差错.

我比赛时就是因为这个问题wa了很多次. 而现在也没有想好如何解决.

因为atcoder没有hack的机制,最后通过左右取了200,数据没有太刁钻而过去了.

另一种做法,就是可以通过求导(其实我比赛的时候没有真的去求)得到 \(t=frac{d_i}{t+1}\) 时求得最大值.

所以,解一下一元二次方程,得到 \(t=\frac{-1+\sqrt{4d_i+1}}{2}\). 但是因为有下取整,所以左右取10就可以了.

这是我一开始的想法,但是因为\(t>dist(u)\)的情况没有考虑到而wa了,所以认为自己是错的,其实是正确的做法.

atcoder的题解中给出了一种证明的思路,比较奇妙.

$f(t)=t+1+\lfloor\frac{d_i}{t+1}\rfloor $ to \(g(t)=t+\lfloor\frac{d_i}{t}\rfloor\)

如何证明 \(g\) 是单峰的呢?

如果 \(\frac{d_i}{t}-\frac{d_i}{t+1}> 1\), 即 \(\lfloor\frac{d_i}{t}\rfloor-\lfloor\frac{d_i}{t+1}\rfloor\geq 1\), 可得 \(g(t)-g(t+1)\geq 0\). 也就是说明 \(g\) 单调不增.

如果 \(\frac{d_i}{t}-\frac{d_i}{t+1}\leq 1\), 即\(\lfloor\frac{d_i}{t}\rfloor-\lfloor\frac{d_i}{t+1}\rfloor\leq 1\), 可得\(g(t)-g(t+1)\leq 0\). 也就是说明 \(g\) 单调不降.

所以,在满足\(\frac{d_i}{t}-\frac{d_i}{t+1}\leq 1\)的最小的\(i\), 是这个\(g\)的峰值.

也就可以证明这是一个单峰的函数了.

主要是通过减去 \(c_i-1\) 再替换 \(t\) 的操作挺漂亮的.

我也有一种思路证明这个函数是单峰的,比较简单.

\(t\) 取到整数. 每次增加\(1\). 如果不看函数的后半部分,是单调增函数.

\(t\) 值大到一定程度的时候,\(\lfloor \frac{d_i}{t}\rfloor\) 最多只会减少\(1\). 也就是说明这一段是单调不降.

在这之前,函数减少的值是超过\(1\)的,此时的 \(t\) 每层加一个数,必定会使 \(\lfloor\frac{d_i}{t}\rfloor\) 减少大于\(0\)的值. 也就是说明这一段是单调不增.

所以,这是一个单峰函数.

得到这个结论之后,通过dijkstra就可以实现了.

时间复杂度: \(O(nlogn)\)

空间复杂度: \(O(n)\)

第一次提交: wawawawawa

F - Hanjo 2

给出一个长 \(w\) ,宽 \(h\) 的图,可以放 \(1\times 1\)\(1\times 2\) 的小方块,问一共有多少中放置的方法?

\(1\leq h\leq 6\), \(1\leq w\leq 10^{12}\).

\(10^{12}\),计数,想到矩阵快速幂,这个初二怎么也看不懂的东西,比赛的时候就是因为害怕没有先写.

\(h\)很小,可以用 \(g(S_1,S_2)\) 表示上一行是 \(S_1\) ,这一行是 \(S_2\) 时的方法数. (意会)

此时将 \(g\) 矩阵乘上 \(w-1\) 次. 令 \(f(S)\) 表示当前行是 \(S\), 填满的方案书.

答案为\(\sum g(0,S)\times f(S)\).

\(g\)\(f\) 都可以预处理.

时间复杂度: \(O(4^h\times h+8^h\times log_2 w)\)

空间复杂度: \(O(8^h+h4^h)\)

第一次提交: ac

比赛的时候差2min没有写好QvQ,要是写出来就可以回蓝色了,哎,daydream……

posted @ 2021-06-28 21:44  xyangh  阅读(214)  评论(0)    收藏  举报