- 博客(12)
- 资源 (5)
- 收藏
- 关注
原创 xdu 1068 Clinton’s beliefs
题目两个数组,求所有乘积中的第k大的。方法:二分。#include #include #include #include using namespace std;typedef long long LL;#define N 10001LL n1,n2, k, a[N], b[N], flag;LL cal(LL num){ LL i, j, ans; i
2015-05-29 18:18:35 452
原创 hdu 5226 Tom and matrix
求∑x2i=x1∑y2j=y1ai,j mod p 其中ai,j=Cji。 p为素数将式子展开后应用组合数公式:C(n,m)=C(n-1,m-1)+C(n-1,m) 化简。然后用lucas定理求解即可。#include #include #include #include #include #include #include using names
2015-05-22 16:30:28 553
原创 sdut 2880 Devour Magic
打错一个变量,调了一个晚上。。。。给跪了。题目大意:一条线上有n个单元,每个单元含有一定数量的mana,初始值为0,每经过一个时刻,每个单元的mana会增加1。现有m次操作(按时间顺序给出),每次给出t,l,r,表示在t时刻取走区间[l,r]内的所有mana。问最终能获得多少mana。分析:典型的成段更新,区间查询问题。使用线段树维护区间和。更新时,使用两个标记
2015-05-08 20:32:55 414
原创 高斯消元模板
const int maxn=1002; const double eps=1e-12; double a[maxn][maxn]; int equ,var;//equ个方程,var个变量 double x[maxn];//解集 bool free_x[maxn]; int n;
2015-05-07 22:58:33 404
原创 hdu 5212 code
题目传送门法一:观察calc函数,其本质就是求sigma(x*(x-1)),x=gcd(a[i],a[j])。然后发现a[i]的范围不大,因此x的范围也不大。于是可以考虑数据范围内每个x对答案的贡献。枚举x,设f[i]表示gcd=i的数对个数。则累加f[i]*i*(i-1)即为结果。关键就是求f[i]。可以先计算出n个数中i的倍数有多少个,设为s。这s个数,任意两个数的gc
2015-05-06 22:37:11 387
原创 mobius inversion
有关资料:定义及性质证明线性筛法相关题目:hdu 1695题目大意:求满足x属于区间[1,m]与y属于区间[1,n],且gcd(x,y)=k的数对(x,y)个数。(x,y)与(y,x)属于算作同一个数对。分析:问题与求x∈[1,m/k],y∈[1,n/k]且gcd(x,y)=1数对(x,y)个数等价。。设f(i)表示x∈[1,m/k]
2015-05-06 19:05:25 462
原创 hdu 3037 saving beans (lucas定理)
题目大意:求在n棵树保存不超过m个豆子的方法数,结果对p取模。 (n、m分析:由插板法,在n棵树保存i个豆子方案数为C(n+i-1,i)。不超过m个豆子,则方案数为C(n+0-1,0)+C(n+1-1,0)+……+C(n+m-1,m)。根据组合数性质:C(n,m)=C(n-1,m-1)+C(n-1,m),可将上式化简为C(n+m,m)即所求结果为C(n+m,m)考虑
2015-05-06 17:01:53 423
转载 FFT
传送门:http://www.wikioi.com/problem/3123/FFT,快速傅里叶变换,蒟蒻看别人的题解都太深奥,看不懂,好不容易学会,以蒟蒻的理解写给那些想学FFT却又找不到合适的资料的OIer,蒟蒻理解有限,难免有许多错误,请大家多多包涵。快速傅里叶变换百度的各种讲解都TM扯什么频率什么的,蒟蒻完全看不懂,后来认真看了看算导,获益匪浅,算导上讲的真心不
2015-05-06 12:56:08 776
原创 欧拉筛法求欧拉函数
#include#include#includeusing namespace std;#define N 100000005bool vis[N];int p[N], cnt, phi[N];int Euler(int n){ int i, j, k; phi[1] = 1; for (i = 2; i < n; ++i){ if (!vis[i]){ p[cn
2015-05-03 17:10:30 403
原创 fast read
inline int read() { char ch; bool flag = false; int a = 0; while(!((((ch = getchar()) >= '0') && (ch <= '9')) || (ch == '-'))); if(ch != '-') { a *= 10; a += ch - '0';
2015-05-03 12:32:06 684
原创 hdu 4704 sum
题目大意:给出N(1分析:一开始还以为是求整数划分个数,很快发现不是的。比如N=4的时候,(1,1,2)和(1,2,1)应当作不同的方案。考虑将N部拆分成N个1,然后对这N个1用插板法进行划分。那么总的方案就是C(n-1,0)+C(n-1,1)+……+C(n-1,n-1)=2^(n-1)注意到这里的N非常大,而1e9+7为质数,因此可使用费马小定理降幂处理。对于
2015-05-02 12:17:32 93
原创 hdu 5201 the mokey king (容斥原理)
题目大意:n个桃分给m只猴子,要求第1只猴子获得的桃子数目最多。问分配的方法数。分析:设第i个猴子分得的桃子数目为x[i](0若没有要求,则问题转为求不定方程x[1]+x[2]+x[3]+……+x[m]=n,即x[2]+x[3]+……+x[m]=n-x[1] 的非负整数解的个数。用插板法得到个数为C(n-x[1]+m-1-1,m-1-1)=C(n-x[1]+m-2,n-x[
2015-05-01 21:23:05 710
MFC开发的多功能高精度计算器(含源码
2015-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人