学习篇
文章平均质量分 76
monkey_little
过去的再也回不来,回来了也已经不是原本的面目了,好好珍惜~~
展开
-
优先队列+BFS
<br />首次接触到优先队列是在http://acm.hdu.edu.cn/showproblem.php?pid=1242<br />题目意思:在一张图中,有多个朋友要去营救一个公主,其中'.'代表此条路可以走,需时间为1,'r'代表公主的朋友,'x'代表敌人,走这条路值时间需加1,'#'代表此条路不可走,问公主获救最小需要多少时间。<br />这道题目需要注意的地方是朋友是多个的,而公主只有一个,所以不能把朋友的位置当做起点,若如此,很多路径都会重复,必然超时。所以把公主的位置当做起点,当第一次找到某原创 2011-03-03 16:45:00 · 2506 阅读 · 1 评论 -
查找启进程目录
1. ps -ef | grep XXX得到进程号 num2.用root账户cd /proc/num3. cd cwd4. cd -P . 这样就能进入到开启进程的物理文件夾路径了~~~~~原创 2013-08-21 17:03:35 · 637 阅读 · 0 评论 -
linux 更改用户权限
1,在新建用户的时候,我直接改了的文件/ect/passwdyy:x:0:0:,,,:/home/yy:/bin/bash2,于是造成了一种情况就是:当用ssh登录时,发现是root用户3,用id查了一下用户组,uid=0(root)gid=0(root) 组=0(root)4,cat /etc/group找出新建用户的用户组,比如为10055,打开原创 2013-07-26 18:08:10 · 797 阅读 · 0 评论 -
typedef 用法小结
虽然知道 typedef 基本的用法,但是经常碰到一些奇怪的用法(比如用在函数,指针方面的时候)就比较容易糊涂。于是查了下资料后,在这里做一个总结,欢迎更新和指点。1,typedef int INTEGER 指定用 INTEGER 代表 int 类型。即以下两行语句是等价的。 int i; INTEGER i;2,typedef struct dat原创 2012-03-08 20:07:58 · 796 阅读 · 2 评论 -
并查集小记
http://acm.hdu.edu.cn/showproblem.php?pid=1232题目意思很简单,给出m条道路连通的情况,求n个城市连通至少还需要建多少条道路。应该算是赤裸裸的并查集,不过也可以用prim。借此道题目记录一下并查集的应用。1,定义一个数组set[原创 2011-03-07 21:31:00 · 444 阅读 · 0 评论 -
Dijkstra
1,核心思想: Dijkstra算法是典型的最短路径算法,用于计算一个顶点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。2,算法流程:举例从节点1开始到各点的dijkstra算法,其中Wa->b表示a->b的权值,d[i]即为最短路径。1,置原创 2011-02-20 16:30:00 · 515 阅读 · 0 评论 -
Zoj 3581 离散化
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4383题意很简单:有两根一样长(1000W)的绳子,第一条绳子有n1(10W)个区间的缺陷,第二条绳子有n2(10W)个区间的缺陷,两条绳子粘在一起,求只有一次原创 2011-07-25 15:40:46 · 776 阅读 · 0 评论 -
枚举 练习
题目来源:http://coder.buct.edu.cn/oj/Contest/Contest.aspx?cid=1121第一题就是简单的求次大数。第二题需要注意本身与本身也可以构成一个序对。第三题尽量避免使用浮点型。第四题注意时间控制。 1:#includeint m原创 2011-07-12 16:23:11 · 484 阅读 · 0 评论 -
POJ 2002 Squares
http://poj.org/problem?id=2002 题意:有 n (n思路:可先考虑正方形的特性,边 AB 绕 A 点旋转可得到点 C,绕 B 点旋转可得到点 D,点 C 和 点 D 坐标可直接根据全等求出。这样复杂度就可减为 O(n*n),剩下来的就是判断求出的点 C原创 2011-07-12 15:19:54 · 444 阅读 · 0 评论 -
补充Flyod之记录路径
http://acm.hdu.edu.cn/showproblem.php?pid=1385在未学习Dijkstra记录路径之前,对于这道题目,复杂度不大的前提下,我选择了用Floyd记录路径。int pre[vex_num][vex-num],map[vex_num][vex_原创 2011-03-02 22:07:00 · 734 阅读 · 1 评论 -
Floyd
1,核心思路:通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。其状态转移方程:map[i,j]=min{map[i,k]+map[k,j],map[i.j]} map[i,j]表示i到j的最短距离,k是穷举i,j的断点。2,算法流程:1,把图用邻接矩阵G表示出来,如果从V原创 2011-02-20 14:20:00 · 404 阅读 · 0 评论 -
Havel-Hakimi定理
<br />1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的。<br />2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。<br />3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。<br />4,判定过程:(1)对当前数列排序,使其呈递减,(2)从S【2】开始对其后S【1】个数字-1,(3)一直循环直到当前序列出现负数(即不是可图的情况)或者当前序列全为0 (可图)时退出。<br />5,举例:序列S:7,7原创 2011-04-24 11:43:00 · 4053 阅读 · 0 评论 -
有向图的二分匹配
<br />http://info.zjfc.edu.cn/acm/problemDetail.aspx?pid=1483<br /> <br />这道题目是在比赛的时候做的,数据应该不大,所以直接暴力模拟了,赛后听学长讲正解是二分图的匹配,百思不得其解,不知如何构图,于是他点拨了一下,恍然大悟呀,发现思维灵活是何其得重要。<br />思路:这道题目要倒着想,假设 1 到 n 要放进柱子,最少要用几根柱子,二分匹配就是求柱子的数量的。其实可以当做是最小点覆盖= n - 最大匹配数,这道题目还有一个关键点,在原创 2011-03-29 19:50:00 · 2071 阅读 · 0 评论 -
最长递增(减)子序列
<br />最长递增子序列(LIS)DP 中的入门吧,算是。<br />1,复杂度O(N^2)的算法<br /> 设DP【i】中保存的是1~i 中最长递增子序列的长度,则DP【i】=max(dp【j】)+1,并且arrary[i]>arrary[j]。最后在DP【】中找一个最大的值。<br />代码实现:<br /> int Longest_Increasing(int arrary[],int n){ int dp[n],i,j; for(i=0;i<n;i++){ dp[i]=原创 2011-03-29 21:32:00 · 543 阅读 · 0 评论 -
HDU 2059
好吧。我不得不说从这道题目中说明我压根就不懂什么是DP。自己太水了。当时自己的思路也是动态规划,碰到第 i 个加油站,考虑在第 i-1 个加油站的时候是否要加油,若加了计算一下时间为t1,不加时间为t2,然后dp[i]=dp[i-1]+min(t1,t2)+dp[i-1];此时若加油还好计算的,但是若不加油,则需要考虑当前剩余电量,这样一直计算时我发现那不是一般的麻烦啊。好吧,我不得不承认写不下去了。看了别人的思路,我。。。把现在的思路理一下:把起点和终点还有中间的 n 个加油站,算做 n+2 个点。dp[原创 2011-03-28 18:35:00 · 906 阅读 · 2 评论 -
位运算符和位运算
<br />这几个符号总是记不住...这里详细记录一下。<br />1,“按位与”运算符(&)<br /> 运算规则:0&0=0,0&1=0,1&0=0,1&1=1;<br /> example:3&5=1<br /> 00000011 (3)<br /> (&) 00000101 (5)<br /> 00000001 (1)原创 2011-02-17 21:19:00 · 373 阅读 · 0 评论 -
初识二分图最大匹配
<br />初次接触到二分图最大匹配是在http://acm.hdu.edu.cn/showproblem.php?pid=2063<br />离散数学中有涉及到二分图,完全二分图,匹配,最大匹配及完全匹配的定义,这里就不多做解释。简单介绍一下增广路的概念及其性质。<br /> 设M为二分图G的一个匹配。M中的端点称为M-顶点,其它顶点称为非M-端点。则增广路径:除了起点和终点是非M-顶点,其它路径上所有的点都是M-顶点,且它的边为匹配边和非匹配边交替出现。<br />增广路径的性质:有奇数条边。 起点在二原创 2011-03-03 16:55:00 · 1196 阅读 · 0 评论 -
python multiprocessing share variable
在某次开发中多进程间需要频繁共享变量, 碰到了各种各样的问题,总结一下。一、multiprocessing中的Queue共享问题1.先看一段代码import multiprocessing, timeq = multiprocessing.Queue()def task(count): for i in xrange(count): q.put("%原创 2013-11-05 15:37:27 · 4478 阅读 · 0 评论