自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

編程如戀 『暧昧』

知我者谓我心忧,不知我者谓我何求!

  • 博客(44)
  • 资源 (8)
  • 收藏
  • 关注

原创 hud_2037-今年暑假不AC

/* 题目大意:给出节目的开始和结束时间,求最多能看多少完整节目 * 解题思路:首先按节目时间排序,因为必须是完整节目,所以要选取上一节目结束后 * 最早开始并尽快结束的节目。 */#include #include #include using namespace std;#define MAX 101struct node { int x, y;} a[MA

2013-02-21 15:57:26 1694

原创 hdu_1051-Wooden Sticks

/* 题目大意:将木棍分堆,保证每堆木头的长度和重量都是非递减的,最少分几堆 * 解题思路:将木头按长度非递减排序,然后从第一个开始将重量能组成非递减的木棍分堆即可 */ #include #include #include using namespace std;#define MAX 10002struct node { int x, y;} a[MAX];

2013-02-21 15:40:33 1663

原创 hdu_1052-Tian Ji -- The Horse Racing

/* 题目大意:田忌赛马 * 解题思路:这个题主要是想清楚怎样的比较方式能够将优势最大化 */#include #include #include using namespace std;#define MAX 1001int a[MAX], b[MAX];bool cmp(int a, int b){ return a > b;}int

2013-02-20 09:39:15 1710

原创 hud_1050-Moving Tables

/* 题目大意:在楼道中移动桌子,每次只能过一张桌子,求最短时间 * 解题思路:因为移动桌子的时间是一样的(不论远近),所以移动桌子 * 的最短时间和移动路径重合的最大次数有关(只能过一个),然后注意(1和2)、 * (3和4)。。。房间其实是一样的。 */#include #include #include using namespace std;#d

2013-02-20 09:21:23 1577

原创 uva_532-Dungeon Master

/* 题目大意:输入一个三维迷宫,S为起点,E为终点,求S到E的最小步数 * 解题思路:就是比二维迷宫多了一维,解法还是一样的,直接BFS水过。需要注意的是三维坐标是的数组是Z,X,Y */#include #include #include #include using namespace std;#define MAX 31#defin

2012-11-27 18:33:00 1627

原创 uva_439 - Knight Moves

/* 题目大意:告诉你国际象棋中马的初始位置和目标位置,算出它的最小步数 * 解题思路:首先要得知道国际象棋的马如何行动,幸好我玩过,它比中国的马 * 多走一格,也就是走‘目’字,然后枚举出马的行动方向,用BFS计算出最小步数。*/#include #include #include #include using namespace std;#define

2012-11-25 21:16:28 1606

原创 uva_705-Slash Maze

/* 题目大意:输入一个由'/'和'\'组成的迷宫,判断它有无环路,如果有,输出 * 环路数与最大环路的大小,如果没有,输出 “There are no cycles.” * 解题思路:刚开始看到这道题,没一点思路。。。然后想了一晚,想到一个很 * 笨的方法,结果越写越复杂。。。最后还是去网上找了个思路,用3*3的矩阵表示两种 * 斜线: * /: 001

2012-11-25 17:26:53 1690

原创 uva_784-Maze Exploration

/* 题目大意:X为迷宫的墙壁,将*能走到的位置标记为#, * 最后输出标记后的迷宫。 * 解题思路:直接DFS水过*/#include #include #include using namespace std;#define DIR 4#define MAX_ROW 31#define MAX_COL 81char

2012-11-24 17:27:57 1635

原创 uva_657-The die is cast

/* 题目大意:找到由*号组成的区域,然后记录里面X的数量, * 上下左右相连算一个,然后排序输出。 * 解题思路:因为既要找*号,又要找X,一个DFS解决不了 * 所以需要用两个DFS解决。 * PS:这道题做得还真是纠结,10A。。。,英语太差还真是不行, * 开始先少输出一个空行,然后又是没看到需要排序,最后竟然 * 发现题目意思都理解错了。。。。总

2012-11-24 17:21:27 1627

原创 uva_572 - Oil Deposits

/* 题目大意:一块区域中分布着油田,连在一起就属于一个油田,求油田个数。 * 也就是求一个无向图的连通分支个数,直接dfs8个方向,水过。。。*/#include #include #include using namespace std;#define MAX 101#define DIR 8char a[MAX][MAX];int visited[MAX][MAX];

2012-11-22 13:39:00 1797

原创 uva_699-The Falling Leaves

/**题目大意:先序建立二叉树,求同一垂直线上叶子节点之和。 *模拟先序建立二叉树过程,用数组保存值,数组下标代表垂直坐标求解 */#include #include using namespace std;struct Node { int v, pos; Node *lc, *rc;};#define MID 81int a[MID*2];int p

2012-11-19 12:31:23 1537

原创 uva_327-Evaluating Simple C Expressions

