数学
查尔斯欢
这个作者很懒,什么都没留下…
展开
-
Acdeam 1007 快速幂+大数乘法
题意很简单,难点在于对10000000007取余,longlong相乘会爆longlong,所以这里原创 2014-07-06 16:47:59 · 1149 阅读 · 0 评论 -
acdream 1071
求取余不为零的数的对数,就是总数减去取余为零的原创 2014-07-08 08:58:10 · 655 阅读 · 0 评论 -
hdu1695 && hdu4135 容斥原理两连发
利用容斥原理求一个数跟一个区间中互质原创 2014-10-23 22:06:10 · 672 阅读 · 0 评论 -
hdu5072 容斥原理
统计一下每个约数在数列中数原创 2014-10-24 17:50:12 · 738 阅读 · 0 评论 -
hdu5106 组合
给一个二进制数,求小于这个二进制数且二进制形式里含有n个1的所有数原创 2014-11-19 08:51:28 · 833 阅读 · 0 评论 -
hdu5144 三分
三分裸题,看在第三百题的份上贴一下~#include #include #include #include using namespace std;const double pi=acos(-1.0);const double g=9.8;double v,h;double ans(double a){ double a1=v*v*sin(a)*sin(a);原创 2014-12-22 22:21:02 · 795 阅读 · 0 评论 -
快排,堆排序,基数排序手写记录
闲来无事,手写一遍三种排序。#include #include #include #include using namespace std;//快排void quick_sort(int v[],int s,int e){ if (s>=e) return ; int key = v[s]; int i=s; int t=e;原创 2015-03-04 21:51:39 · 634 阅读 · 0 评论 -
关于堆排序建堆时间复杂度的证明
建堆的过程,看起来外面一层循环O(n),里面是个logn的调整函数,时间复杂度貌似是nlogn的,但是仔细分析,其实质是O(n)的。证明如下:首先,对于高度为h的完全二叉树,其第i层的元素个数为2^(i-1),对于堆的每一层,调整的深度都不一样,每层的元素的调整深度小于等于h-i,假设每层调整的深度是h-i,欲构建的堆是个完全二叉树,那么对于每层来说:最后一层不用调整;倒数第二层的原创 2015-03-04 21:17:08 · 3424 阅读 · 2 评论 -
蓄水池采样法
看到一个非常有趣的题目,学会了一个非常巧妙的算法:如何从n个数中随机的选择k个数?如果采用直接产生随机数的方法,当n和m都很大时,随机数产生重复的概率会很大,算法性能会大大降低。这里采用蓄水池算法,算法代码很简答,假设从n个数中选择k个数: for (int i=k+1;i<=n;i++) { int p=rand(1,i); if (原创 2015-09-10 22:16:14 · 1065 阅读 · 0 评论