随笔分类 - 数论
摘要:Link 这是一个需要欧拉反演的题目 首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。 根据欧拉函数的性质,知道 那么我们每次先确定中间的数,然后根据公式,得他它得贡献是\(\sum_{i=1
阅读全文
摘要:Link 此题目可以从两个方向考虑,正着和倒着,倒着考虑比较容易,首先把所有的数放到一块,如果是'<'或者'>',就是去掉最左边或者最右边的数,这样显然只有一种可能,答案不变。 如果是'?',那么显然可以去掉中间的任意一个,所以答案就是,那么对于位置的\
阅读全文
摘要:定义平衡进制数码为,请求出一个十进制数的进制表示。 对于该问题,解决的思路是首先算出普通的进制下的表示,然后分别对每一位进行考虑. 1:这一位的数属于 不用管 2:这一位的数属于\(k+
阅读全文
摘要:[link](https://codeforces.com/contest/1855/problem/C1) 像这种构造题可以先分类讨论一波 比如说全是正数或者全是负数,那么显然的就是可以用前缀和和后缀和来解决。 而如果有正有负呢?可以注意到的是数字非常小,而了,那么我们就可以
阅读全文
摘要:[link](https://codeforces.com/contest/1855/problem/B) 需要思考一下 如果这个题能做,那么肯定有一种比较可行的做法。 如果是可行的,那么就意味着是可行的 这是显然的,显然后者的每一个数在前者中必然有对应的倍数,所
阅读全文
摘要:Jisoo 大家都知道怎样单独求某一个东西的欧拉函数值 其中右边的东西是用容斥定理搞出来的。那么我们是否也能够用容斥定理处理这个问题? 显然那个是需要约去的,并且我们可以快速求出$\psi(
阅读全文
摘要:Jisoo 大家都知道,对于两个数 的,只要求去每个质数因数的较大的幂乘起来就行了。然后卡卡时 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #inc
阅读全文
摘要:Jinnie 显然还是一个线性基的问题,那么很显然要用线性基 对于一堆石头,如果加入X会令异或值为0的话,那么显然我们可以拿出一块再把x放进去 这样只需要线性基检查能不能放,从大到小放就行。 这告知了我们求线性基可以考虑改变顺序 #include<bits/stdc++.
阅读全文
摘要:Jinnie 显然是一个线性基的问题,那么很显然要用线性基 想要知道所有的方案数,线性基的性质就是用其中的元素 出来的元素保证互不相等 这样的话只要知道线性基内元素的数量就可以了 #include<bits/stdc++.h> #define int long long using nam
阅读全文
摘要:JIsoo 期望得分要dp,然后期望长度是有关系的 那就一块dp #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> using nam
阅读全文
摘要:Jennie k是给定的 把m和n扔到一个坐标系里 成了二维的了,我们又都知道 然后求和那个奇特的范围 这就是个二维的前缀和啊 #include<iostream> #include<cstdio> #include<algorithm> #
阅读全文
摘要:Jisoo 首先可以意识到,对于这个数组,他的异或和一定不会超过数值和 所以说 直接挂了 然后意识到,区间和的奇偶性和异或和是一样的,(看第一位),这样也不行 剩下的呢,可以直接构造 (已经保证了分子为偶数
阅读全文
摘要:Lisa 这个序列只需要考虑最大值和次大值的数量 如果最大值数量大于1,那么所有排列都可以,输出全排列 如果最大值为1且不等于次大值加1,那么不可能存在 如果最大值为1且等于次大值加1,那么只要最大值后面有至少一个次大值就可行 然后就是组合数学算一算 #include<iostream> #incl
阅读全文
摘要:P3812 【模板】线性基 这是一道板子题 #include<iostream> #include<cstdio> #include<cstring> #define ll long long using namespace std; ll p[100]; ll ans; ll x; ll n; v
阅读全文
摘要:Jennie 然后套上去就行了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #d
阅读全文
摘要:Jennie 结合一下上一个题的思想,先确定一下这个最大公因数可以是谁--n的因数, 所以说肯定要对n的每一个因数的倍数下手,其中去除乘起来为n的哪个外,我们要注意一下剩下的倍数要跟他互质 ‘这不就和上个题一样了 #include<iostream> #include<cstdio> #includ
阅读全文
摘要:Jennie 素数不多,我们考虑素数就可以了 对于素数来说,能以他为gcd,那么肯定时它的倍数,且,那么我们先求出有多少个prime的倍数,然后取出两个互质的倍数,就是一个答案 这不就时的干的好
阅读全文