![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
文章平均质量分 55
Lnn.
来吧
展开
-
牛客练习赛100E.小红的公倍数(线段树+究极卡常
牛客比赛题目原创 2022-06-17 14:19:59 · 237 阅读 · 0 评论 -
思想——高维拆分低维组合
前言:将高维数据拆分成低维的组合,以降低时间复杂度 OR 用已知的数据结构来简化题目。 文章目录NWERC 2020 I. Island TourCodeforces Round #574 (Div. 2) E. OpenStreetMap总结 NWERC 2020 I. Island Tour 题目传送门 题目类型:模拟、低维遍历 题意:n(400)个点形成圆环,每个人在点或者i到i+1的路上都有不同停留时间。三个人要同时遍历这个环,问是否存在三个起点,使得三人在遍历的过程不会相遇。 解析原创 2022-04-22 14:04:18 · 1408 阅读 · 0 评论 -
Codeforces Round #609 (Div. 1)C. K Integers(逆序对、二分、向中聚集)
前言:还行,推出了个大概,就差临门一脚。 题目传送门 题目类型:逆序对、二分、向中聚集。 解析: 很明显,求f(n)的时候就是求整个数组的逆序对。顺着这样的思路,f(k)就是把1到k聚集到一起,然后求1~k的逆序对。然后我是从fn求到f1的。 那么题目分成两步了,第一步把每个数字对其后面数生成的逆序对数量找出来,记在suf[a[i]]里。 第二步就是求聚集k个数的花费。最优解是最中间的数不动,其他数向中间靠拢。(偶数时中间两个都要试一下) 如何找到最中间的呢?假设求f(k),现在数字原创 2022-04-18 23:19:23 · 181 阅读 · 0 评论 -
2019-2020 ICPC, Asia Jakarta Regional Contest.E. Songwriter
前言:之前感觉做法有点突兀,一觉睡醒感觉又有点道理,记录一下 题目传送门 题目类型:dp、贪心、逆向 解析: 由于题目要求序列字典序最小,那么最前面的我们需要尽可能的让他小。 但是,前面的选完无法保证后面的能够合法(已经有一点点逆向考虑的意思了)。那么我想知道第i个选在哪里才能保证后面的合法,由于相邻有限制关系,就需要知道i+1让后面合法的范围,同理需要知道i+2、i+3…n的范围,而n后面没有了,所以n的范围就是【L,R】,然后根据相邻关系倒推回去。再从前往后贪心。具体方式见代码 co原创 2022-03-15 12:52:24 · 368 阅读 · 0 评论 -
D. Frog Jumping(裴蜀定理、bfs)
前言:有趣的数论题 (因为表达式少写括号多d了一个小时的bug(晕 题目传送门 题目类型:数论、裴蜀定理、bfs 解析:先说一个结论,当n小于a+b时直接bfs;>=a+b时所有点x == k*gcd(a,b)都能到达。 bfs部分不说了,很基础。 设青蛙向右跳跃x次,向左y次,到达了n,对于青蛙的跳跃轨迹,可以用一个方程表达:ax + by = n。 这个式子就很难不想到裴蜀定理:a、b是整数,那么一定存在整数x、y使得ax+by=gcd(a,b)。 所以青蛙能够到达原创 2021-12-15 20:18:40 · 342 阅读 · 0 评论 -
D. Not Quite Lee(裴蜀定理、gcd、lowbit)
前言:思维+数论+证明给我干傻了。 题目传送门 题目类型:数论、裴蜀定理、gcd、lowbit 解析:引用一下大佬Arctic_Clam的图。设选定的子序列数组为c。 设式子左边部分为S,可以发现式子右边的xi*ci部分可以用到裴蜀定理。就是说xi *ci的和是gcd(c1…ck)的倍数。 设g = gcd(c1…ck)。若上式有解,则g|S(S也应该是g的倍数)。 注意S部分,已知g | ci,那是否有g | (ci/2)呢,有的话则直接good。 有一个简单的结论:如果x |原创 2021-11-29 01:12:15 · 315 阅读 · 0 评论 -
E. Kuroni and the Score Distribution妙妙构造、证明
前言:这一场,寄! 题目传送门 E. Kuroni and the Score Distribution 题目类型:数学、证明、贪心构造。 解析:凭直觉会想到构造1~n的数组,此时三元组最多。感性证明一下:比如1,2,3,4,5,6,7。7 = 1+6 = 2+5 = 3+4。7可以把1-6的所有数都用来构造三元组,每个数都尽量把前面的数用来构造三元组(i-1)/2个,所以这样构造三元组是最多的,这样还不够的话就寄了。 如果还没构造完就超过了,那么此时需要的数<=(i-1)/2。比n =原创 2021-11-18 13:32:33 · 249 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2)F. Kate and imperfection(逆向、贪心、因子)
前言:用思维干掉一道2200的题,很开心。这里提供一个nlogn的逆向思维方法。 题目传送门 F. Kate and imperfection 题目类型:数学、因子、贪心、逆向思维。 解析:感觉从size从2到n不好想,反过来想一下,设g为最大的gcd,当size==n,此时g必定是n/2,想使答案缩小,就要把g的倍数删到只剩一个,贪心的想,从大的删。从n/g* g一直删到2*g。 复杂度方面,相当于把2~n/2的倍数都过一遍,略小于调和级数nlogn。 code: void solve(原创 2021-11-16 15:59:09 · 206 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2)D. Orac and Medians
前言:好久没写题解了,虽然一直在刷,但是懒。。 题目传送门 D. Orac and Medians 题目类型:思维、中位数、转换。 解析:从最简单的想:选两个数,那么会转换为较小的数,只要有一个≥k的数在k旁边,就能整出2个连续k。那么就可以选两个k加一个其他数,一起变成k,重复就全部变成k了。 如果k旁边的数都小于k,那么可以让≥k的数靠近k。 设x≥k,问题就转化为整出连续的(≥2)x即可。那么要求3个数中要有2个≥k,4个中有3个,5个中有3个…可以发现3个中有2个是整出连续x的充分原创 2021-11-15 13:31:15 · 227 阅读 · 0 评论