随笔分类 -  数论

摘要:Link 这是一个需要欧拉反演的题目 首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。 根据欧拉函数的性质,知道n=d|nϕ(n) 那么我们每次先确定中间的数aj,然后根据公式,得他它得贡献是\(\sum_{i=1 阅读全文
posted @ 2023-12-12 23:24 Simex 阅读(12) 评论(0) 推荐(0) 编辑
摘要:对于不定方程ax+by=c有正数解的充分必要条件是c|gcd(a,b),证明请看裴蜀定理 那么显然的,我们只要能解出方程ax+by=gcd(a,b)然后把解×cgcd(a,b)即可 如何解这个新的方程呢?我们知道gcd(a,b)阅读全文
posted @ 2023-11-04 17:54 Simex 阅读(4) 评论(0) 推荐(0) 编辑
摘要:Link 此题目可以从两个方向考虑,正着和倒着,倒着考虑比较容易,首先把所有的数放到一块,如果是'<'或者'>',就是去掉最左边或者最右边的数,这样显然只有一种可能,答案不变。 如果是'?',那么显然可以去掉中间的任意一个,所以答案就是×l2,那么对于sni位置的\ 阅读全文
posted @ 2023-10-22 23:14 Simex 阅读(11) 评论(0) 推荐(0) 编辑
摘要:定义平衡2k+1进制数码为k,(k1),,,0,,,k1,k,请求出一个十进制数的2k+1进制表示。 对于该问题,解决的思路是首先算出普通的2k+1进制下的表示,然后分别对每一位进行考虑. 1:这一位的数属于 0k 不用管 2:这一位的数属于\(k+ 阅读全文
posted @ 2023-10-14 23:07 Simex 阅读(93) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1855/problem/C1) 像这种构造题可以先分类讨论一波 比如说全是正数或者全是负数,那么显然的就是可以用前缀和和后缀和来解决。 而如果有正有负呢?可以注意到的是数字非常小,而25=32>20了,那么我们就可以 阅读全文
posted @ 2023-08-08 17:19 Simex 阅读(104) 评论(0) 推荐(0) 编辑
摘要:[link](https://codeforces.com/contest/1855/problem/B) 需要思考一下 如果这个题能做,那么肯定有一种比较可行的做法。 如果[l,r]是可行的,那么就意味着[1,rl+1]是可行的 这是显然的,显然后者的每一个数在前者中必然有对应的倍数,所 阅读全文
posted @ 2023-08-08 17:16 Simex 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Jisoo 大家都知道怎样单独求某一个东西的欧拉函数值Ψ(m)=mprimei|m(prime1prime) 其中右边的东西是用容斥定理搞出来的。那么我们是否也能够用容斥定理处理这个问题? 显然那个m是需要约去的,并且我们可以快速求出$\psi( 阅读全文
posted @ 2021-11-08 11:11 Simex 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Jisoo 大家都知道,对于两个数 a,blcm,只要求去每个质数因数的较大的幂乘起来就行了。然后卡卡时 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #inc 阅读全文
posted @ 2021-11-08 08:19 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jisoo 众所周知,这个式子就是i=1n(kiki) 也就是nki1n(iki) 右边的东西用数论分块+等差数列搞一下就可以了 数论分块的每一块的右边界是$\ 阅读全文
posted @ 2021-11-04 16:34 Simex 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Jinnie 显然还是一个线性基的问题,那么很显然要用线性基 对于一堆石头S1,S2,S3,如果加入X会令异或值为0的话,那么显然我们可以拿出一块再把x放进去 这样只需要线性基检查能不能放,从大到小放就行。 这告知了我们求线性基可以考虑改变顺序 #include<bits/stdc++. 阅读全文
posted @ 2021-10-21 11:33 Simex 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Jinnie 显然是一个线性基的问题,那么很显然要用线性基 想要知道所有的方案数,线性基的性质就是用其中的元素xor 出来的元素保证互不相等 这样的话只要知道线性基内元素的数量就可以了 #include<bits/stdc++.h> #define int long long using nam 阅读全文
posted @ 2021-10-21 11:22 Simex 阅读(21) 评论(0) 推荐(0) 编辑
摘要:JIsoo 期望得分要dp,然后期望长度是有关系的 那就一块dp #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> using nam 阅读全文
posted @ 2021-10-19 16:01 Simex 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Jennie k是给定的 把m和n扔到一个坐标系里 成了二维的了,我们又都知道Cmn=cn1m1+cn1m 然后求和那个奇特的范围 这就是个二维的前缀和啊 #include<iostream> #include<cstdio> #include<algorithm> # 阅读全文
posted @ 2021-10-07 14:05 Simex 阅读(54) 评论(0) 推荐(0) 编辑
摘要:Jisoo 首先可以意识到,对于这个数组,他的异或和一定不会超过数值和 所以说 u>v 直接挂了 然后意识到,区间和的奇偶性和异或和是一样的,(看第一位),这样u=v也不行 剩下的呢,可以直接构造 u,vu2,vu2(已经保证了分子为偶数 阅读全文
posted @ 2021-09-27 11:46 Simex 阅读(32) 评论(0) 推荐(0) 编辑
摘要:Lisa 这个序列只需要考虑最大值和次大值的数量 如果最大值数量大于1,那么所有排列都可以,输出全排列 如果最大值为1且不等于次大值加1,那么不可能存在 如果最大值为1且等于次大值加1,那么只要最大值后面有至少一个次大值就可行 然后就是组合数学算一算 #include<iostream> #incl 阅读全文
posted @ 2021-09-09 23:04 Simex 阅读(109) 评论(0) 推荐(0) 编辑
摘要:P3812 【模板】线性基 这是一道板子题 #include<iostream> #include<cstdio> #include<cstring> #define ll long long using namespace std; ll p[100]; ll ans; ll x; ll n; v 阅读全文
posted @ 2021-08-02 08:17 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jennie cmn=cm/pn/pcm%pn%p 然后套上去就行了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #d 阅读全文
posted @ 2021-07-30 00:18 Simex 阅读(43) 评论(0) 推荐(0) 编辑
摘要:Jennie 结合一下上一个题的思想,先确定一下这个最大公因数可以是谁--n的因数, 所以说肯定要对n的每一个因数的倍数下手,其中去除乘起来为n的哪个外,我们要注意一下剩下的倍数要跟他互质 ‘这不就和上个题一样了 #include<iostream> #include<cstdio> #includ 阅读全文
posted @ 2021-07-30 00:14 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jennie 素数不多,我们考虑素数就可以了 对于素数来说,能以他为gcd,那么肯定时它的倍数,且gcd(iprime,jprime)=1,那么我们先求出1n有多少个prime的倍数,然后取出两个互质的倍数,就是一个答案 这不就时ϕ()的干的好 阅读全文
posted @ 2021-07-29 23:55 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Jennie 首先我们要知道欧拉定理 abb%ϕ(p)+ϕ(p)b>=p abb%ϕ(p)b<p 然后对于这个式子,我们可以改造成 \(2^{2^{2^{2^{...}}}\%\phi(p)+\p 阅读全文
posted @ 2021-07-29 23:49 Simex 阅读(35) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示