zoukankan      html  css  js  c++  java
  • THUPC2017看题总结

    THUPC2017 看题总结

    #2402. 「THUPC 2017」天天爱射击 / Shooting

    果题。

    求当前子弹能会使多少块木板损坏,发现因为木板会随着子弹数目的增加而更加容易损坏,故此询问具有单调性。

    而后又发现可以离线,考虑整体二分。

    每次用一个(solve(x,y,l,r))表示当前处理:编号为(x)(y)的子弹,编号为(l)(r)的木板。

    把这些所有子弹都扔到树状数组里然后每个木板查询区间和看够不够用就好了。

    一定要记得存在木板从始至终都没损坏的情况所以循环退出的时候需要特判。

    #2404. 「THUPC 2017」体育成绩统计 / Score

    这大模拟题....绝了~

    #2405. 「THUPC 2017」玩游戏 / Game

    这题就非常有意思了。

    不难发现所有的情况肯定能通过以下方式构造出一组解:

    每次贪心的放最大的就行了,证明显然啊.....

    这样的话就只需要判一下是不是这两个数的和(Sum​)存在一个数(n​)使得(frac{n*(n+1)}{2}=Sum​)即可。

    #2409. 「THUPC 2017」小 L 的计算题 / Sum

    首先我们发现要求的东西非常整齐,以为是什么神仙(dp)啥的。

    无果.....
    想多项式吧,我们考虑能不能弄出这么一个生成函数使得(f_i)就是这个生成函数的第(i)项。

    不妨设其为(F)

    那么显然的,这个生成函数就可以被表示成:

    [F = sumlimits_i sumlimits_{j=1}^n a_j^ix^i ]

    考虑把(a)序列单独枚举:

    [F = sumlimits_{j=1}^n sumlimits_i a_j^ix^i ]

    不难发现,后面的这个(sumlimits_i a_j^i x^i)可以逆麦克劳林展开,变成(frac{1}{1-a_jx})

    所以原式就变成了

    [F = sumlimits _ {j = 1} ^ n frac{1} {1 - a _ j x} ]

    这东西直接多项式求逆然后分治(NTT)搞一搞就好了嘛

    (T)........

    然后怎么办呢?

    原式其实等价于:

    [F = sumlimits _ {j = 1} ^ n 1 + frac{a _ j x} {1 - a _ j x} \ F = n - sumlimits _ {j = 1} ^ n (ln(1 - a _ j x))' \ F = n - (sumlimits _ {j = 1} ^ n ln(1 - a _ j x))'\ F = n - ln(prodlimits _ {j = 1} ^ n (1 - a _ j x)) ]

    后面的东西分治起来就相当快了

    然后多项式取(ln)就好了。

    剩下的题按照常理不就是应该咕咕咕的么啊哈哈哈哈

  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/ShuraK/p/10725552.html
Copyright © 2011-2022 走看看