/**这道题貌似是一道用树解决的题,但是我一直没想到怎么用比较 *好,反而是数组的方法一下就想到了。。。具体思路是: * 1.记录计算结果时字母的值 * 2.记录操作符 + 或 - * 3.如果是 ++ 或 -- 标记与之相连的字母,最后改变该字母值 */#include #include #include using namespace std;#define VAL

2012-11-17 21:44:39 1803

原创 Codeforces_9D-How many trees?

/**题目大意:给定1~n各节点,建立二叉搜索树,求树的深度大于等于h的个数 *本题纠结一天未果,最后根据某大牛的思路写来了。 *状态转移方程: dp[n][h] = sum{dp[i][h-1] * dp[n-i-1][h-1]}; *其中: n为数的节点数, h数的深度, dp[n][h]为以n个节点建立的深度不大于 *h的树的个数; i为左子树的节点数, n-i-1为右子树的

2012-11-16 02:06:54 2090

原创 uva_548-Tree

/**中序,后序建树,然后遍历,求根到叶子的最小和,输出 *该叶子节点,关于通过二叉树建树问题,本博客有相关讲述。。。 */#include #include #include using namespace std;struct Node { int v; Node *lc, *rc;};#define MAX 10001#define MAXN 7000

2012-11-16 01:48:38 1823

原创 uva_712-S-Trees

/**先一看题就被吓一跳,到后面才发现题目不怎么难, *就是给出一个不超过8层的满二叉树,然后0往左走,1 *往右走,输入x1,x2……xn(n=depth) */#include #include #include using namespace std;#define MAX 1024char ans[MAX], str[MAX], search[MAX], x[MAX]

2012-11-16 01:44:41 1841

原创 uva_297-Quadtrees

/**总共是1024像素,递归建立4叉树,然后统计黑格子数量即可 *解决,我这里是模拟建立4叉树,能达到同样的效果,而且能 *节省一点时间和空间 */#include #include #include using namespace std;#define MAX 1024#define POS 4bool a[MAX+2];void pre_create_tree(

2012-11-16 01:35:04 1555

原创 uva_10404-Bachet's Game

/**博弈题。。这种题目的特点就是——想到方法后很简单,想不到 *就做不出了。。开始想穷举法列出所有结果,后来发现数据量太大 *行不通,后来看了看博弈相关东西,突然灵光一闪,想到只考虑当前 *步,把总数为1~count时先手的输赢标记起来,方程为: * if(i-a[i] == 0 || !num[i-a[i]](i-a[i]>0)) 先手赢 *就是刚好一次可以移动完,或者移动一次后,

2012-11-15 08:48:45 1869

原创 uva_112-Tree Summing

/**这道题的难度在于建树,因为输入可能不在一行,所以不能用字符串接收 *必须一个一个读,我这里是用getchar(),(当然scanf也行),每次读取到 *‘(’时,开始接收数据,如果是‘)’,子树为空,否则的话就是数字(可能是 *负数),这里有一个注意的地方就是空格,也坑了我很久,当时没有想到windows *和linux的差异,最后用库函数isspace解决。。。 */#incl

2012-11-15 08:35:31 1506

原创 hdu_1054-Strategic Game

/**树形DP,推出状态转移方程: *不选择当前节点: * dp[i][0] += dp[Node[i].son[j]][1]; *选择当前节点:(最后加上1(它本身)) * dp[i][1] += min(dp[Node[i].son[j]][1], dp[Node[i].son[j]][0]) *叶子节点处理: * dp[][0] = 0, dp[][1] = 1*/#i

2012-11-13 01:11:31 1682

原创 图的两种结构(邻接矩阵、邻接表)DFS、BFS算法

#include #include #include #include #include using namespace std;#define MAXSIZE 20bool flag = false;class MGraph{public: MGraph(int vertex, int side); ~MGraph(){}; void DFSTraverse(i

2012-11-12 18:47:37 2557

原创 最长单增子序列

#include #include using namespace std;#define MAX 1001int a[MAX], b[MAX];int main(int argc, char const *argv[]) { int cnt, ans(0); scanf("%d",&cnt); for(int i=0; i<cnt; i++){

2012-11-08 19:34:21 703

原创 uva_10115-Automatic Editing

/**本题含义是将前一个串转化为后一个串,当前一个串 *完全找不到后,再去比较下一个串,直到所有串被替换完毕 */#include #include #include using namespace std;#define MAX 256//替换void replace(char *a, char *b, int pos) { for(int i=0; i<strle

2012-11-08 12:41:01 518

原创 uva_10815-Andy's First Dictionary

/**本题的意思就是统计文章中的单词并排序 *且忽略其大小写,相同的单词只输出一次 */#include #include #include #include using namespace std;#define MAXL 201#define MAXW 2001char str[MAXW],*word[MAXW];int pstrcmp(const void *a,

2012-11-08 12:30:24 707

原创 uva_340 - Master-Mind Hints

