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,完全看不懂呜呜呜

  • 相关阅读:
    Git
    Shell-sed之替换字符
    Linux IO/NFS tunning 性能优化及检测
    利用Java Flight Recorder(JFR)诊断timing及内存问题
    Get/Post
    SQL-1
    HTTP协议简要
    nmap简单使用
    (C语言)买东西找零钱
    今日错误(C语言)(定义二维数组储存)
  • 原文地址:https://www.cnblogs.com/nao-nao/p/14823421.html
Copyright © 2011-2022 走看看