随笔分类 - 学科竞赛--算法学习 / 比赛训练
摘要:
写在前面: 非正式题解,题解在QQ官群有(虽然没有代码) 小度养小猫 首先对ci按照大小排个序,然后再时间允许的情况下越早越好 这个倒是想到了,但是有一个问题:我们如何快速找到对应的猫应该喂养的时间? 如果时间没有冲突还好说,直接按照分配即可 但是如果时间有冲突了,同时可能有些时间已经被分配走了,如
阅读全文

摘要:
写在前面 参考博客< 课程安排 我们首先要解决的问题是: 如何判断课程冲突? 首先如果他们在最开始就冲突了,那么就一定冲突 最开始即 [s%t,f%t] 这一段区间,初相位? 然后呢? 不知道 不妨假设一下,如果他们的t不相同,那么就存在冲突 其实可以画个图 在无限长的区间中,如果t不相同,那么一定
阅读全文

摘要:
写在前面: 非正式题解 具体题解处: 视频< 博客< 公园 我们可以想一下小度和度度熊一定会相遇一起走吗? 会的,最不济的情况到最后小度和度度熊会在终点相遇 为了总消耗最少,他们从一个点到另一个点一定是走最短路 那他们也可能会为了相遇从而不是一口气从原点走到终点的 于是我们可以枚举他们相遇的点,相遇
阅读全文

摘要:
RC-u2 出院 注意:只需要将名字拆分成两个已知等级的部分 我比赛的时候根本没看到这两个字,写到最后写了个复杂的递归,还错了.... 我直接要进院了 RC-u4 相对论大师 当时看到的时候一眼觉得的拓扑排序??? 赛后想一下,他题目可没说这个图不能环,然后寄了 RC-u5 相对成功与相对失败 CA
阅读全文

摘要:
RC-u2 女王的大敕令 当时我写的时候还dfs()去枚举开始点和停留点 其实完全没有必要,直接4层for循环 2层枚举开始点,其余两层枚举停留点 然后判断开始点与停留点之间的步数是否合法 是否会被怪物击中即可 #include<iostream> #include<cstring> #includ
阅读全文

摘要:
写在前面: 将这两场比赛放在一起是想总结一下写巨复杂的模拟题的心得 比较好的题解博客: 2021CAIP复赛 2022CAIP省赛 《7-1 冒险者分队》 这是题目比较重要的一点,同时可以发现不管是加还是减,都是20的倍数 明显,如果原值与目的值的差值 不能整除20,则必然会失败 同时我们还可以得到
阅读全文

摘要:
《7-1 懂的都懂》 这道题其他没什么,就是暴力 但是注意上面,我们算平均值的时候要用double 如果对double不放心(因为double其实有时候并不准确) 可以写成如下样子: #include<iostream> #include<cstring> #include<algorithm> #
阅读全文

摘要:
最长上升子序列 之前我定义的dp是: dp[n][i]:表示在前n个数中选,并以数a[i]结尾的最长上升序列 但是这个状态的转移有点不自然,感觉就想有很多多余的感觉 if (i<=n-1) dp[n][i]=dp[n-1][i] if (a[i]>a[j] && j<=n-1) dp[n][i]=m
阅读全文

摘要:
STL 当想要维护一个数组,其中的元素要求有序,同时可能随时对这个数组中的元素进行增减 有没有一个STL可以快速维护一个这样的数组? multiset(平衡二叉树) 默认从小到大排序 注意离散化中清除重复元素的原理: unique()函数 vector中的earse是删除指定一段,所以离散化有: 《
阅读全文

摘要:
《斐波那契与 7》 写的时候第一次尝试了暴力,跑了一个小时多都没有跑完 查了一下,大概1s可以跑1e8条指令 如果真要跑的话 202202011200 ,应该跑到比赛结束应该内跑完(希望电脑不会炸) 暴力还是不合理的,遇到这种情况试一下循环节 对于斐波那契数列Fn=Fn-1+Fn-2 所以只要出现了
阅读全文

摘要:
《A 填空问题》 试题 A:带宽 我觉得题目出错了,在计算机网络中带宽中的bps是bit/s 其中的单位M 是10^6 而不再是按照2^20来算了 但是答案不是这样的,奇怪! 试题 B :纯质数 死亡原因: 没有把0设置为非质数 其余的主要是用线性筛筛出1~20210605中的质数就好啦 int s
阅读全文

摘要:
《A填空问题》 数学前提:错排问题 结论:设C(n)为有n个人都错排了的方案数 C(n)= (n-1)(C(n-1)+C(n-2)) 阶乘结论:n! 当n>20时 会爆long long 数学前提:康拓展开 cantor 是用来求全排列中 某一个排列在整个全排列的位数 (即这个排列在全排列中是第几小
阅读全文

摘要:《P8671 [蓝桥杯 2018 国 AC] 约瑟夫环 循环(%)问题》 我尝试用STL中的list 与 vector 进行模拟 可以发现复杂度都是>=O(N*K)的,会超时 只有通过数学推式来得到全部正确的答案 这里简单说一下STL list 与 vector中对插入,删除元素的用法: list:
阅读全文
摘要:《找到最长的区间,使区间内字符数相等》 即这个序列只有两种字符 不要二分,会去世
阅读全文
摘要:
《C. Scoring Subsequences》 这道题有很多解法:二分,双指针等,但是无论哪一种都要知道如下: 想要得到当k时,最大的分数,那么就会贪心地将后面的数相乘再除 设长度为len,那么在为k时,长度为len时,max score = (ak*a(k-1)*...*a(k-len+1)/
阅读全文
