zoukankan      html  css  js  c++  java
  • 2016中国大学生程序设计竞赛(长春)

    2016中国大学生程序设计竞赛(长春)

    1002.Fraction

    • 写个分数结构体。

    1005.The Fastest Runner Ms. Zhang

    • 最后的图形是个菊花状的,即一个环上的每个点上长了一棵树。
    • 那么方案分两种:两个叶子的根为环上两个不同点,或者为同一个点。
    • (f(u))表示遍历以(u)为根且最后返回(u)的代价,(d(u,v))表示环上两点的最近距离。
    • 从1到2的代价为$$sum{f_i}+2(d(u,v)-1)+(L-d(u,v))-dep(1)-dep(2)$$
    • 整理下,即表示为$$C+d(u,v)-dep(1)-dep(2)$$其中(C=sum{f_i}+L-2)
    • 如果给环定义一个起点,则(d(u,v)=d(v)-d(u)),那么代价可以表示为$$C+d(v)-d(u)-dep(1)-dep(2)$$可以看出这是一个可以用单调队列维护的东西。
    • 如果两个叶子在同一个环上呢?显然我们想让这两个点之间的距离越大越好,那么就是求一下树的直径就好了(写的时候忘记可能跨过环上的点了。。。疯狂WA)。

    1006.Harmonic Value Description

    • 注意$$2kle n$$
    • 最小值的一个序列$$1,2,...,n$$此时(sum{gcd(p_i, p_{i+1})}=n-1)
    • 每次把相邻偶数放一起,则gcd增加1。
    • 考虑到只有(lfloorfrac{n}{2} floor)个偶数,将(k)个连续偶数放一起即可。

    1007.Instability

    • 1、2个点是稳定的;6个点以上是不稳定的,直接组合数求下即可。
    • (inom{50}{5})约为(2 imes 10^6)(inom{5}{2})用状压连通点即可判断。

    1008.Sequence I

    • Hash或kmp

    1009.Sequence II

    • 主席树维护有效位置

    1010.Ugly Problem

    • 每次构造前缀相同的回文串
    • 若比(s)大,则选择离中心最近的非零位置减1。
    • 这样两次即可达到长度减半,所以(n)不会超过50。

    1011.Binary Indexed Tree

    • 考虑某个位置(p)的贡献:当一个区间端点含(p)而另一个不含的时候,(p)会贡献一次,如果统计出含(p)的个数(cnt),则总贡献为$$(n+1-cnt)cdot cnt$$
      需要考虑和0配对。
    • 考虑一个位置(x),会访问到(x, xoplus lowbit(x),cdots)这些位置。
    • 这些位置在二进制表示下为(x)的一个前缀且末位为1。
    • 容易想到数位dp(f(i,last,limit))表示到第(i)位末位为(last)是否达到上界(limit)的方案数。
    • 需要注意的是,记忆化时需要记录(ans)的增量,否则会少记录一些方案。
  • 相关阅读:
    最近想读的书想做的事
    syslogng 正确配置udp接受端口
    (转)iPhone重绘机制drawRect
    .Net工具整理
    用系统的网格还是用自己的网格
    将主关键字加强为适应多个
    onblur与onbeforedeactivate的区别
    模式窗口中无法转向
    实现获取客户端的MAC地址(3)
    onkeypress、onkeydown、onkeyup三事件的区别
  • 原文地址:https://www.cnblogs.com/mcginn/p/5931465.html
Copyright © 2011-2022 走看看