zoukankan      html  css  js  c++  java
  • 2019 ICPC AsiaEast Continent Final

    后期拉垮场(好像每次都是这样

    #### A - City

    枚举中点就好。效率: $O(nm)$ 。

    #### B - Black and White

    先考虑 $n+m$ 是 $2$ 的倍数。

    故从左上到右下的对角线的条数有 $n+m-1$ 个。我们每两个分一组,把最后一个再加上长度为 $0$ 的黑色,这样就有 $n+m/2$ 组。

    然后可以发现每一组的白-黑只会等于 $-1,0,1$ ,而且只有第 $2i$ 步会对第 $i$ 组有影响。在 $x+y=n$ 的下方的偶数步,向右是 $-1$ ,向上是 $0$ ;在 $x+y=n$ 的上方的偶数步,向右是 $0$ ,向上是 $1$ 。

    于是先把 $k$ 加上 $n/2$ ,那就是要有 $k$ 步向上走的偶数步。而向上走一共有 $n$ 步,所以有 $k$ 步是在偶数步, $n-k$ 步是在奇数步。所以就是 $C((n+m)/2,k) \times C((n+m)/2,n-k)$ 。

    对于 $n+m$ 不是 $2$ 的倍数,那就枚举最后一步怎么走就可以了。

    #### C - Dirichlet $k$-th root

    猜结论: $f=g^{inv(k)}$ ,居然过了。

    #### D - Fire

    设 $f_x$ 表示走到 $x$ ,走完这个子树且回到 $x$ 的最晚到达 $x$ 的时间。 $g_x$ 表示走到 $x$ 但最后不回来的最晚到达 $x$ 的时间。

    对于 $f_x$ ,可以发现按照 $f_v+2siz_v$ 从小到大走最优。然后用 $f_v-2presiz_v-1$ 来更新 $f_x$ 。

    对于 $g_x$ ,可以枚举最后走到哪个子树,然后剩下的也是按照上面的走法走就可以了。要预处理一下前缀和后缀最小值。

    效率: $O(n\log n)$ 。

    #### E - Flow

    先算出最大流量。

    每条路径要增加 $1$ 的流量的代价是知道的,贪心即可。

    #### F - Game

    不会。

    #### G - Happiness

    fjj写的模拟题。

    #### H - King

    随机选点,然后选择这个点左右的四个点作为 $king$ 串的相邻的点。跑 $20$ 次能找到的概率很大。

    #### I - Moon

    不会。

    #### J - Permutation

    考虑最小值一定不会被动,假设其位置为 $i$ ,那么 $[i-c,i-1]$ 和 $[i+1,i+c]$ 这些位置可以乱放。

    考虑 $[1,i]$ 的次小值,如果出现在 $[i-c,i-1]$ 上,那么其实 $[i-2c,i-1]$ 这些位置是可以乱放的,除了次小值要在 $[i-c,i-1]$ 内,否则就是次小值不能动,它左右拓展 $c$ 个位置可以乱放,第三小值也一样。

    于是我们可以发现,一个区间左右两端可以用若干个长度为 $c$ 的区间覆盖,表示这些位置除了某小值外可以乱放。

    故设 $solve(l,r,xl,xr)$ 表示 $[l,r]$ 区间上,左边 $xl$ 个长度为 $c$ 的区间,右边 $xr$ 个长度为 $c$ 的区间可以乱放。那么如果 $(xl+xr) \times c > r-l+1$ ,那么这个区间内除了某小值剩下的都可以乱放。那么就找下一个某小值的位置,如果在左边的那 $xl$ 个区间内就可以让 $xl+1$ ,如果在右边的那 $xr$ 个区间内就让 $xr+1$ ,否则就递归为 $solve(l,x-1,xl,1),solve(x+1,r,1,xr)$ 。

    用线段树维护最小值位置。效率 $O(n\log n)$ 。

    #### K - All Pair Maximum Flow

    平面图转对偶图后,怎么做不知道了quq

    #### L - Travel

    没看。

    #### M - Value

    考虑分组,然后状压即可。

  • 相关阅读:
    学生管理系统简化版
    图形用户界面编程——事件驱动编程
    图形界面编程
    集合框架
    多线程编程
    反射
    相关类
    异常(4.13)
    接口
    锁!代码锁
  • 原文地址:https://www.cnblogs.com/xjqxjq/p/15605226.html
Copyright © 2011-2022 走看看