自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everything can be done!

学习充实自己,使自己变得更加强大

  • 博客(13)
  • 收藏
  • 关注

原创 搜索剪枝DFS

Tempter of the Bone  hdu1010题意:给一个图,找出一个看能否能在t的时间内从S到达D点;思路:BFS肯定不行,因为bfs找到的是最短时间的路径,无法对在t时间点到达D点进行判断;        于是才想到了DFS,这个能把所有的情况遍历一遍的算法,虽然图的长宽只有7,但是总是超时,这次终于体会到了剪枝的博大精深,因为虽然说长宽只有7,但是用dfs走

2016-11-30 19:34:49 269

原创 关于n!和n^n的数位以及各个位上的数(stirling公式)

推广:求左边第x位只要推公式时将10^(k-1)变为10^(k-x)即可,最后答案取模10。 n^n的位数:k = [lg(n^n)] + 1 = [n * lg(n)] + 1 最左边的数作个位:x = n^n / 10^(k-1)取对数:lg(x) = n * lg(n) - (k-1) = (n*lg(n) - [n*lg(n)])最左边的数:[x] = [10^lg(x)] = [

2016-11-30 19:13:24 1554

原创 写过的数据结构实验记录一下

树的应用 (2学时)1、实验目的通过本实验掌握二叉的建立和递归遍历、非递归遍历算法,了解二叉树在实际中的应用并熟练运用二叉树解决实际问题。2、实验内容根据前序遍历的顺序建立一棵二叉树,并根据遍历规则遍历二叉树。打印输出。3、实验要求(1)根据前序遍历的顺序创建一棵二叉树;()对二叉树进行前序、中序、后序遍历。收获:会了非递归进行的三种遍历//15070642

2016-11-30 16:20:30 820

原创 二叉排序树学习入门

PS:今天刚刚上了一堂关于二叉排序树的数据结构,把以前不会的二叉排序树的题补一下;The order of a Tree   hdu3791题意:根据插入的顺序进行构建二叉排序树,判断二叉排序树是否相同思路:建树,比较,都是入门;#includeusing namespace std;const int maxn = 1000 + 10;struct Node{ N

2016-11-21 22:27:48 561

原创 欧拉定理的应用hdu2462,hdu1395

欧拉定理:a^x 1(mod m),那么 x = euler(m);The Luckist Number题意:输入一个n,求能够整除n只由8组成的数的最小的位数;思路:题目等价于满足(10^x - 1)/ 9 * 8 == n * p,其中p为整数,的x的最小值,n的范围2 * 10 ^ 9;刚开始的时候,想直接把1,11,111,1111,……打一个表打到2*10

2016-11-20 21:53:26 377

原创 Fruit Ninja(树状数组)hdu4000

Fruit Ninja题意:在一个数组a[]中找出符合i 思路: 可以从反面进行求出:a[i] 废话不多说,直接上代码:#includeusing namespace std;typedef long long ll;const int maxn = 100000 + 10;#define mod 100000007ll a[maxn];ll tree[maxn

2016-11-20 21:06:16 359

原创 Sequence II(hdu5147)树状数组

Sequence II题意:在数组中找到符合这个的条件的数的的个数:1. 1≤abcd≤n2. AaAb  3. AcAd思路:对一个在位置i的数,用树状数组就能知道前面比它小的数,类似地,找到后面比他小地数;根据后面比他小的数这个进行打表记录在这个位置后能够符合的对数;相乘一下就行了;#includeusing namespa

2016-11-16 21:38:34 253

原创 容斥学习入门

容斥原理:;容斥原理的实现:用一个temps[maxn]数组记录各个容斥加减0,用a[maxn]数组记录元素的个数;然后具体的实现算法代码如下:int temp[maxn];int cnt = 0;temp[cnt ++] = -1;for(int i = 0;i < cnt1 ; i ++)//容斥记录所有的情况//cnt1是a[]的大小{ int k = cnt;

2016-11-10 19:22:09 322

原创 euler欧拉函数学习入门

euler函数:对于一个数n,euler(n)的求的是在【1,n】之间与n互质的数的个数,公式为:euler(n) = n * (1 - p1) * (1 - p2) * (1 - p3) * ......*(1- pn),其中p1,p2,.....pn是n的质数,不重叠;实现的算法是typedef long long ll;//直接求解欧拉函数ll euler(ll x){ /

2016-11-09 18:32:51 1057

原创 并查集系列题解

CodeForces 217A题意:给一系列的点,每个点以x,y轴方向进行延伸,使得一些点成为一个集合,然后求出至少需要添加几个点使得所有的点都在一个集合里面;思路:用并查集求出现有的形成了多少个集合,然后答案就是集合数 - 1;这里的finds函数相比以前我写的比较精简一点;#includeusing

2016-11-08 08:25:54 304

转载 优先队列学习

转载自:http://www.cnblogs.com/heqinghui/archive/2013/07/30/3225407.html优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~百度百科上这样描述的:  优先级队列 是不同于先进先出队列的另一

2016-11-04 19:21:34 212

原创 hdu3047(带权并查集)

hdu3047 ZJnu stadium题意:给出一个n,m,n表示的是有n 个人,m表示的是 有m 对关系: 接下来输入的就是这m对关系,a,b,x;表示的是a,b相距x个距离;然后判断输入的是否与这个数的上面的数信息一致, 输出不一致的数目;思路:用一个dist[ ]数组记录他到他的祖先的距离;然后对并查集合并的时候将rb的祖先赋给ra,然后就要对dist[rb]的值进

2016-11-03 21:08:30 3924 1

原创 n! 是否能整除 m 的问题

Factovisors题意: 判断n!能否整除m,n,m的大小范围为 2^32 差不多是10^10的大小吧;思路:先对m拆分成素数,然后再判断n!包括的素数的个数是否都大于或等于m的素数的个数,如果是的话就能整除,否则不能整除;判断n!中素数p的个数的公式为   k = n / p + n / (n ^ 2) + n / (p ^3) + ……+……;各个数都是整除;

2016-11-01 12:04:35 2055

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除