/**本题的意思是,对应相等的为强,不对应相等的为弱, * 我的做法是每次比较时复制一个目标串,把他和输入的 *串对比,统计对应相等的,然后把值赋为-1,然后再统计不 *对应相等的 */#include #include #include using namespace std;int main(int argc, char const *argv[]){ int cas

2012-11-08 12:26:33 517

原创 uva_10420-List of Conquests

/*就是一个结构体计数加排序*/#include #include #include #include using namespace std;#define MAXL 2001#define MAXC 76typedef struct{ string name; int num;}Country;char s[MAXC];Country country[MAXL]

2012-11-08 12:20:35 722

原创 uva_10010-Where's Waldorf?

/**这里采用暴力法,首先将所有大写字母转化为小写,然后遍历整个矩阵, *搜索8个方向,获得搜索到的字符串,然后与目标字符串 *对比,如果搜索到的字符串前面包含目标字符串,则找到该串,输出位置 */#include #include #include #include using namespace std;#define MAX 200#define DIR 8char

2012-11-08 12:14:47 667

原创 uva_10361-Automatic Poetry

/**本题看懂题意就好解决了,就是把括号去掉输出一次, *然后交换字符串再输出一次 */#include #include #define MAXS 6#define MAX 101int main(int argc, char const *argv[]){ char c,s[MAXS][MAX]; int n,i,j,l; scanf("%d",&n

2012-11-08 12:06:28 458

原创 uva_108 - Maximum Sum

/** * 首先计算每一列的前序和(即0行到所有行上值的总和) * 其次,最大的子矩阵一定在a行和b行之间,所以我们可以枚举所有的可能组合,时间复杂度为O(N*N) * 因为我们在第一步中计算了前序和,那么第二步中a行和b行之间的子矩阵可以看成一个一维的数组,长度为N。 * 其值的计算可以利用第一步中的前序和,遍历所有列,让0-b的总和减去0-a的总和,即为a-b的总和。 *

2012-11-01 16:25:59 441

原创 uva_101 - The Blocks Problem

/**模拟题,难点在于看懂题目。。弄懂 move pile onto over 的意思就好办了*/#include #include #include using namespace std;#define MAX_BLOCK 25list blocks[MAX_BLOCK]; //块堆list::iterator current_pos, goal_pos, tmp_cur

2012-10-31 21:09:19 383

原创 uva_102 - Ecological Bin Packing

/**本题是求最少移动次数,即比较第一个箱子中的相同颜色瓶子数量,不移动瓶子最多的那个, *然后在剩余两个箱子中继续应用这个法则,最后得出总计6种移动顺序, *将6种情况的序列和最终箱子分别存放瓶子的颜色字符串定义为结构体并列举出来, *然后算出移动次数最少和颜色字符串的字典序最小的情况 */#include #include #include using n

2012-10-31 02:02:46 882

原创 uva_100 - The 3n + 1 problem

/**这道题有一个陷阱,那就是输入的闭区间不一定是ab,而且输出时的闭区间顺序要和输入的顺序一样*/#include #include using namespace std;int fun(int n) { int num(1); while(n>1) { num++; if(n%2!=0) {

2012-10-30 21:35:48 545

原创 大数加法、减法、乘法、除法、求余、比较、乘方(代码简短(总计150)、易懂)

前言:       大数的操作大部分人都知道,而且网上也有许多代码,但是那些大多比较冗长,吓到了许多同学们。。。所以特意写了个比较简短易懂的代码,代码基本上没问题,不过只支持正整数的输入数据。样例:12345 12add:12357subtract:12333multiply:148140devide:1028   remainder:9power:12528328

2012-10-27 16:10:57 2794 2

原创 时间复杂度的差异测评!O(n)、O(nlogn)、O(n^2)、O(n^3)以最长子段和为例

时间复杂度的差异测评前言:大家都知道,判断一个算法够不够好,一个很重要的标准就是算法的时间复杂度 ,同样一个问题,不同的算法执行的时间差异可以很大!这个就是时间复杂度导致的,关于时间复杂度的定义等,本菜鸟不予说明,大家可以参考各大算法或者数据结构书籍,里面有详细的解释,今天给大家带来的是不同时间复杂度算法运行时间的差异!测试题目:输入一个数据n(0,1000000),然后输

2012-10-24 13:58:51 5400 1

原创 scanf和cin的巨大差异!!!(ACmen必看!)

scanf和cin的差异大家都知道,在C++中有两种输入、输出方式—scanf和cin,但是,它们之间存在的差异,你们知道么?下面请看测评吧!测试题目:输入n个数,输出n个数。测试环境:ubuntu12.04 i3CPU 4G内存 7200转硬盘测试代码:(为了测试结果的正确性,保持其他部分(除输入输出)一样)scanf的代码:#in

2012-10-24 12:08:43 2789 3

原创 建立哈夫曼树,求哈夫曼编码

