- 博客(12)
- 资源 (5)
- 收藏
- 关注
原创 xdu 1068 Clinton’s beliefs
题目 两个数组,求所有乘积中的第k大的。 方法:二分。 #include #include #include #include using namespace std; typedef long long LL; #define N 10001 LL n1,n2, k, a[N], b[N], flag; LL cal(LL num) { LL i, j, ans; i
2015-05-29 18:18:35 437
原创 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 528
原创 sdut 2880 Devour Magic
打错一个变量,调了一个晚上。。。。给跪了。 题目大意:一条线上有n个单元,每个单元含有一定数量的mana,初始值为0,每经过一个时刻,每个单元的mana会增加1。 现有m次操作(按时间顺序给出),每次给出t,l,r,表示在t时刻取走区间[l,r]内的所有mana。 问最终能获得多少mana。 分析:典型的成段更新,区间查询问题。 使用线段树维护区间和。更新时,使用两个标记
2015-05-08 20:32:55 398
原创 高斯消元模板
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 393
原创 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 368
原创 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 442
原创 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 407
转载 FFT
传送门:http://www.wikioi.com/problem/3123/ FFT,快速傅里叶变换,蒟蒻看别人的题解都太深奥,看不懂,好不容易学会,以蒟蒻的理解写给那些想学FFT却又找不到合适的资料的OIer,蒟蒻理解有限,难免有许多错误,请大家多多包涵。 快速傅里叶变换 百度的各种讲解都TM扯什么频率什么的,蒟蒻完全看不懂,后来认真看了看算导,获益匪浅,算导上讲的真心不
2015-05-06 12:56:08 744
原创 欧拉筛法求欧拉函数
#include #include #include using namespace std; #define N 100000005 bool 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 391
原创 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 661
原创 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 80
原创 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 697
MFC开发的多功能高精度计算器(含源码
2015-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人