首页 > 其他分享 >杂题

杂题

时间:2024-11-23 19:24:40浏览次数:4  
标签:直线 cnt frac times dx dy 杂题

连通块 -Gym 105170D

通过性质搞随机化+利用记录直线离y轴最近整点的tirck

题意:给定了平面上的一些点和平行线的个数,输出一种方案使得所有点都在这 \(k(k \le 50)\) 条不重复的平行线上且每一条平行线上至少有两个点。

对于一个给定的斜率,我们可以用 map 在 \(O(n\log n)\) 时间复杂度下完成一次 check。

关于用 map 记录两点是否在一条直线上:我们可以去计算截距,但是精度的处理很麻烦。给定了表示斜率的互质对 \((dx,dy)\),我们不妨求出经过当前计算的点 \((x,y)\) 所在直线离 \(y\) 轴最近的那个点。\(cnt = x / dx,x = x - cnt * dx, y = y - cnt * dy\)。对于所有在这条直线上的点一定会是这个值,因为 \(dx,dy\) 的互质保证了 \(x_1 \% dx = x_2 \% dx\)。

但是这会超时(虽然OJ 上可以过)。考虑随机两个点,可以证明随机出合法的最小概率为 \(\frac{1}{k}\),那么随机 \(k\) 次即可。

证明:总共的点对个数为 \(n \times (n - 1)\),最坏情况下,所有点平均分布在 k 条直线上,平均一条直线有 \(\frac{n}{k}\) 个点。
那么枚举到这条线上的两个点的点对个数为 \(k \times (\frac{n}{k} \times (\frac{n}{k}-1))\)。
那么概率就是:

\[P = \frac{k \times (\frac{n}{k} \times (\frac{n}{k}-1))}{n \times (n - 1)} \\ = \frac{\frac{n^2}{k}-n}{n ^2 - n} \\ = \frac{n^2-n\times k}{n ^2 \times k- n\times k} ≈ \frac{1}{k}\\ \]

标签:直线,cnt,frac,times,dx,dy,杂题
From: https://www.cnblogs.com/fight-for-humanity/p/18564947

相关文章

  • 线段树分治略解&杂题解析
    可能做到好题之后会再更新吧。总叙线段树与离线询问结合技巧又被称为线段树分治。使用线段树分治维护的信息通常会在某一个时间段内出现,要求在离线的前提下回答某一个时刻的信息并,则可以考虑使用线段树分治的技巧。以下是线段树分治的基本模板:change将信息按时间段覆盖在线......
  • 杂题选练
    一些杂题但可以记录下的。IP5300[GXOI/GZOI2019]与或和首先我们拆位,然后枚举每一个点\((i,j)\),考虑将该点作为矩阵的右下角的贡献,先考虑\(AND\),只有矩阵中的值都为\(1\)时才造成贡献,所以我们考虑记录\((i,j)\)左上方最大全为\(1\)的从左到右单调非严格递减的图形......
  • 「杂题乱刷2」CF827B
    题目链接CF827B解题思路假设树以\(1\)为根,考虑先将\(k\)个深度为\(1\)的节点,然后我们就可以将剩余的节点挂在目前的叶子节点上,但是如果一个叶子节点挂了\(2\)个叶子节点的话,那么这样叶子节点数目你一定不能使叶子节点减少,因此一个叶子节点最多只能往下挂一个节点,因此你......
  • 杂题总结 Vol.3
    杂题总结Vol.3\(\def\EZ{\textcolor{#51af44}{\text{EZ}}}\EZ\)表示简单,10分钟内就能想到。\(\def\HD{\textcolor{#3173b3}{\text{HD}}}\HD\)表示中等,能独立想出\(\def\IN{\textcolor{#be2d23}{\text{IN}}}\IN\)表示困难,独立思考能想到\(50\%\)以上\(\def\AT{\textcolor......
  • 杂题总结 Vol.2
    杂题总结Vol.2\(\def\EZ{\textcolor{#51af44}{\text{EZ}}}\EZ\)表示简单,10分钟内就能想到。\(\def\HD{\textcolor{#3173b3}{\text{HD}}}\HD\)表示中等,能独立想出\(\def\IN{\textcolor{#be2d23}{\text{IN}}}\IN\)表示困难,独立思考能想到\(50\%\)以上\(\def\AT{\textcolor......
  • 「杂题乱刷2」CF1108E2
    题目链接CF1108E1(luogu)CF1108E2(luogu)CF1108E1(codeforces)CF1108E2(codeforces)解题思路这篇题解分E1,E2两个部分来讲。E1sol:我们发现可以暴力枚举最后经过所有操作之后的最大值,那么显然的,我们将不会做任何经过这个位置的操作,会做不经过这个区间的所有操作。直接暴力进行操......
  • 「杂题乱刷2」CF1527B2
    题目链接CF1527B1(luogu)CF1527B2(luogu)CF1527B1(codeforces)CF1527B2(codeforces)解题思路这篇题解分B1,B2两个部分来讲。B1sol:考虑字符串中\(0\)的数量,设这个值为\(sum\):若\(sum\equiv0\pmod{2}\),且字符串回文时,那么此时,后手可以一直模仿先手的操作,直到字符串含有......
  • 杂题乱做 - 2000-
    目录写在前面CF1992F贪心,数学1900CF2008G贪心,数学1800CF2009G1数据结构1900CF1891D数学1900CF1996F二分,简单数学1900CF1985G数学1600写在最后写在前面简单题们。以后可以用来搬。唉唉现在2000及以下都能直接秒了真没意思。CF1992F贪心,数学1900显然直接贪心......
  • 杂题乱做
    BalticOI2021A.ADifficultyChoice蓝题做不出来?蓝题做不出来?蓝题做不出来?发现要求是这\(k\)个数和在\([A,2A]\)之间,这个\(2A\)肯定有说法。分类讨论有没有选择\(\geqA\)的数。如果选择了,一定是仅选择一个\(\geqA\)中最小的数,这时已经满足\(\geqA\)了,剩下的肯......
  • 「杂题乱刷2」CF1301C
    怎么没有二分的题解啊,写一篇。题目链接CF1301CAyoub'sfunction解题思路发现我们可以将问题转化成将\(n-m\)个\(1\)分成\(m\)份,设第\(i\)份的数字之和为\(sum_i\),则这样的分配方案的贡献为\(\frac{n\times(n+1)}{2}-\sum_{i=1}^{n}sum_i^2\)。容易发现要使......