随笔分类 - 数学
摘要:"E. Another Filling the Grid" 参考: "Codeforces Round 589 (Div. 2) E. Another Filling the Grid 容斥定理" 容斥这个东西可以理解,但是运用到实际的时候,还是觉得有点迷迷糊糊的,不知道套公式会不会是一种可行的办法
阅读全文
摘要:"C Primes and Multiplication" 思路:找到 的所有质数因子,用一个 储存起来,然后对于每一个质因子来说,我们要找到它对最后的答案的贡献的大小,即要找到它在最后的乘积中出现了多少次。 求解方法: 另外,该题还需要用到快速幂的技巧。 代码: cpp // Created by
阅读全文
摘要:"D. Marcin and Training Camp" 参考: "D. Marcin and Training Camp" 思路:首先先确定最大成员的$a_i$,因为不能够某个成员 认为自己比其他所有成员都厉害,所以必须要有一个人 来压制他。压制有两种方法:①$a_j$跟他一样大 ②${a_i}
阅读全文
摘要:"C Anadi and Domino" 参考: "Anadi and Domino" 思路:分为两种情况: ①`n ② ,在这种情况下肯定会出现某两个点 和`b a`和 都有一条边,那么,只能够在其中一条边上放多米诺牌,而另外一边不可以。那么我们就可以将它分成两部分,一个是连接 的边,一个是连接
阅读全文
摘要:"C White Sheet" 思路:先看代码,分成了四个条件。第一个和第二个表示的都是当白矩形存在某个黑矩形内部的情况。 另外就是:白矩形位于两个黑矩形的并集区域。 即可分为两种情况,一种是白矩形位于竖的区域(条件三),上图: 那么黄色区域就是判断范围 另一种是横的区域(条件四): 黄色区域即判断
阅读全文
摘要:"D. 站军姿" 参考: "随机在圆上生成n个点,这n个点在同一半圆的概率是多少?" 思路:直接利用公式,随机在圆上生成n个点,这n个点在同一半圆的概率是$\frac{n}{2^{n 1}}$ ,求逆元的时候直接用费马小定理即可 代码: cpp // Created by CAD on 2019/9
阅读全文
摘要:"Fibonacci again and again" 参考: "SG函数和SG定理【详解】" 思路:这是比较简单的SG定理的运用,SG定理—— 游戏和的SG函数等于各个游戏SG函数的Nim和 如果一个位置 的SG值为0,那么这个点就为必败点 ,否则就是必胜点 必败点:用N表示 必胜点:用P表示 对
阅读全文
摘要:巴比博弈 参考: "博弈论及算法实现" 只有一堆 个物品,两个人从轮流中取出 个,最后取光者胜。 考虑到 若 那么 第一个人不论如何取都不能取胜。 进一步我们发现 若 ,先取者拿走 个,那么后者再拿 个 ; 先取者再拿走 个 最后总能造成 剩下 的局面。 因此,此时先手有必赢策略。 相对应的,若 那
阅读全文
摘要:"火烧赤壁" 隔了一天再来理解就想对来说舒服多了,也不知道是不是因为昨天太忙了没有专心.... 参考: "火烧赤壁 题解" "火烧赤壁题解" 思路:首先必须要明白一点,这道题需要将船只的位置标记出来,但是看到数据为 就可以知道,很明显直接用一个数组来储存是不可能的。但是因为数据的个数不多,所以我们就
阅读全文
摘要: "E. XOR Guessing" 第一次做这种交互题,刚开始还看不懂,现在已经差不多可以理解了,清空缓存区用 1~100 1~100 (1~100) using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0
阅读全文
摘要:参考: "负数的位运算" "原码, 反码, 补码 详解" 一直都不是很懂负数的位运算,还有反码,补码,源码这些,总结一下 关于反码,补码,源码的定义看参考博客 在每一个二进制数中,最高位是用来表示它的符号的,负数为1,正数为0 原码 就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值
阅读全文
摘要:参考: "当小球遇上盒子" 默认问题:把 n 个小球放到 m 个盒子里,分别有三项要求: ①球是否相同 ②盒子是否相同 ③能否有空盒。 1.球相同,盒子不同,不能有空盒 利用插板法,n 个小球中间会存在 n 1 个空,用 m 1 块板插入这些空中,可以将 n 个小球分为 m 块,因此: $$ ans
阅读全文
摘要:"K Count the Buildings" 参考: "Count the Buildings" 思路可以借鉴,但是代码略有问题 写的时候 re 了 9 发,然后把变量定义的顺序换了一下居然 A 了,以为这个是个骚操作,最后才发现是真的会越界,当 f+b n+2 的时候就有可能会发生越界,而这种情
阅读全文
摘要:"Buy the Ticket" 参考: "Buy the Ticket" 上面博客中好像 n 和 m 的意思写反了,不过问题不大,反着输入就好了,题目中说 n 是 50 的人数,m 是 100 的人数,这里反了一下。另外还需要用到高精度。 公式(m 是 50 的人数,n 是 100 的人数): $
阅读全文
摘要:`from kuangbin` 包含了 `+ / ^ % = (istream&, BigNum&); friend ostream& operator(const BigNum & T)const; bool operator==(const BigNum & T)const; bool oper
阅读全文
摘要:"Game of Connections" 这个题也是直接求 "卡特兰数" ,不过数据有一点大,不能够直接求,因为杭电不能交 python 不然我就用 python 写了.... 对于这么大的数据,还不能写 python 就只能用 "高精度" 啦 代码:
阅读全文
摘要:`From kuangbin` 支持加法,乘法, `char BigInt` 初始化
阅读全文
摘要:"D 小兔的棋盘" 思路:很裸的 "卡特兰数" 但如果直接上,会爆 ,所以需要用一些技巧 两种写法: 1.使用卡特兰数最基本的公式: $$ f(n)=\displaystyle\sum_{i=0}^{n 1} f(i) f(n i 1) $$ 注: 代码: cpp // Created by CAD
阅读全文
摘要:参考: "卡特兰数" 很经典的问题有:合法括号匹配、矩阵从左下角到右上角不走对角线、二叉树构成问题、凸多边形的三角形划分等等 一般会用到的公式有 $$ f(n)=\displaystyle\sum_{i=0}^{n 1} f(i) f(n i 1) $$ 注: 通项公式: $$ f(n)=\bino
阅读全文

浙公网安备 33010602011771号