• csp-s模拟84


    T1:

      考虑如何能按顺序生成光滑数。对每个质数用队列维护包含此质数的候选集合,每次从所有队首取出最小的作为一个光滑数,用每个质数乘上这个光滑数并加入相应候选集合。这样不会漏掉一个光滑数,但会有重复。比如取到光滑数$3$,乘上$2$加入了$2$的队列,而取到$2$时同样乘$3$加入$3$的队列。如果规定一个数只由自己最小的质因数产生就可以去重。

    T2:

      状压$dp$。首先序列是按顺序依次插数的,就是说调换前后顺序可能会不合法。考场上打的$dp$没注意这一点,做成了排列问题,调了一个多小时过不了样例才发现。

      状态不好设。只用一个约数出现的次数表示状态还不行,需要知道哪几个约数是在同一个数中的。于是就再加一维表示那些约数对在不同数中出现,这样加入一个新数时,就能判断与其不互质的数是否超过$1$。即如果新数的两个约数在不同的数中出现过,与新数不互质的个数就为$2$。

      状态一共有$27$位,压个$int$用哈希表存,实际状态很少。

    T3:

      思路新颖的一道题。能嗅到很强的乱搞题气息,但搞得有理有据。合法方案是出错点数不过半,就是说随便一个点在合法方案变换成功的概率有$1/2$以上。变换前后可以列方程,用两个点列出四个,解出$dx,dy,sin( heta)scale,cos( heta)scale$,三角函数求出$ heta$,代出$scale$,验证是否合法。

      精度稍炸,多测$10$组取平均值。$tan2$函数传入$sin,cos$值能确定角的象限。

  • 相关阅读:
    RunLoop详解
    NSURLConnection基本用法(苹果原生)
    NSThread 基本使用
    NSOperation/NSOperationQueue详细使用介绍
    JSON解析
    XML解析
    GCD详细用法
    [Java]手动编译Java
    [Selenium] Grid 介绍
    [SoapUI] 循环遍历某个Test Case下的所有Test Step,将Cookie传递给这些Test Step
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/11730107.html
Copyright © 2020-2023  润新知