/*建立哈夫曼树,就是每次从所有节点中选取两个权值最小且没有父亲的节点 *然后用这两个节点作为新节点的两个子树,新节点的权值等于两子树之和 *重复这个操作直到所有总节点数等于2*n-1 **/#include #include #include using namespace std;typedef struct node{ int weight; int p

2012-10-21 12:10:53 992

原创 二叉树,已知先序和中序求后序,已知后序和中序求先序

/*根据二叉树的前序序列和中序序列建立该二叉树。这个过程是 *一个递归过程,其基本思想是:先跟据前序序列的第一个元素建立 *根节点,然后在中序序列中找到该元素,确定根节点的左、右子树的中序序列; *再再前序序列中确定左、右子树的前序序列;最后由左子树的前序序列与中序序列 *建立左子树,由右子树的前序序列与中序序列建立右子树。 *(由后序和中序建立二叉树的思想与上面类似) */#inc

2012-10-19 16:07:09 1008 1

原创 非递归遍历二叉树(先序、中序、后序、层序)

/*递归算法虽然简洁,但一般而言,其执行效率不高 *所占用的空间与运行的时间都比非递归算法多 *在这里把二叉树非递归遍历(先序、中序、后序、层序)实现(使用了栈和队列) *这里我们约定:空的节点用#表示,按照前序遍历来创建树!*//****************测试数据************************* please input BiTree for PreOrder

2012-10-19 13:45:23 964

原创 n皇后问题递归算法(回溯法)

/*n皇后问题递归算法*/#include #include #include using namespace std;#define QUEEN 8 //皇后个数#define MAXR (QUEEN+2) //棋盘大小char chess[MAXR][MAXR]; //定义一个棋盘int count = 0; //总摆放方法//初始化棋盘void init

2012-10-18 22:00:18 1635

原创 递归求集合子集(两种方法实现(数组,链表))

方法一:#include#define N 6char b[]= {'a','b','c','d','e','f'};int a[N+1];void find(int t) { int i,j; if(t <=0) { printf( "\n < "); for( i=1; i <=N; i++) { i

2012-10-18 18:01:01 983

原创 求最长子串(后缀数组解法)

/*求一串字符串的最长子串(后缀数组问题)*/#include #include #include #include using namespace std;#define MAXS 1001char s[MAXS], *a[MAXS];/*字符串比较(按字典序)*/int pstrcmp(const void *a, const void *b){    re

2012-10-18 14:17:29 531

