自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xyjikl

for fun.

  • 博客(199)
  • 资源 (2)
  • 收藏
  • 关注

转载 自己动手写一个Struts2

使用Struts2或webwork2有一段时间了,想把Struts2框架的思路简单的与大家分享一下,之前我是看过Struts2源代码的,所以本文算是它的一个功能非常有限的压缩版本。我也不打算重复发明轮子,只想让Struts2或Webwork2的新手更多的了解框架本身,而不仅仅是应用。废话少说,开始吧。  本文采用基本Xml来配置Action,如果有时间会继续写Annotat

2015-04-30 08:40:59 564

原创 django1.4.5配置静态文件(img,css,js)访问

在settings.py加入import osWEB_ROOT = os.path.dirname(os.path.abspath(__file__)).replace('\\','/').decode('gbk')STATICFILES_DIRS = ( os.path.join(WEB_ROOT,'../static/').replace('\\','/'),)我

2015-04-19 08:14:59 445

原创 最大字段和 暴力 分治 动态规划时间对比

//============================================================================// Name : maxsum.cpp// Author : judyge// Version :// Copyright : Your copyright notice// Descriptio

2015-04-17 17:55:26 2374

转载 记一次代码优化

题目选择:不定方程的非负整数解解。问题描述:问方程x+2y+5z=n,对于特定输入的n(n),输出其大于的整数解的个数。其时间限制是为:1000ms。选择原因:选择此题主要是由于自己实际作此题过程中,遇到了很多问题,这篇报告主要是来写我对于这些问题的解决,与对代码的不断优化。解题过程:这个问题非常简单,是的,非常简单,只要一个枚举就能解决,而我为啥还要选择这个问题来

2015-04-17 17:06:58 653

转载 最大子段和——分治与动态规划

问题:  给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为:      Max{0,a[i]+a[i+1]+…+a[j]},1    例如,当(a1,a2,a3,a4,a4,a6)=(-2,11,-4,13,-5,-2)时,

2015-04-17 17:06:01 1346

转载 最大字段和 冲出暴力枚举

这篇解题报告是对我最近一些题的总结,里面的代码都是我解题,优化,再优化的过程的记录,记录了自己对算法的完善与优化思路,还有对编程哲学的理解:do it,do it well。很感谢孙老师您,让自己可以找到利用计算机作比只是单纯玩游戏更有意义又更有趣的事情,又通过您的课,通过照着您给的路自己不断探索,感觉自身能力得到了很大的提升,从当时一个小程序漏洞百出,思路拙劣,对oj系统的不熟悉,甚至当

2015-04-17 17:01:10 820

转载 C++/STL Bitset (转)

最近用的bitset比较多,位运算在存储状态、模拟行动、搜索很多方面有着非常巨大的优势,所以特意转了一篇bitset的基本用法。==========================================================构造函数bitset b; b有n位,每位都为0.参数n可以为一个表达式.如bitset b0;则"b0"为"00000";

2015-04-17 15:54:56 351

转载 C++ STL基本容器的使用

C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和set。map是key-value形式,set是单值。map和set只能存放唯一的key,multimap和multise

2015-04-17 15:52:51 436

转载 C++ STL泛型编程——在ACM中的运用

学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生。两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想。这次想简单说一下STL在ACM中的一些应用。我们知道,在ACM竞赛中,经常需要用到数组、字符串、队列、堆栈、链表等数据结构和排序、搜索等算法,以提高程序的时间、空间运行效率。然而如果这些数据结构总是需要手工来编写,那无疑会是一件很麻烦的工作

2015-04-17 15:50:10 552

转载 STL之七:STL各种容器的使用时机详解

C++标准程序库提供了各具特长的不同容器。现在的问题是:该如何选择最佳的容器类别?下表给出了概述。但是其中有些描述可能不一定实际。例如:如果你需呀处理的元素数量很少,可以虎落复杂度,因为线性算法通常对元素本身的处理过程比较快,这种情况下,“显性复杂度搭配快速的元素处理”要比“对数复杂度搭配慢的元素处理”来得划算。    作为对上表的补充,使用时:    1.缺省情况下应该使用v

