随笔分类 - 数学
摘要:F. Fruit Sequences 参考:tutorial 遇到这种求的一般情况下都是固定一个端点,然后快速求解值即可。 这种题的解决办法就是寻找不同状态之间是如何转移的,然后要能够很快地转移过去,然后就可以得到答案了。 #include <bits/s
阅读全文
摘要:B - Freebie 期望= 把特殊天分为两类,一种是周末和周一,一种是周二三四五。 ① 对于假设把周末和周一合并为一天,也使得这一天在一年中出现的概率为。 要求出这一天是特殊天的概率有点复杂,正难则反。于
阅读全文
摘要:求 n 以内的素数和以及素数个数 复杂度: // Created by CAD #include <bits/stdc++.h> #define ll long long using namespace std; ll check(ll v,ll n,ll
阅读全文
摘要:B. Binary Vector 的意思是随机生成 n 个 n 维向量,这 n 个向量线性无关的概率。 线性无关指的是向量之间不能相互表示,既不存在解(至少要有一个 k 非0)使得这个式子成立。 依次选取n个向量: 第一个向量非零即可,有$2n
阅读全文
摘要:二次剩余 参考: 二次剩余Cipolla算法学习笔记 #include <bits/stdc++.h> using namespace std; const int mod=1e9+9; namespace TwoRemain { template <typename A, typename B>
阅读全文
摘要:D - Omkar and Circle 参考:Codeforces Round #655 (Div. 2) 题解 (ABCD) 由题意可得,每次只取个数,且只有一对数相邻。最后选取位置是奇数位或者偶数位。 用几个样例手推,来发现规律 // Created by CAD on 20
阅读全文
摘要:"小V和方程" 需要用到的知识: "小球与盒子" 冷静分析,仔细思考
阅读全文
摘要:"递归实现指数型枚举" 状态压缩: 分别遍历每一个状态即可。
阅读全文
摘要:快速乘 参考: "小技巧1——长整型:64位整数的乘法模运算" 当 a 和 b 都大于1e9的时候,为了防止溢出,就需要一个算法,叫做快速乘。 实现方法一: 将乘法转换为加法,并且伴随着取模操作的进行,可以保证不会溢出。 而为了加速加法操作,可以利用快速幂的思路,对加法操作进行优化,复杂度为$O(l
阅读全文
摘要:"Blocks" 利用递推的想法得到一个递推公式,在本质上它是一个 dp 的题目,但是由于 n 过大,不能使用 dp 解决,所以将递推公式化为矩阵乘法,所以可以用矩阵快速幂进行优化。
阅读全文
摘要:"D Domino for Young" 参考: "Codeforces Round 609 (DIV 2) D. Domino for Young" "D. Domino for Young" 题解的想法是将图形进行黑白交替染色 类似于: 黑白中个数最少的那个即是答案:
阅读全文
摘要:"D Time to Run" "Codeforces Round 619 (Div. 2) Editorial" 特别要考虑到只有一行或者只有一列的情况。 如果由 k 直接正向推路径的话,难免会要考虑到很多种情况,不如先得到全部走完的路径,然后再从末尾开始减,一直到 k。另外,可以对将要输出的向量
阅读全文
摘要:"C Ayoub's function" 参考: "Codeforces Round 619 (Div. 2) Editorial" 当从正面计算感觉很困难的时候,不如从反面来想,这是利用了容斥的思想。 我们只需要用所有子串的个数减去只包含0的子串个数即可。 而要是只包含0的子串的数量最少,那么就要
阅读全文
摘要:"D Fill The Bag" 参考: "Educational Codeforces Round 82 A~E 题解" 因为这道题的 是2的幂次方,相当于是提示了我们需要用位运算来进行解决。 相当于二进制中的每一位,我们要做的是把 填进 n 的每一位中,一个 只能填一位。 低位的数字可以填高位,
阅读全文
摘要:"D Aerodynamic" T所表示的图形就相当于是把原点放在P所表示的图形的边缘,然后不断的把图形平移,绕原点旋转,原点始终位于P所表示出的图形的边缘。 这样一来可以意识到只有当原图形是中心对称图形的时候,T与P才会相似。 "证明图形为中心对称图形"
阅读全文
摘要:证明图形为中心对称图形 ①有偶数个点 ②所有第 i 个点和第 n/2+i 的中点的位置都一样
阅读全文