牛客多校
吹梦到西周啊啊啊
纵有千古,横有八荒;前途似海,来日方长。
展开
-
2020牛客暑期多校训练营(第四场)H.Harder Gcd Problem(数学)
H-Harder Gcd Problem 题意:从1到n中,选m对数(不重复),使得每一对都不互质,求最大的m并输出一种可行的搭配 题解:先线性筛筛出1到n中的素数,从大到小遍历这些素数,比如当前遍历到素数pip_{i}pi,去枚举pip_{i}pi的没用过且小于等于n的倍数(包括pip_{i}pi),如果个数为偶数,就将它们一一匹配:若为奇数,就将2倍的那个数踢出,其他的一一匹配,踢出的那个数留着和后面的素数的2倍匹配,将它们标记为已用过。 其实在比赛中我无法证明这种做法的正确性(虽然现在好像也给不原创 2020-07-20 18:36:22 · 173 阅读 · 1 评论 -
2020牛客暑期多校训练营(第三场)F.Fraction Construction Problem(数学)
F-Fraction Construction Problem 题意:给定a和b,构造cd−ef=ab\dfrac{c}{d}-\dfrac{e}{f}=\dfrac{a}{b}dc−fe=ba 且 d,f<bd,f<bd,f<b 题解: 1.当ab不互质,即ab存在非1公因数时,可以构造出a+xb−xb=ab\dfrac{a+x}{b}-\dfrac{x}{b}=\dfrac{a}{b}ba+x−bx=ba ,x任取,因为要求d,f<bd,f<bd,f<b,原创 2020-07-19 13:38:31 · 342 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)J.Just Shuffle(逆元+模拟)
J-Just Shuffle 题意:给定一个排列A和一个大质数k,找出一个置换B,使得P经过k次B置换后得到A,输出第一次置换后的结果 题解:在排列A上找出所有环,记环的大小为szisz_{i}szi,每一步移动的长度为tmpitmp_{i}tmpi,使得tmpi∗k≡1modszitmp_{i}*k\equiv1 mod sz_{i}tmpi∗k≡1modszi,也就是求出k在modszimodsz_{i}modszi下的逆元,k为大质数,所以一定有解,输出每个环移动tmpitmp_{i}tmp原创 2020-07-15 15:55:06 · 331 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)B.Boundary(计算几何)
B-Boundary 题意:给定原点及n个点,找到一个圆使得尽可能多的点在圆上 题解:三点可以确定一个圆,原点固定,遍历两个点去确定圆心,并用map保存圆心,当再次得到一个相同的圆心时,map++(圆心相同,且有共点必定为同一个圆 为避免重复计算某一点,每次遍历完第一维之后,清空map,相当于每一次固定原点和定点P,遍历第三点Q,最后结果要加上P 由于圆心推导的式子有点小问题,所以一直只能过95%(55555…),后面给出三点确定圆心的模板 Code: #include <bits/stdc++.h&原创 2020-07-14 19:55:22 · 307 阅读 · 3 评论