超越TextMate!的编程神器! Sublime Text 2.0.1

Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux 详见http://blog.csdn.net/pisces_hao/article/details/8100483 代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。 我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非常快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮、代码补全等,但它有着很多其他编辑器没有的超酷的特性,让它的好用达到了前所未有的程度…… 关于 Sublime Text 2: 曾经有人说过,世界上有两种编辑器,好用和不好用的;而在好用的编辑器中,又分两种,免费的和死贵死贵的。譬如说 VIM 和TextMate,就是免费和死贵的典型。很不幸,今天的主角Sublime Text 2 也是个死贵死贵的代表,它是一款收费的商业软件,个人授权费高达 59 美刀。 Sublime Text 2 不过大家不用慌,虽然它很贵,但作者很厚道地给用户们提供了免费无限制无限期的试用权,它只会偶尔提醒一下你木有购买,而且频率也很低,仅此而已,一直免费使用下去几乎是没有任何影响的。另外值得一提的是,用户购买一个授权即可同时在不同平台上使用,对于像我这种经常需要在Mac 和 Win 之间切换使用的用户来说的确能省下一笔钱了。 因为 Sublime Text 2 编辑器的特性和使用技巧实在太过多,本人也未算用得精通,所以无法一一列举展现,只能选几个我认为比较有特色的特点进行介绍,而且这里也没有篇幅去介绍各种编辑技巧、快捷键使用之类的了。如果你愿意花时间折腾一下,你会发现它的能力是远超本文介绍的那么几点的,所以本文只能算是抛砖引玉吧,希望大家有好的技巧可以分享出来。 语法高亮、代码提示补全、代码折叠、自定义皮肤/配色方案、多便签页: SublimeText2 支持但不限于 C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile and XML 等主流编程语言的语法高亮。ST2 拥有优秀的代码自动完成功能 (自动补齐括号,大括号等配对符号;自动补全已经出现的单词;自动补全函数名),非常智能;另外 ST2 也拥有代码片段(Snippet)的功能,可以将常用的代码片段保存起来,在需要时随时调用。当然,语法高亮、代码折叠、行号显示、自定义皮肤、配色方案等这些已经是一款现代编辑器应有的标配功能了,所以这里就不多做介绍了。 代码提示补全功能实用方便的代码提示补全功能 代码地图、多种界面布局与全屏免打扰模式: Sublime Text 2 在界面上比较有特色的是支持多种布局和代码地图,也提供了 F11 和 Shift+F11 进入全屏免打扰模式,文字难描述,看下图吧。往右边拉可以看到更多图>> 代码地图与多标签页代码地图与多标签页 多种布局设置,在大屏幕或需同时编辑多文件时尤为方便多种布局设置,在大屏幕或需同时编辑多文件时尤为方便 全屏免打扰模式,更加专心于编辑全屏免打扰模式,更加专心于编辑 完全开放的用户自定义配置与神奇实用的编辑状态恢复功能: Sublime Text 2 的各种配置均由配置文件控制,完完全全的可以由用户自定义,如果你愿意折腾,甚至可以将它改得于原版完全不一样的操作体验。看下面的图,Setting - Default 菜单会打开默认的软件配置文件(这个文件会记录一些诸如使用什么字体等很多很多配置信息),Key Bindings - Default 是默认的快捷键配置文件,大家可以打开它们看看原本的一些设置是怎样配置的,但非常不建议直接在这里修改!你可以在 - User 结尾的文件(也就是用户自定义配置的意思)里面照样画葫芦那样来改,如果两边有相同的项目,它会以 - User 文件里面定义的为准。 用户自定义配置 这个例子里我在 Key Bindings - User 里面的第一行:{ "keys": ["alt+up"], "command": "swap_line_up" }, 意思就是按 Alt+方向键上时将当前选择的那一行向上移(与上一行交换位置),如果语法神马的没问题,保存好这个文件之后马上就可以使用这个快捷键了。 Sublime Text 2 的快捷键还支持双重组合,譬如默认情况下,将选中的文字改成大写的热键是“Ctrl+K, Ctrl+U”,意思是当你先按下 Ctrl+K 之后迅速再按 Ctrl+U 进行触发(只按下Ctrl+K是没有作用的),这样可以避免很多热键冲突,也可以更灵活更多选择地进行热键自定义。不过在这里就不打算教大家怎样修改各种配置或修改热键了,这恐怕能出一个手册的,这里有一个套比较完整的官方文档(鸟语),有兴趣的朋友可以去参考一下。 另外,SublimeText 还有一个值得一提的细节——”编辑状态恢复”,就是当你修改了一个文件,但没有保存,这时退出软件,ST2是不会很烦人地提示你要不要保存的,因为无论是用户自发退出还是意外崩溃退出,下次启动软件后,你之前的编辑状态都会被完整恢复,就像你退出前一样。这个细节我认为非常非常的赞!因为我经常会尝试性地去修改一些地方,但在确保没有问题之前又不想保存,这时如果有些事情打断自己,需要离开时,这个特性就很有用了,直接退出就行,不用烦,下次回来打开软件继续编辑即可。当然,有了这个恢复特性再也不怕系统崩溃、断电了吧,真心让人觉得ST2特别特别的安全可靠,妥妥的啊! 强大的多行选择和多行编辑: 在写代码的过程中,我们经常需要同时编辑多行代码或者多个变量。在 Sublime Text 2 中拥有非常实用的多行操作技巧,灵活运用可以大大提高编辑速度哟!相信日后你可能会这样问自己:“当年没有这种方式的编辑器时我究竟是怎么活过来的?!” 下面是一些我所了解的多行编辑方法: 鼠标选中多行,按下 Ctrl+Shift+L (Command+Shift+L) 即可同时编辑这些行; 鼠标选中文本,反复按 CTRL+D (Command+D) 即可继续向下同时选中下一个相同的文本进行同时编辑; 鼠标选中文本,按下 Alt+F3 (Win) 或 Ctrl+Command+G(Mac) 即可一次性选择全部的相同文本进行同时编辑; Shift+鼠标右键 (Win) 或 Option+鼠标左键 (Mac) 或使用鼠标中键可以用鼠标进行竖向多行选择; Ctrl+鼠标左键(Win) 或 Command+鼠标左键(Mac) 可以手动选择同时要编辑的多处文本 类似的技巧还有很多,求大家补充…… 多行编辑Shift+鼠标右键轻松实现多行编辑,批量给变量加前缀了 雷电般快速的文件切换: 如果你同时打开了多个文件,或者你的项目里经常需要编辑不同的文件,在文件数量较多的时候,在过去往往需要花费很多的精力去寻找,很是烦人。而现在,Sublime Text 2 里只需按下 Ctrl+P(Win) 或 Shift+Command+P(Mac) 即可调出文件切换面板,接着你只需输入文件名,回车后即可瞬间切换过去!并且它支持模糊匹配,只需输入你记得的一部分即可,譬如我想要找一个“www.iplaysoft.com.php”的文件来编辑,那么你只需要输入“ipl”或者是”ips.c”这样的字符都能匹配出来,这个特性非常非常的棒! 快速切换文件图中ca 匹配了 capabilities.php 和classese.php,选择就能快速切换 类似的功能,我只在类似 Eclipse 等大型(笨重)的IDE中才见到过,然而小巧快速的编辑器中,我还是首次遇到。使用这个功能,你除了可以在已打开的文件中切换之外,如果你使用项目管理(将一个文件夹设置成一个项目),它还能懂得去搜索匹配项目文件夹下未被打开过的文件。现在你还需要用鼠标去一个一个点标签页来切换吗?你还要打开“我的电脑”慢慢在各个不同文件夹去找需要编辑的文件吗?使用ST2,你只需输入几个字符即可~只有一句话:前所未有的方便! 随心所欲的跳转:快速罗列与定位函数/HTML的元素、跳转到指定行 使用上面介绍的快速文件切换功能,可以很轻易地打开/切换到自己想要编辑的文档了,但如果这个文件的代码很长很长,想要轻松跳到要编辑的地方又有什么好方法呢? Sublime Text 2 早就帮你想好了,同样是按下前面所说的 Ctrl+P(Win) 或 Shift+Command+P(Mac),这次试试先输入一个 @ 号看看?嗯,好样的!这列表马上帮你罗列出这文件里全部的 Function 了!同样使用模糊匹配,快速输入几个关键字,马上就能定位到那个Function去了!!!在需要不停在多个Function之间跳转的时候这个功能尤显实用~妈妈再也不用担心我找函数找到蛋疼了!当你编辑的是HTML时,这货给你罗列的则是HTML的各个ID元素,相信搞前端的同学们都鸡冻了吧。 快速罗列与定位函数Ctrl+P之后输入@号或者直接按Ctrl+R,即可列出该文件里的全部function 输入@号开始有此般神奇功效,那么再试试输入一个英文冒号 : 开始吧,然后再输入一个数字,嗯,这次则可以跳到指定的行数了;输入一个#号开始,可以罗列/搜索文本;而且你还可以使用更快速的快捷键,譬如快速列出/跳转函数就是 Ctrl+R (Mac下是Command+R),它完全等同于Ctrl+P之后输入@;跳转到指定行号是 Ctrl+G (Mac是Command+G)。 而且更让人叫绝的是,这些切换定位方法你还可以配合在一起使用!譬如我有一个名为”hello-iplaysoft.js”的文件,里面其中有一个function叫做”visit_iplaysoft_com”,我现在想要编辑这个函数,那么我只需按下 Ctrl+P,然后输入“heip@vi”回车(模糊匹配,注意前面有颜色的字符),ST2 马上就给我到打开这个文件并定位进去了!够方便了吧?!熟记这几个快捷键,你可以很一气呵成地进行文件切换和编辑,你会发现世界更美好哦亲…… 集所有功能于一身的命令面板: Sublime Text 2 的一大特色是拥有一个相当强大的命令面板,它几乎无所不能!任何时候,按下 Ctrl+Shift+P(Win) 或 Command+Shift+P(Mac) 即可调出。利用它,你可以实现很多很多很多很多很多功能,例如“Set Syntax:PHP”即可将当前文档设置成PHP语法高亮;“Convert Case: Swap Case”可以将选中的文本大小写反转;“File: Save All”可以一次保存全部文件;“File: Close All”一次关闭全部文件等等……而且,这里的列表一样支持模糊匹配(这货真心是个好东西啊!)。因为这里面命令实在太多了,覆盖的作用范围也很广,我这里实在不能一一介绍,大家如果有兴趣,可以经常调个面板出来看看列表中都有些什么命令,多多去了解、尝试、再慢慢消化,相信它会让你再也离不开它。 命令面板强大的命令面板,可以在这里调用一切SublimeText提供的功能 Package Control(绝不可错过的扩展包管理器) Sublime Text 2 除了自身拥有无数实用功能和特性之外,它还能安装使用各种扩展/皮肤/配色方案等来增强自己。现在介绍的这个 Package Control 可以看做是一个ST2的扩展管理器,使用它,你可以用非常神奇、非常简单方便的方法去下载、安装、删除 Sublime Text 2 的各种插件、皮肤等,相信我,想更好地使用 ST2 绝对不能没有它!不过 ST2 本身并没有自带这个工具,我们需要自行安装它,方法很简单: 1、在 SublimeText2 的目录里面找到 Data > Installed Packages 的文件夹 (如没有请手动新建) 2、在这里下载 Package Control.sublime-package 文件 3、将下载到的文件放进去 Installed Packages 里面 4、重新启动 Sublime Text 即可 如果 Package Control 已经安装成功,那么 Ctrl+Shift+P 调用命令面板,我们就会找到一些以“Package Control:”开头的命令,我们常用到的就是几个 Install Package (安装扩展)、List Packages (列出全部扩展)、Remove Package (移除扩展)、Upgrade Package (升级扩展)。但如果你按照上面的方法确实搞不定,可以试试按键盘 Ctrl+~ (数字1左边的按键)调出控制台,然后拷贝下面的代码进去并回车,它会自动帮你新建文件夹并下载文件的,与上面的方法最终效果是一样的: import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ',' ')).read()); print 'Please restart Sublime Text to finish installation' Package Control成功安装 Package Control 之后,在命令面板里会出现以其命名开头的一系列命令 在命令面板输入 “Package Control: Install Package“即会列出全部可以安装的扩展(必需连接网络,如下图),从列表可以看到,4GL、AAAPackageDev 那些就是插件的名称,选择它们就可以进行下载安装了。从该列表可以看到,目前ST2的各种扩展已经非常丰富了!此外,你还可以在这里看到 Web 版的扩展列表和详细的说明 (这俩列表的数据应该是同步的。在截稿为止 2012-7-8,这里已经收集了482个扩展包了) 安装扩展 我这里以安装“JsFormat”插件为例,简单介绍一下 SublimeText 里面怎样安装与使用插件吧。JsFormat 的功能就是可以将一些凌乱的 JavaScript 代码重新排版,以方便更好地阅读与编辑。使用 Ctrl+Shift+P 调用命令面板,输入“Package Control: Install Package”(安装扩展包),在插件列表中选择安装“JsFormat”(可以输入字符过滤),待提示成功之后即已完成安装。随便打开一个js文件(最好是换行、对齐特别凌乱的那种),按下 Ctrl+Shift+P 调用命令面板,你会发现已经多了一项命令叫做“Format: Javascript”,如图: JsFormat使用 JSFormat 插件的 Format: Javascript 命令 使用之后,你的代码瞬间就变整齐了有木有!你也可以使用这个插件的热键“CTRL+ALT+F”进行整理(命令面板右方可以看到)。 JsFormat使用 JSFormat 之后的 JS 代码效果,注意上图的JS代码是一堆的 当然,不同的扩展,使用的方法与表现的形式都不一样,这个就只能去web版查一下这个插件的一些具体的使用说明了,这里是不能一概而论的。不过大体上,安装和使用插件就是这么的简单。通过各种插件,你几乎可以实现任何你想要的功能。而且 ST2 也开放了插件API,如果你有能力,也可以试试开发一个,可以参考这里的API文档。本文后面会推荐一些实用的插件。 更换主题或配色方案: 如果你看腻了 SublimeText 的原版皮肤,也可以折腾一下换肤的。譬如下图是一款比较流行的主题 Theme - Soda,和安装插件基本上一样,使用 Package Control 进入 Install Package 的列表里面找到它进行安装即可。你也可以在网上找到一些 ST2 的主题,下载回来放到安装目录的 Data\Packages 文件夹里面,然后选择切换主题。配色方案的操作也是类似,大家自己研究研究吧,这里不多做介绍了。 Soda主题 另外,SublimeText 还有很给力的一点,就是它能原生支持 TextMate 的 Bundle 和配色方案,同样也是放在 Packages 文件夹里即可使用。TextMate 的 Bundle 和配色方案资源都比较丰富,网上可以找到不少。 送上大城小胖同学制作的 Sublime Text 2 的介绍视频: 推荐的部分插件: 这里补充一些我认为不错的插件吧,欢迎大家推荐与补充: Gits:可以轻松集成 GitHub SFTP:直接编辑 FTP 或 SFTP 服务器上的文件 ZenCoding:这货对于前端的同学来说不得了,可以超快速编写HTML文件 (视频演示) ConvertToUTF8:ST2只支持utf8编码,该插件可以显示与编辑 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的文件 Clipboard History:剪切板历史 WordPress:集成一些WordPress的函数,对于像我这种经常要写WP模版和插件的人特别有用! HtmlTidy:清理与排版你的HTML代码 PHPTidy:整理与排版PHP代码 YUI Compressor:压缩JS和CSS文件 一些补充: 因为 SublimeText 是绿色软件,用户的自定义配置、下载的插件等都是位于软件目录内的,所以一旦你配置好之后,使用 Dropbox、金山快盘之类的同步网盘进行同步(无网络的朋友用U盘也行),去到哪里运行都是自己的配置,非常方便!以后大家在不同的电脑上工作相信也能很顺手了。 另外,很多朋友反映表示打开中文会有乱码,其实是因为ST2本身只支持UTF-8编码,而我们常遇到的中文文件可能是GBK或者GB2312等编码,解决方法是安装一个 ConvertToUTF8 或者 GBK Encoding Support 插件即可完美解决,这个并不是什么大问题。 写在后面: 之前我一直使用的编辑器是 EditPlus,至少有4年+了吧,主要的原因是它的启动迅速和长久以来使用已经习惯了,但这次在试用后我毫不犹豫叛变到 SublimeText2 来了!从各种使用体验来说,ST2 给人最多的感觉就是“快”和“流畅”。“快”就像Chrome 浏览器与其他一般浏览器的比那样,启动速度让人非常满意;“流畅”就是当你熟悉了它的一些快捷操作之后,编辑文档时那种不需打乱思绪的行云流水般的操作,非常让人有成就感!作为一款功能、扩展性如此强大,可配置性如此自由的软件,能做到速度如此之快实属极致了,想想看那些大型笨重的IDE们吧,你就恨不得马上去告诉所有人世界上还有 SublimeText 这样的神器~ Sublime Text 2 比 TextMate 在跨平台和软件更新上有很大优势,比另一款同样是神器级别的编辑器VIM 入门又简单得多,比各大IDE又要轻巧快速,比网上大部分的编辑器功能和扩展性上要强,而且暗色系的界面也很酷很讨好人,可以说是目前除VIM、emacs外又一个代码编辑器的最佳选择了!(更现代更先进的界面比VIM更适合普通用户) 当然,一款的极致的编辑器就像小说里的绝世宝剑,从的适应到灵活运用需要很长时间的坚持、学习和尝试。建议大家多多了解和学习它的各种快捷键,那样写代码就像开极品飞车啊有木有。目前我也只是刚入门,很多技巧、快捷键和特性都还没用得上来,所以希望各界高手不吝赐教,多与我共享一些 ST2 的实用技巧与教程吧,不胜感激!

