zoukankan      html  css  js  c++  java
  • 暑假8-14

    最近两天三考,问题很多

    昨晚那场正的有些意外,不是意外自己挂了,而是意外别人5个AK的,但我觉得这题一点也不水(可能上次做达哥的题做怕了)

    T1  N15 状态数 $2^15$不需要转移,直接dfs枚举,然而脑子一抽把b和d放反了

    T2  网格上的无向无环森林计联通块数,就是$点数-边数$,再利用二维前缀和$Theta(1)$查询

      需要注意边界情况,和一般的二维前缀和不太一样

    T3  暴力:$Theta(n^2)$枚举相交的点并去重、计数

      根据贡献的计算方式$frac{x imes(x-1)}{2}$联想实际意义,即:两条过点的线段的方案数,那么最终答案就是算所有的两两相交的方案数

      优化至$Theta(C_n^2)$

      再根据本题线段的特性:纵坐标递增;如果两个线段总坐标递增,横坐标递减,一定相交,那么总答案就是求横做标的逆序对个数

      挨个求需要$Theta(n log n)$,仍超时

      再想横坐标数组$x[ ]$的特性,是:在% mod意义下的等差数列$x_1+(n-1) imes a$,不模是完整的等差数列,去模后就是很多段等差数列

      公差是$a$,说明每隔$a$一定出现一个$x$

      已知$x_{i-1}$的逆序对个数$m$(包含了$x_{i-1}$之前的$k$个等差段),要推$x_i$的逆序对,只需用$m$减去之前 每个段中都有的一个 大于$x_{i-1}$而小于$x_i$的数 共$k$个

      这样只需求每个等差段开头的一个数的逆序对数便可以推出整个段的逆序对数,总复杂度:$Theta(n + a imes log a)$

    做这类题还是要从原题意下手,一步一步分析题目性质,逐渐把暴力优化到可过的复杂度

    今天上午一场考试又挺难的

    T1  模拟,记录每次翻折后翻折点的位置和区间左右端点,新的翻着时,推新的位置,更新左右端点,总$Theta(n^2)$

    T2  类欧几里德思想,通过把方程规模不断缩小,得出一层答案(其实边界条件是特判出来的)后迭代回去出得出最初答案

      虽说$L,R$范围$1 imes10^9$,但中间过程会乘爆$int$,还得开$long long$.

  • 相关阅读:
    如何解决Ubuntu下的的“system program problem detected”
    GDM, KDM, LightDM, SDDM显示管理器的区别和安装配置
    在Linux下安装使用vokoscreen录制网站上的视频与声音-Ubuntu-mate-20.04桌面环境测试录屏推荐
    Ubuntu-mate-20.04-desktop安装总结
    云上渗透-基于阿里云环境渗透
    fastadmin前台getshell漏洞
    gitlab CI/CD Custom SAST
    前端神器RRWEB
    【转】六种减小Docker镜像大小的方法
    splunk 多个数据关联查询
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/11355717.html
Copyright © 2011-2022 走看看