2015-04-17 15:49:02 348

转载 stl string常用函数

string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字

2015-04-17 15:47:16 420

转载 哈希表的C++实现

哈希表的几个概念:映像:由哈希函数得到的哈希表是一个映像。冲突:如果两个关键字的哈希函数值相等,这种现象称为冲突。处理冲突的几个方法:1、开放地址法:用开放地址处理冲突就是当冲突发生时,形成一个地址序列,沿着这个序列逐个深测,直到找到一个“空”的开放地址,将发生冲突的关键字值存放到该地址中去。例如:hash(i)=(hash(key)+d(i)) MOD m

2015-04-17 15:41:43 502

转载 python实现自顶向下,自底向上

常用的算法设计思想主要有动态规划、贪婪法、随机化算法、回溯法等等,这些思想有重叠的部分,当面对一个问题的时候,从这几个思路入手往往都能得到一个还不错的答案。本来想把动态规划单独拿出来写三篇文章呢,后来发现自己学疏才浅,实在是只能讲一些皮毛,更深入的东西尝试构思了几次,也没有什么进展,打算每种设计思想就写一篇吧。动态规划(Dynamic Programming)是一种非常有用的用来解

2015-04-17 11:25:51 4275

转载 斐波那契数列 递推 递归 备忘录 动态规划

