![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 58
数论
洋芋洋芋洋芋
这个作者很懒,什么都没留下…
展开
-
莫比乌斯函数 莫比乌斯反演
莫比乌斯反演莫比乌斯反演是数论中的重要内容。对于一些函数,如果很难直接求出它的值,而容易求出其倍数和或约数和,那么可以通过莫比乌斯反演简化运算,求得这个函数的值。开始学习莫比乌斯反演前,我们需要一些前置知识: 积性函数 、 Dirichlet 卷积 、 莫比乌斯函数 。数论分块:https://www.luogu.com.cn/problem/P2261#include <cstdio>#include <algorithm>#include <iostream&原创 2021-11-28 12:23:05 · 432 阅读 · 0 评论 -
博弈论与 sg 函数
博弈论定义 必胜状态 为 先手必胜的状态 , 必败状态 为 先手必败的状态 。通过推理,我们可以得出下面三条定理:定理 1:没有后继状态的状态是必败状态。定理 2:一个状态是必胜状态当且仅当存在至少一个必败状态为它的后继状态。定理 3:一个状态是必败状态当且仅当它的所有后继状态均为必胜状态。对于定理 1,如果游戏进行不下去了,那么这个玩家就输掉了游戏。对于定理 2,如果该状态至少有一个后继状态为必败状态,那么玩家可以通过操作到该必败状态;此时对手的状态为必败状态——对手必定是失败的,而相反原创 2021-11-28 12:11:34 · 2382 阅读 · 0 评论 -
大素数判定以及大整数分解
素数判定——Miller Rabin 算法#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <string>#include <algorithm>#include <vector>#include <set>#define ll long long#include <map>原创 2021-11-28 12:10:07 · 480 阅读 · 0 评论 -
同余定理 逆元 中国剩余定理 费马小定理
同余定理同余定理是数论中的重要概念。给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对模m同余或a同余于b模m同余性质反身性:a≡a (mod m)对称性: 若a≡b(mod m),则b≡a(mod m)传递性: 若a≡b(mod m),b≡c(mod m),则a≡c(mod m)同余式相加:若a≡b(mod m),b≡c(mod m原创 2021-11-28 12:09:00 · 486 阅读 · 0 评论 -
康托展开详解
康托展开总结:将每个数从头开始以N,N-1,N-2…作为编号对于编号i的数,给答案加上a[i]*(i-1)!其中a[i]表示比i小的数且在之前没出现过的数个数,乘以i-1的阶乘ans=a[N](N-1)!+a[N-1](N-2)!+a[N-2](N-3)!+…+a[1]*0!康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,…,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次。假设有原创 2021-11-28 11:52:42 · 435 阅读 · 0 评论 -
组合数学(排列 组合 容斥 二项式 母函数)
组合数学排列Aab=a!(a−b)!A_a^b = \frac{a!}{(a - b)!}Aab=(a−b)!a!可重复排列数从 n 个物品可重复的取k个排列数为 nkn^knk错排问题n封不同的信, 编号分别是 1, 2, 3, 4, 5 现在要把五封信放在编号1, 2, 3, 4, 5的信封中, 要求信封的编号和信编号不同, 有多少种不同的放置方法n个人将各自的帽子混在一起后任取一项,求恰有k个人拿对自己的帽子的概率:错排问题的定义如下:给定n元素集合X,它的每一个元素都有一原创 2021-11-28 11:44:13 · 594 阅读 · 0 评论 -
组合数学 - Bus Number
题目链接: https://codeforces.com/problemset/problem/991/E题意:给你一个数字字符串, 长度不超过18位, 问多少个序列满足:字符串中所有出现过的数字在序列中至少出现一次字符串的某一数字的出现次数要大于等于序列中该数字出现的次数序列不能是 0 开头 (公交车牌号肯定不是0开头= =)思路: 数字字符串的长度不超过18位, 可以考虑搜索出所有的数字组合情况, 然后求当前数字组合情况的方案数, 方案数可以先包含 0 开头的情况, 然后减去 0 开头的原创 2021-11-01 19:09:51 · 399 阅读 · 0 评论 -
组合数学 - Count the Arrays
题目链接: https://codeforces.com/problemset/problem/1312/D题意:计算数组的数量使得:每个数组包含 n 个元素每个元素都是 1 到 m 的整数每个数组恰好有一对相等的元素每个数组 a 都存在一个索引 i , 使得该数组在第 i 个元素之前严格升序并在它之后严格降序思路: 由题意可知, 数组的长度为 n, 且有一个最大元素, 也有一对恰好相等的元素. 先不考虑这一对相等的元素, 考虑剩下的 n - 1 个元素, 我们需要选出 n - 1 个元素,原创 2021-11-01 15:18:17 · 132 阅读 · 0 评论 -
组合数学 - The Intriguing Obsession
题目链接: https://ac.nowcoder.com/acm/contest/21791/E题意:岛上有三种颜色的岛屿,分别是红色、蓝色和紫色。岛群分别由 a, b 和 c 个分别为红色, 蓝色和紫色的岛组成在一些 (可能全部或没有) 岛屿之间建立了桥梁。一座桥双向连接两个不同的岛,长度为1。对于任意两个相同颜色的岛,要么不能通过桥相互到达,要么它们之间的最短距离至少为 3思路: 由题意可知, 同一个岛群的岛屿不能建立桥, 两个相同颜色的岛屿不能连接到一个颜色不同的岛屿, 两个岛想要连边, 那原创 2021-11-01 15:01:17 · 129 阅读 · 0 评论 -
解题记录 LeetCode 快乐数 模拟判环
题目链接: https://leetcode-cn.com/problems/happy-number/**题意:**编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。思路: 不断模拟, 看有无环, 注意: 不会出现值会越来越大,最后接近无原创 2021-07-06 10:50:07 · 70 阅读 · 0 评论 -
解题记录 LeetCode 数字 1 的个数 数学规律题
题目链接: https://leetcode-cn.com/problems/number-of-digit-one/题意: 求小于等于 n 的数中1出现的个数思路: 暴力超时, n 范围 2 * 1e9, 所以需要找规律, 易发现个位上每增加十个数, 个位就会出现一次1, 十位上每增加100个数会出现10次1, 以此类推, 但是由于 n 不是一个能被10整除的数, 所以还有末尾细节需要处理代码:class Solution { public int countDigitOne(int n)原创 2021-07-06 10:16:26 · 66 阅读 · 0 评论 -
三大素筛原理
欧拉筛#include<bits/stdc++.h>using namespace std;const int N = 100000100;int cnt, n;int prime[N];bool on[N];int main(){ scanf("%d", &n); on[0] = on[1] = 1; //0和1不是素数 for(int i = 2...原创 2019-12-12 21:32:26 · 248 阅读 · 0 评论 -
快速幂原理
题目描述求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围1≤a,b,p≤109输入样例:3 2 7输出样例:2大致思路:我们知道,任何一个自然数都可以写成n=2pi1+2pi2+2pi3+……2pim,其中所有pi为非负整数,所以可以利用二分,将这一题次数m,转化一下即可。...原创 2019-11-30 23:09:04 · 101 阅读 · 0 评论