zoukankan      html  css  js  c++  java
  • 20210528模拟赛总结

    越来越难了呜呜呜

    T1

    并不是很难,发现函数的定义域必须是对称的,又发现当 (r) 为奇数的时候难以构造出合法函数。现在我们只需要考虑对于 (l+r=0,2mid r) 的状态就好了。

    我们发现,既然 (f(f(x)) = -x) ,令 (y = f(x)) 可以发现一个环,即 (x ightarrow y ightarrow -x ightarrow -y ightarrow x)

    所以,每两个元素可以构成两种合法的环,现在我们只需要考虑对于 (n) 个元素,分成 (frac{n}{2}) 组,每组两个元素,可以划分多少种方案。容易发现答案是 (dfrac{n!}{frac{n}{2}!})

    T2

    上午并不会怎么做……想法假了呜呜呜。

    我们设 (f[i][j]) 为上升子序列以 i 结尾,同时下降子序列的结尾是元素 j 的时候的方案数, (g[i][j]) 为下降子序列为 i 结尾,上升子序列以元素 (j) 结尾的方案数。

    如果有 (a[i] > a[i-1]) 的话,我们将上升子序列延长,直接就有 (f[i][j] += f[i-1][j]) 。同理,有 (a[i] < a[i-1]) 的时候,将下降子序列延长 (g[i][j] += g[i-1][j])

    考虑从 (f) 转移至 (g) 。我们有 (g[i][a[i-1]] += sumlimits_{j=a[i]+1}^{n+1}f[i-1][j]) ,同理 (f[i][a[i-1]] += sumlimits_{j=0}^{a[i]-1}g[i-1][j])

    然后使用线段树优化,需要单点加,全局清零,区间查询即可。

    T3

    写了个哈希拿了 20pts,完全看不懂呜呜呜

  • 相关阅读:
    对象数组深拷贝
    百度地图 轨迹
    vant mp-vue
    Nginx代理webSocket时60s自动断开, 怎么保持长连接
    python_传递任意数量的实参
    python_函数传递列表
    python_形参、实参
    python_函数、局部变量与全局变量
    python_三级字典
    python_字典的使用
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14823421.html
Copyright © 2011-2022 走看看