Patrickpwq的数学专练
收集各种数学算法的题目
Patrickpwq
这个作者很懒,什么都没留下…
展开
-
【NOIP 2006】2^k进制数(组合数+高精度)
传送门读懂题意过后,我们会发现,难点就是在于最高位的选取,因为最高位的组成有w%k位,并不是简单的k位。不过我们可以分开做,我们先算小于等于\({{w} \over {k}}\)的选取方案,也就是说除去最高位的。相当于就是从1~\(2^k\)-1里选i个数,总方案数为\(\sum_{i=2}^{w/k} C_{2^{k}-1}^{i}\)如果考虑进最高位,...原创 2018-09-03 23:12:00 · 175 阅读 · 0 评论 -
【NOIP 2011】计算系数(组合数+快速幂)
传送门很容易就可以看出,答案等于\(C_{k}^{n-1}*a^n*b^m\)(如果不懂的,可以自行研究一下\({(ax+by)}^3\),\({(ax+by)}^4\)的系数规律)然后...快速幂跑一下,杨辉三角一打就行了#include<bits/stdc++.h>#define K 1005#define mod 10007usi...原创 2018-09-04 00:10:00 · 163 阅读 · 0 评论 -
【NOIP 2016】组合数问题
先画出杨辉三角,我们发现\(C_{i}^{j}\)都在\(C_{n}^{m}\)的左上角那么怎么快速的找倍数呢,由于杨辉三角是加法递推下来的,因此从我们可以边递推边取模,如果余数为0则满足。同时维护二维前缀和,ans[i][j]——到了第i行j列的答案数量。需要注意的:对于每一行,要加一句 ans[i][i+1]=ans[i][i]; 由于j那个地方没有循环到...原创 2018-09-04 00:17:00 · 116 阅读 · 0 评论 -
【NOIP 2009】Hankson 的趣味题(唯一分解定理)
传送门大致思路:找办法确定x的范围我们联想到gcd,lcd对于唯一分解定理的运用即a,b,gcd(a,b)分解质因数后,gcd(a,b)每个质因子的次数是min(在a中出现的次数,b中出现的次数)lcm变成max即可那么也就是说 我们可以给a1,a0,b1,b0分解质因数,从而通过 每个质因子次数作比较 来推断x的取值范围假设px,p0,p1分别是某...原创 2018-09-13 23:17:00 · 142 阅读 · 0 评论 -
【HAOI2011】向量(裴蜀定理+gcd)
传送门通过一段大力分析,我们发现其实转化成了x,y +-2a || +-2b || +a,+b || +b,+a 其中,后两个操作分别最多进行一次(因为多了过后就可以转化成前两种操作)此时我们可以联想到裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数也就是说,**必须当d|x,d|y的时候,x,y才能被...原创 2018-09-15 23:01:00 · 141 阅读 · 0 评论 -
【NOIP 校内模拟】k-斐波拉契(矩阵快速幂+乘法逆元)
这道题真的很好啊!刚好把这几天学的东西结合在了一起首先我们可以发现,一个k-斐波拉契数列的每一项就是普通的斐波拉契数列的倍数因此问题转变成了k * f[n] =1 (mod p) 求k卧槽?这不就是求f[n]在mod p意义下的乘法逆元吗??卧槽?f[n]可以用矩阵快速幂跑出??右转洛谷P1962卧槽??变一下形 kf[n]+yp=1 不就是一个扩欧吗...原创 2018-09-24 23:01:00 · 148 阅读 · 0 评论 -
【AHOI2005】洗牌(乘法逆元+exgcd)
传送门先来找一发规律先把6张牌洗出来的各种顺序依次写下来1 2 3 4 5 64 1 5 2 6 32 4 6 1 3 51 2 3 4 5 6....发现是有周期性的,所以我们就看前三排好了我们试图观察一下每个数字的走向1:先是右移1 然后2 然后32:先是右移2 然后4 然后83:3,6,9........(似乎这个还不是很直观 可...原创 2018-09-26 23:47:00 · 122 阅读 · 0 评论 -
【NOIP校内模拟】阶乘
描述有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使pq刚好为正整数m的阶乘,求m的最小值。输入共两行。第一行一个正整数n。第二行n个正整数a[i]。输出共一行一个正整数m。样例输入16样例输出3提示样例解释:当p=6,q=1时,pq=3!【数据范围与约定】对于10%的数据,n<=10对于30%的数据...原创 2018-10-05 16:06:00 · 162 阅读 · 0 评论 -
【NOIP校内模拟】T1 膜法(组合数)
整理题意后 对于每个询问其实就是由于C(m,n)=C(m,m-n)就变成了其实就是在杨辉三角上的一列求其中的一段和然后有个玄学的公式什么意思呢证明是很容易得到的所以把阶乘预处理出来 由于1e9+7是质数 可以用费马小定理算逆元 就可以O(1)回答#include<bits/stdc++.h>#define N 100010#...原创 2018-10-16 15:26:00 · 142 阅读 · 0 评论 -
【BZOJ4917】Hash Killer IV(简单数论)
对于左移加:其实就是解方程由于i已确定 可以预处理出逆元对于右移异或 可以直接模拟 因为前面一坨不会变#include<bits/stdc++.h>#define uint unsigned intusing namespace std;int main(){ ios::sync_with_stdio(false); ci...原创 2018-10-19 16:16:00 · 190 阅读 · 0 评论 -
【CF992D】Nastya and a Game(思维好题)
子序列肯定不可能是无限长的由于amax=1e8 nmax=2e5 kmax=1e5则summax=1e82e51e5=2e18 而longlong刚好能hold住那也就是说一个子序列里面非1的个数不超过64个(longlong范围是2^64)那我们可以把连续的1缩成一坨 然后枚举每个点 暴力地往后找具体的实现:记le[i]记录每个数左边第一个不是1的数在...原创 2018-10-24 22:06:00 · 359 阅读 · 0 评论 -
【CF402D】Upgrading Array(素数+质因数+gcd+贪心)
不难发现 题目中给出的f函数 其实就是一个数分解质因数后好素数和坏素数的个数之差也就是说 数x带来的贡献 与x的质因数的种类有关系 又联想到gcd[1~x]一定是这个数的因子 也就是说一个数的贡献可以表示成:f(gcd[1~x])+f(....)容易想到贪心做法:我们从后往前枚举 如果当前gcd前缀带来的贡献<0 就除一下另外有几个小细节我平时没有注意...原创 2018-10-27 21:49:00 · 185 阅读 · 0 评论 -
【NOIP校内模拟】T1 排列树(树上的组合数)
假设当前节点now的子树大小为sizenow的方案数是他的所有儿子内部如何分配的方案数相乘得到的 这个可以递归计算不过对于那么多儿子之间 他们分配走的标号可能是不同的 比如now将把2,3,4,5分配给他的子树,那有可能是2,3;4,5 也有可能是2,4; 3,5这样分所以还得套个组合数 C(size,size') size需要一直减下去#include&...原创 2018-10-30 15:39:00 · 132 阅读 · 0 评论 -
【NOIP校内模拟】T1 一串数字(思考题+一点点数论知识)
关键是那些两个数相乘拼成了立方数的一个数分解质因数后,指数%3是不影响的我们可以这样想——我们通过一个数,反推出能够和他凑成立方数的数但有可能这个数在原序列里不存在 不过没关系 我们开两个桶 每次比较下大小 只往一边放 这样就不会多统计了#include<bits/stdc++.h>#define N 100005#define int l...原创 2018-10-31 16:16:00 · 155 阅读 · 0 评论 -
【洛谷11月月赛T3】【P4996】咕咕咕(组合数)
迟到的题解 昨天乱翻的时候感觉这道题挺有意思的一眼看过去状态压缩乱搜转移方程大概是 设f[i]表示从0转移到i的遗憾值之和 f[i]=sigma(f[j])+val[i]*dis[i] dis[i]=sigma(dis[j]) 其中j是i的子集,dis[i]表示从0转移到i的方案数之和妙啊有70分了// luogu-judger-enable-o2// luogu-judger...原创 2018-11-06 09:56:00 · 182 阅读 · 0 评论