码迷,mamicode.com
首页 > 其他好文 > 详细

csp-s模拟84

时间:2019-10-24 09:56:41      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:自己   排列   维护   family   需要   不同的   函数   均值   先序   

T1:

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

T2:

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

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

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

T3:

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

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

csp-s模拟84

标签:自己   排列   维护   family   需要   不同的   函数   均值   先序   

原文地址:https://www.cnblogs.com/Duan-Yue/p/11730107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!