2012-10-23

PHP 官方手册中文版chm

php手册官方中文版,包含php的变量、语法、函数等介绍,学习php的好帮手

2012-10-19

算法艺术与信息学竞赛pdf版

 计算机解题的核心是算法设计。算法设计涉及许多先修的基础知识,包括数据结构、高级语言程序设计、离散数学、图论、组合数学、人工智能、计算几何等。当然还包括除数学与信息学之外的其他学科知识,因为没有这些知识,往往连题目都会看不懂,这可能也是要求参加ACM大赛的选手应该具备全面科学素养的原因之一。 刘汝佳、黄亮两位作者都曾在高中时参加过信息学奥林匹克竞赛活动,他们在如何用计算机解难题方面投入过很大精力,有着比较丰富的经验。 内容简介 本书较为系统和全面地介绍了算法学最基本的知识。这些知识和技巧既是高等院校“算法与数据结构”课程的主要内容,也是国际青少年信息学奥林匹克(IOI)竞赛和ACM/ICPC国际大学生程序设计竞赛中所需要的。书中分析了相当数量的问题。 本书共3章。第1章介绍算法与数据结构;第2章介绍数学知识和方法;第3章介绍计算机几何。全书内容丰富,分析透彻,启发性强,既适合读者自学,也适合于课堂讲授。 本书适用于各个层次的信息学爱好者、参赛选手、辅导老师和高等院校计算机专业的师生。本书既是信息学入门和提高的好帮手,也是一本内容丰富、新颖的资料集。 作者简介 刘汝佳,1982年12月生。于2000年3月获得NOI2000全国青少年信息学奥林匹克竞赛一等奖第四名,进入国家集训队,并因此保送到清华大学计算机科学与技术系学习至今。2000年9月建立个人网站“信息学初学者之家(OIBH)”,该网站现已成为国内最具影响力的信息学竞赛网站之一。大一时参加ACM/ICPC国际大学生程序设计竞赛,获得2001年亚洲-上海赛区冠军和2002年世界总决赛银牌(世界第四),并担任2002年和2003年北京赛区裁判。2003年12月为止全国青少年信息学竞赛(NOI)、IOI中国国家队选拔赛、科令营、ACM/ICPC亚洲分区赛命题10余道。担任IOI2002、2003和2004三届中国国家集训队教练,并在重庆、成都、长沙、北京、天津等地授课多次,深受选手欢迎。于2002年底被中国计算机学会聘为全国青少年信息学竞赛科学委员会学生委员。 目录 第1章 算法与数据结构 1.1 编程的灵魂——数据结构+算法=程序 1.2 基本算法 1.3 数据结构(1)——入门 1.4 数据结构(2)——拓宽和应用举例 1.5 动态规划 1.6 状态空间搜索 第2章 数学方法与常见模型 2.1 代数方法和模型 2.2 数论基础 2.3 组合数学初步 2.4 图论基本知识和算法 2.5 图论基本算法 第3章 计算机几何初步 3.1 位置和方向的世界——计算机几何的基本问题 3.2 多边形和多面体的相关问题 3.3 打包裹与制造合金——凸包及其应用 3.4 几种常用的特殊算法 参考文献 索引A 例题 索引B 练习题

2012-10-19

非常代理(免费网页代理软件)

很好的免费代理工具,亲测可用,而且免费,小巧,免安装

2012-10-18

实验室设备管理系统

详见http://blog.csdn.net/pisces_hao/article/details/8062200

2012-10-18

JavaScript+css+html手册

网页制作完全手册,包括javascript,css,html等中文手册,可以用来学习,也可以用于查询需要的知识点,网页制作的必备好东西!

2012-10-14

贪食蛇源代码(java实现)及java文件

贪食蛇源码及jar文件,程序比较简单易懂,适合初学者使用

2012-10-11

空空如也

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

TA关注的人

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