当n=0时,f(n) = 0     当n=1时,f(n) = 1当n>1时,f(n) = f(n-1) + f(n-2)递归算法:[cpp] view plaincopyint fun(int n)  {      if(n         return 0;      if(n == 1

2015-04-17 11:21:33 2486

转载 “斐波那契数列”的两种算法

“斐波那契数列”的两种算法 斐波那契数列有个规律:从第三个数开始,每个数是前两个数之和,比如:1 1 2 3 5 8 13 21 34 55...... 现在通过两种方式(递归与非递归)算数列中第N个值,代码如下: /** * 斐波那契数列算法,从第三个数开始,每个数是前两个数之和:1 1 2 3 5 8 13 21 34 55 

2015-04-17 11:16:22 1223

转载 假期ACM训练计划表

OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.  

2015-04-17 10:58:51 534

转载 UVa 11000 - Bee

题目:印度蜜蜂,每年每只雄蜂产下一只雌蜂和一只雄蜂,每只雌蜂产下一只雄蜂,然后就死去;            现在发现了一只不会死的雌蜂,问以她为起始点,第N年有多少雄蜂和一共多少蜜蜂。分析:dp,FIb数列类似物。            设第k年的雄蜂和雌蜂分别为m(k)与f(k),则有如下递推关系:            ① f(k)= m(k-1)+ 1;(只

2015-04-17 07:51:37 549

转载 UVa 10359 - Tiling

题目:给你一个2*n的地面,用1*2和2*2的地板砖铺满,有多少种不同方案。分析:组合数学,动态规划。直接找到地推关系求解。            因为,只可能是最后一列是一个整体(1种情况)或者最后两列是一个整体(两种情况);            所以,有递推公式:f(n)= f(n-1)+ 2*f(n-2);            可以使用动态规划或母函数(a

2015-04-17 07:28:50 437

转载 线段树入门

最近在看些线段树的东西,虽然不是搞ACM的,但了解这些东西还是有好处的。这里是Quora上的一个讨论,谈了对程序员可能一辈子都写不到的数据结构或算法的体会,If advanced algorithms and data structures are never used in industry, then why learn them?在网上看了很多教程和文章,感觉有帮助但很多都写得不易懂

2015-04-16 13:36:48 525

转载 Fibonacci数列 递归 杨辉三角 动态规划

这篇帖子主要是介绍 递归 与 动态规划 之间是如何转换的,什么是递归估计不用多说,那么什么是 动态规划呢?我理解的动态规划就是:能够避免 直接 递归实现 中出现的重复运算的技术就是动态规划。这里有三个关键词:"直接"、"递归实现"、"重复运算"也许最简单的, 也是众所周知的动态规划题目是 Fibonacci数列, 如果你不知道,说明你的老师也不知道,而且我为你感

2015-04-16 11:58:16 1430

转载 递归与递推的区别

今天在学习递归和动态规划时有点迷糊了,两者无法区别,在网上差了下,总接如下:首先要清楚,递推就是迭代。1.递归其实就是利用系统堆栈,实现函数自身调用,或者是相互调用的过程.在通往边界的过程中,都会把单步地址保存下来,知道等出边界,再按照先进后出的进行运算,这正如我们装木桶一样,每一次都只能把东西方在最上面,而取得时候,先放进取的反而最后取出.递归的数据传送也类似.但是递归不能无限的进行

2015-04-16 11:48:48 2405 1

转载 一些基本算法的递归实现

问题描述:递归是计算机科学中最伟大的思想。按照我的理解,所谓递归就是把问题化约为比自身维度更小的问题,直至边界点(base condition),然后利用边界点的解的结果(相对容易得到)和一定规则回退得到最终所需要的结果。        常用到的递归思想的可归类为:1. 各种tree construct 的操作:遍历(inorder, preorder, posto

2015-04-16 11:45:48 542

转载 并查集类的c++封装,比较union_find algorithm四种实现方法之间的性能差别

问题描述:在计算机科学中,并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集;Union:将两个子集合并成同一个集合;实现并查集的关键是实现

2015-04-16 11:39:24 667

转载 并查集

并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,其中最完美的应用是实现Kruskar算法求最小生成树。其实,这一部分《算法导论》讲的很精炼(第21章:用于不相交的集合)。并查集是一种可以方便地进行以下三种操作的数据结构:合并两个集合;将一元素并入另一集体;判断两个元素是否属于同一个集合。

2015-04-16 11:35:33 401

转载 数据结构 之 并查集

并查集是一种树型的数据结构,其保持着用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个操作用于此数据结构:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合。下面代码实现一些并查集中的一些基本操作:一、

2015-04-16 11:28:02 544

转载 并查集

#include using namespace std;int parent[100];//构造一个初始并查集,s是集合元素的个数,此时初始化了s个集合,每一个集合都只有一个元素//数组的范围为parent[0]~parent[s-1]//初始的时候,数组元素的值都是 -1,表示此时都是根结点。void ufset(int s){ int si=s; for(i

2015-04-16 11:04:54 407

转载 ACM模板列表

1:数学1.1:数论1.1.1:中国剩余定理 1.1.2:欧拉函数 1.1.3:欧几里得定理                  1.1.3.1:欧几里得定理                1.1.3.2:扩展欧几里得                1.1.4:大数分解与素数判定1.1.5:佩尔方程             1.2:组合数学1.2.1:排列组合

2015-04-16 09:55:09 432

转载 算法分类索引

各大OJ解题报告:HDU(HOJ)题解集合,POJ(PKU)题解集合,ZOJ(zju)题解集合,UVA题解集合,九度OJ题解集合,LeetCode题解.二叉树:二分查找树转化为排序的循环双链表,寻找二叉树两个节点的最低公共祖先,不使用递归和栈中序遍历二叉树,线性表:链表反转,跳跃表(Skip List)-实现(Java),链表排序,分析:渐进分析,循环的时间复杂度,递归的时

2015-04-16 09:26:55 474

转载 LeetCode-Sort List 链表排序

原题链接: http://oj.leetcode.com/problems/sort-list/对链表进行排序,要求的时间复杂度为O(n log n)。nlogn的排序有快速排序、归并排序、堆排序。双向链表用快排比较适合,堆排序也可以用于链表,单向链表适合用归并排序。题目要求的是常数的空间复杂度,因为这里用了递归,如果算上栈空间的话,也要 o(logn)的复杂度。关于链表的划分,这

2015-04-16 09:25:42 509

转载 数据结构算法集---C++语言实现

/////////////////////////// // // // 堆栈数据结构 stack.h // // // /////////////////////////// #include templateclass Stack; template class StackNode { friend class Stack

2015-04-16 09:08:51 435

原创 C++标准库:使用std_list作为链表

C++标准库std::list容器算法链表摘要:本文是“C++标准库导引系列”的一部分。std::list可能在许多时候被人们忘记,我自己就似乎忘记了这容器,当我在写这个系列的文章的时候,我意识到原来std::list有时是更好的选择。std::list提供一个链表的实现,它是基于结点的容器,同时它也提供了许多标准算法的特殊版本,因为此时有更好的方法。我们已经写了这个系列的好几

2015-04-16 09:04:04 1641

原创 哈希表类模板的设计与实现

template struct HashTableNode{ T varValue; N varName; HashTableNode *next; N Scope; N alias; //will hold the full name of whatever it is pointing to.}; template class hashtable{ private

2015-04-16 08:55:38 575

转载 四则运算表达式求值(栈的应用)

1.前/中/后缀表达式的转换(首先需要明白三者之间的转换)     自然表达式转换为前/中/后缀表达式,其实是很简单的。首先将自然表达式按照优先级顺序,构造出与表达式相对应的二叉树,然后对二叉树进行前/中/后缀遍历,即得到前/中/后缀表达式。    举例说明将自然表达式转换成二叉树:    a×(b+c)-d    ① 根据表达式的优先级顺序,首先计算(b+c),形成二

2015-04-16 08:53:45 623

转载 并查集 模板

知识点:并查集是一种树型的数据结构,用于处理一些不相交集合的合并问题。并查集的主要操作有1-合并两个不相交集合2-判断两个元素是否属于同一个集合3-路径压缩 我转载的一个并查集介绍:(很详细)http://blog.csdn.net/xiaotaoqibao/archive/2009/08/14/4447995.aspx  

2015-04-16 08:46:26 328

转载 欧拉函数 模板

#include   using namespace std;  #define N 100000001    int euler(int n)  {      int ans=1;      int i;      for(i=2;i*i    {          if(n%i==0)          {              n/=i; 

2015-04-16 08:45:45 435

转载 二分匹配(匈牙利算法)模板

#include #include using namespace std;#define MAX 1005vector > map; int mark[MAX];bool flag[MAX];int nm,num;bool dfs(int pos) //搜pos点是否存在增广路{ int i,pre,tp; int len=map[pos].size(); f

2015-04-16 08:43:09 390

转载 字典树 模板

/*******************************************************************************【字典树】此模板主要是针对都是小写字母的。其他情况在此基础上改一改就可以了,要懂得灵活运用。 *******************************************************************

2015-04-16 08:42:42 392

转载 后缀数组 模板

//【倍增法模板】:int wa[maxn],wb[maxn],wv[maxn],ws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]==r[b+l];}void da(int *r,int *sa,int n,int m){ int i,j,p,*x=wa,*y=wb,*t; for(i=0;i<m

2015-04-16 08:41:59 304

转载 树状数组 模板

int lowbit(int t){ return t&(-t);}void change(int pos , int num,int n) //修改{ while (pos<=n) { tree[pos] += num; pos += lowbit(pos); }}int ask(int end)//查询{

2015-04-16 08:38:11 350

转载 最长公共子序列 线段树版的LCS

#include#include#include#include#define N 200008#define Musing namespace std;int hash1[N], hash2[N], x[N], y[N], dp[N], next1[N], next2[N];vector v[N];struct LTree{ int a, b, big;}T

2015-04-16 08:37:31 447

dajngo个人开发使用博客

修正评论位置 文章后面可添加。隐藏文章id表单, 显示评论条数。表单js 后台验证 验证码有待添加。

2016-02-10

django个人博客

django写的个人博客 几乎实现所有功能。集成kueditor编辑器。

2016-01-25

空空如也

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

TA关注的人

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