学习资料
张小象
编程,我自己的能力!!!!
展开
-
hdoj题目分类
hdoj题目分类模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128转载 2015-06-05 19:52:55 · 456 阅读 · 0 评论 -
一元多项式加和乘
#include#include#include#define null 0#define MAX 0x3f3f3ftypedef struct//系数和指数 {float coef; int expn;}term;typedef struct Lnode//链表 {term data;Lnode *next;}*Link,*Link原创 2015-10-15 17:49:22 · 804 阅读 · 0 评论 -
彻底理解强连通!!
有向图强连通分量的Tarjan算法 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,转载 2015-10-27 13:31:01 · 645 阅读 · 0 评论 -
栈的应用(基础讲解)
STACK 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈可用数组模拟:如图原创 2015-09-20 16:13:05 · 467 阅读 · 0 评论 -
线段树详解
线段树定义: 基本的数据类型结构类:class Node {Node * leftChild, * rightChild;int leftSide, rightSide;Element element;};其中leftChild和rightChild是分别指向左右儿子的指针,当该结点为叶子结点的时候,二者值为NULL。leftSide和rightSide表原创 2015-09-18 23:54:14 · 760 阅读 · 0 评论 -
poj 2299Ultra-QuickSort
树状数组 求逆序数 poj 2299这里说的很好,把求逆序的步骤说的很明白,我也是看完才懂的,之前自己想了很久就是不明白为什么可以用树状数组求逆序 转载:树状数组,具体的说是 离散化+树状数组。这也是学习树状数组的第一题.算法的大体流程就是:1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的,2.接着,运用树状数组的标准操作来累计数组的逆序数。算法详原创 2015-09-17 23:44:27 · 442 阅读 · 0 评论 -
无数被转彻底理解树状数组
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为A[i](i=1,2,...n),则与它对应的树状数组C[i](i=1,2,..转载 2015-09-15 23:59:31 · 443 阅读 · 0 评论 -
km算法详解
先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边 具有权值 Wi,j 。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表示转载 2015-09-15 17:22:16 · 3478 阅读 · 0 评论 -
无数次转的母函数
自己理解:对于(#式) (1+x+x^2+x^3+x^4+x^5+....)*(1+x^2+x^4+x^6+x^8+x^10+....)*(1+x^3+x^6+x^9+x^12....).....第一个for给c1 和 c2 赋值 , 把上面#式的第一个括号(1+x+x^2+x^3+x^4+x^5+....)的系数给放在c1中,从而再次计算从 # 的 第二个括号开始 , 所以 i 就是代转载 2015-09-14 01:01:32 · 466 阅读 · 0 评论 -
sort 与Qsort 排序
排序: 过去学过的各种排序相对于今天贴的快排来说,都比较慢,以前的几乎都是用对比的方式来实现! sort 和 Qsort 利用指针进行排序! 相对来说快的多!! 所需元素: 1.数组的首地址; 2.原创 2015-08-23 09:25:53 · 764 阅读 · 2 评论 -
彻底搞定二分图的匈牙利算法,最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖
彻底搞定二分图的匈牙利算法,最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖:二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集U 和V ,使得每一条边都分别连接U、V中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图!如下图:原创 2015-09-10 20:56:53 · 1287 阅读 · 1 评论 -
快速幂算法
在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点含糊,所以在这转载 2015-08-18 17:26:48 · 343 阅读 · 0 评论 -
一个栈,只提供push,pop,top,empty四种操作(这四种操作就是C++标准里的操作),对该栈的元素进行排序
#include<stack>#include<stdio.h>#include<stdlib.h>using namespace std;stack<int> sort_stack( stack<int> st ){ stack<int> st1; while(!st.empty()) { int temp = st.top(); s原创 2015-08-02 23:39:00 · 4366 阅读 · 0 评论 -
KMP算法详解
KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够转载 2015-08-13 23:02:47 · 343 阅读 · 0 评论 -
拓扑排序
在大学里面,我们要学习很多种类的课程,其中有一些课程必须以另一种课程为基础,我们怎么样安排课程才能保证学每一门课的时候它的前驱课程都上过? 要保证课程不会发生冲突(每一门课都必须安排在它的前驱课程之后),就要找出最前面的课程,安排这些课程先上。 如果我们用结点表示课程任务,箭头表示先后关系,那么我们可原创 2015-08-23 20:45:51 · 682 阅读 · 0 评论 -
MyEclipse中最常用的快捷键大全(绝对实用!!),快来收藏一下吧!!
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。 1. 【ALT+/】 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。 2. 【Ctrl+O】 显示类中方法和属性的大纲,能快速定...原创 2018-03-09 08:34:03 · 65358 阅读 · 9 评论