zoukankan      html  css  js  c++  java
  • 「考试」省选68

    毒瘤全家桶。

    T1
    考试的时候打的差一个符号就有70了qwq。
    我们把直线交矩形框的点都找出来。
    然后按照矩形的重心为原点进行极角排序。
    对于一条直线来说。
    设两个端点的角度分别是(a_x,b_x),那么我们令(a_x<b_x)
    这样两条直线相交的条件就是:

    [a_xleq a_yleq b_xleq b_y ]

    我的做法是按照(a_x)排序,然后主席树上放每个位置的(b_x)值。
    对于每一个(x)({a})上二分出最大的位置(pos),使得(a_{pos}leq b_x)
    然后再从主席书上查询有多少个(jin[x,pos])使得(b_j<b_x)即可。
    复杂度是(O(nlogn))的,卡精度。

    T2
    大神数论题
    设答案是(f(n))
    首先我们发现这个东西是积性函数。
    那么我们可以质因数分解,然后求(f(p^k))来合并。
    然后可以发现(f(p^k))(p ot=2)的时候就是二次剩余的个数。
    这种情况可以枚举质数来统计答案。
    如果(p=2)的时候,可以打表出答案。
    分解用(pollard rho)就可以了。

    T3
    打表打出(nleq 10,kleq 8)的时候一个连通块的答案。
    然后用组合数之类的做一个背包(dp),这样复杂度是(O(n^2k))的。
    然后我们用贝尔数优化一下(dp)的枚举,这样的复杂度就是(O(n^2))的了。

  • 相关阅读:
    bzoj 2456 mode
    codeforces 630 I(规律&&组合)
    codeforces 630H (组合数学)
    codeforces 651A Joysticks
    codeforces 651B Beautiful Paintings
    codeforces 625C K-special Tables
    codeforces 630F Selection of Personnel(组合数)
    codeforce 630N Forecast
    后缀数组模板
    Hdu5737-Differencia(有序表线段树)
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12682542.html
Copyright © 2011-2022 走看看