
数学
文章平均质量分 75
「已注销」
混子一个
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 5015-矩阵快速幂
矩阵快速幂,开始没看出来以为是杨辉三角,后来t了一发想到ON并不能过,一开始矩阵推不出来,顾分开考虑,输入的n部分依旧按组合数学来做,233部分使用矩阵快速幂,关系变显然得知。| 1 0 0 0 ...|| 1 10 1 0 ...|| 1 10 1 1 ...|| 1 10 1 1 1..|#include #include #include原创 2016-03-15 20:45:23 · 295 阅读 · 0 评论 -
hiho1388 FFT/NTT
http://hihocoder.com/problemset/problem/1388题意:思路:FFT。。。因为显然展开和A^2和B^2没什么关系。。就是一个乘积的形式。。这样显然可以转换成卷积的形式但是至今构造多项式明显是∑A[i]*B[i-k]所以我们把B翻转一下。。但是还是不够,显然这不是全部。。就把A扩长两倍或者最后求和的时候把剩下的那部分再加上就行了s原创 2016-09-29 19:46:24 · 295 阅读 · 0 评论 -
ACM中浮点数精度问题(转载)
在ACM中,精度问题非常常见。其中计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了。精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,让你debug半天都找不到错误出在哪。(原文出处:http://www.cnblogs.com/crazyacking/p/4668471.html)1.浮点数为啥会有精度问题:浮点数(以C/C+转载 2016-11-17 16:58:09 · 681 阅读 · 1 评论 -
hdu 6035 树分治
题意:一棵树,路径的权值等于路径上颜色的种类,问全部路径的价值和思路:题解的方法就不多讲了,这里提供一个树分治做法,首先要将原问题转换为每种颜色的经过路径数量的总和(也就是计算每种颜色的贡献,贡献为经过这种颜色的路径数量)树分治的做法则为,维护重心下的子树第一次出现某种颜色的位置,通过这个位置已经这个点下面的子树大小,和一个相同颜色所有第一次出现的子树大小和来计算(原创 2017-07-30 17:19:58 · 390 阅读 · 0 评论 -
G. Snake Rana 容斥原理
题意: 统计网格矩形的子矩形数目,其中要求每个格子不能包含一些特殊格子(特殊格子小于20)思路:统计格子是个老问题,sum=n*(n+1)/2*m*(m+1)/2 这里要求一些格子不合法,显然用总答案减去非法答案更容易计算。计算非法答案时k代码:#includeusing namespace std;#define MEM(a,b) memset(a,b原创 2017-07-31 19:30:26 · 354 阅读 · 0 评论 -
hdu 6143 组合数学+dp
题意: m个字母,组成两个长度为n的字符,其中一个字母不能同时出现在两个串中。问总方案?思路:枚举m个中恰好有i个在第一个串,有j个在第二个串。。然后求个和。。具体其中n个空恰好k种颜色,可以用dp预处理。dp[j][i]=((dp[j-1][i]*i)%mod+(dp[j-1][i-1]*i)%mod)%mod;代码:#includeusing namesp原创 2017-08-17 19:28:46 · 474 阅读 · 0 评论 -
hdu 6069 区间筛
题意:。。一个公式思路:和区间筛类似POJ 2689。。。筛出L,R的每个质因数的个数即可,然后简单的组合公式,就可以算出i的k次方的约数个数PS。。vector乱搞会卡常。。代码:#includeusing namespace std;#define MEM(a,b) memset(a,b,sizeof(a))#define PB push_back#de原创 2017-08-03 19:26:59 · 787 阅读 · 1 评论 -
hdu 6053 莫比乌斯函数(容斥)
题意:两个序列,A,B,A序列给出,Bi思路:枚举B整体的GCD,直接枚举显然会重复计算,顾使用莫比乌斯进行容斥,单组因子的方案数就是sum (ai/p)显然直接枚举时间复杂度为n*m m=min ai ,在这里我们做一个桶的处理,并求后缀和,就直接计算出 ai/p =ni 的个数知道所以的ni就可以算出sum (ai/p) ,这里处理的方法类似筛法,时间复杂度约为nlog原创 2017-07-27 19:56:31 · 1780 阅读 · 0 评论 -
HDU 6166 二进制分组
题意 :有向图,点集内的任意两点最短路径的最短值思路 :很有意思的题目,直接两两枚举肯定不可以,这里考虑二进制分组,这样只需要分18次就能使得一次分组时最优解在两个不同的集合里面。接下来就是分组后缩点一下跑他20次最短路。。很有意思!!PS vector被卡了常数。。。代码:#includeusing namespace std;#define X first#defin原创 2017-09-14 20:30:37 · 331 阅读 · 0 评论 -
HDU 5869区间CGD不同种类数---树状数组+map统计区间不同种类数(离线)
http://acm.hdu.edu.cn/showproblem.php?pid=5869题意:已知一个数组,Q个查询,问你区间子区间的不同GCD种类数思路:先考虑一个数组区间不同个数,可以使用离线的树状数组实现,具体是对查询右端点进行排序,依次转移解决问题。首先我们考虑固定右端点的查询区间不同数字,其实我们可以在每个数字出现的最右位置记录一下就可以了,统计起来就是s原创 2016-09-29 19:27:49 · 504 阅读 · 0 评论 -
hdu 3388二分 容斥原理
复习容斥原理(其实当时就没学会,看到的题,拿出来再研究一下方便日后复习,题意:给三个数m,n,k, 0这里本质的问题就是容斥原理的最基础的应用,求1-n中与x互质的数有多少,如果知道这个的解法,那么不就是n*m就是x,二分n就可以了,这里n*m肯定不行,所以分开分解unique一下就行了,去年写的代码二分居然用递归巨搓,请大家无视,要是有萌新看见一定要以此为反例。。。原创 2016-04-12 19:55:29 · 442 阅读 · 0 评论 -
hdu5014——构造打表找规律
#include #include #include #include using namespace std;int a[100005];int b[100005];int n;int fin(int x){ int temp=0; int ret=0; int i=0; while(x){ temp=((x&1)^1);原创 2016-03-23 21:01:55 · 337 阅读 · 0 评论 -
hdu5667 费马小定理加矩阵快速幂
题意很明显,给你公式问第n项,求一个loga构造一个新数列,新数列可以用矩阵快速幂求。。思考到这一步,发现还有问题,a的gn次方mod p怎么办?考虑费马小定理,p是素数,所以当a不是p的倍数就成立,所以在gn中去掉k个p-1就好了,也就是在矩阵快速幂中对p-1取模,a是p的倍数的时候显然为0,那么就可以愉快的搞了。。贴代码0.0。。。数学很差一开始没想到费马小定理,又返回去看原创 2016-04-21 15:28:07 · 308 阅读 · 0 评论 -
HDU 5738 共线点集
http://acm.hdu.edu.cn/showproblem.php?pid=5738题意:一个定义,要求一个点集中所以点共线、或者都在一个点。问有多少的这样的集合。思路:2016多校一个题目,方法是对点排序然后对剩下的点斜率排序一下子再(或者map瞎搞一下,没有排序快)。公式就是取当前枚举点和得到的相同k的点,排列组合一下子很简单,记得重复点要提前处理一下子。原创 2016-07-22 19:36:31 · 605 阅读 · 0 评论 -
Codeforces #355C (Div. 2) 组合数
原题链接:http://www.codeforces.com/contest/677/problem/C这题比较水,题意是每个字符有个0-63的编码,问你他可以又多少种等长的字符按位&而来。显然把是0的位找出来,每个0可能是1&0,0&1,0&0,所以答案就是3^n,n是0的个数。。这里写一个黑科技:__builtin_popcount() 是返回一个32位无原创 2016-06-22 17:40:16 · 282 阅读 · 0 评论 -
hdu 5768 容斥+模线性方程组
http://acm.hdu.edu.cn/showproblem.php?pid=5768题意:给你一个范围,让你找到满足条件的数有多少个。。条件:是7的倍数,%Xi=ai。。思路:这个问题明显是个并集这样的问题。。纸上大概写一写就能发现是个容斥的问题。。所以我们先预处理出来每种情况模线性方程的解。。。之后用dfs+状压进行容斥原理(就是把表达式展开+-+-。。。)。。到原创 2016-07-30 15:40:49 · 314 阅读 · 0 评论 -
HDU 5755 高斯消元
http://acm.hdu.edu.cn/showproblem.php?pid=5755题意:一个N*M的棋盘,每个点是0,1,2中的一个,在取模3的含义下,翻转一个这个+2,周围的4个加1.。。。思路:感慨一下知识面太狭隘了。。学习了一下高斯消元,这个题目其实就是高斯消元的一个经典题目。。每个结点的翻转次数都是一个变量。。猛地一看时间复杂度是n^3m^3但是高斯消元里原创 2016-07-30 15:34:20 · 258 阅读 · 0 评论 -
HDU 5794 容斥原理+Lucas
http://acm.hdu.edu.cn/showproblem.php?pid=5794题意: 马在(1,1)走到(n,m)有些地方设置了障碍物不能走。。问方案总数是多少?思路:题外话考虑如果不是马是兵。。其实就是一道CF的原题。。。是马的话其实和兵的思路是一样的,唯一稍微有困难的是要求出(1,1)到(x,y)的方案数 结论是 Lucas ( (x+y)/原创 2016-08-06 16:07:55 · 453 阅读 · 0 评论 -
HDU 5895 欧拉定理+快速幂+公式
http://acm.hdu.edu.cn/showproblem.php?pid=5895 题意: F[ x ]=F[ x-1 ] * 2 + F[ x-2 ] G[ x ]=∑F[ i ] 问 x^G[ n*Y ] % (s+1)思路:之前BC有过类似的题目,这个题目看完了很后悔。。本来是应该可以A掉的。。 思路就是利用欧拉定理来让G变小原创 2016-09-21 14:02:43 · 394 阅读 · 0 评论 -
CF895C dp/线性基
链接:点击打开链接题意:n个数,选子集乘积之和是完全平方数的子集个数思路:首先题目中ai非常小,显然可以状态压缩因子把问题转化成异或和为0的方案数字。在此基础上可以DP解决或者使用线性基DP方法用dp[i][j]表示i次插入时异或和为j的方案数,我们可以想到插入一个新数字就是 dp[i-1][j ^ st]+=dp[i-1][j]但是到此每插入一个数都要遍历j (2^1原创 2017-12-07 01:18:55 · 422 阅读 · 0 评论