自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rave..juine

你是猴子请来的逗比么

  • 博客(83)
  • 资源 (7)
  • 收藏
  • 关注

原创 类的一种特殊写法

private static PriorityQueue  unVisitedUrl = new PriorityQueue(1,new Comparator(){  @Override  public int compare(Url o1, Url o2) {   // TODO Auto-generated method stub   if(o1.getDegree()

2012-05-12 20:27:07 1358

原创 关于求最值问题中显示其中间路径

回溯法与动态规划算法都可以解决有关最值的问题,然而,有些问题不止是要得到最值而已,有时还要知道是如何得到最值的。然而二算法在处理该问题方法是不一样的。在动态规划算法中,它是将问题划分为一个一个的子问题,与子问题相关的变量的一组取值,称之为一个“状态”,一个状态对应于一个子问题,所谓“状态”下的值,即为该状态下子问题的解。我们则定义一数组(数组维数与状态个数相关)记录其子问题的解。如

2011-06-24 16:19:00 718

原创 深入探索AOI算法实现(十字链表篇)

游戏的AOI算法应该算作游戏的基础核心了,许多逻辑都是因为AOI进出事件驱动的,许多网络同步数据也是因为AOI进出事件产生的。因此,良好的AOI算法和基于AOI算法的优化,是提高游戏性能的关键。我在实践中所熟知的游戏AOI算法大致有两种,在此做一些总结,顺便梳理一下,打算设计出一套统一的接口封装不同的算法实现(网络上还有些其他算法,因为不熟悉不作记录了)。我所记录的这两种算法也算经典了,一个叫做网格法,一个叫做双链表法。具体细节可参考如下:https://zhuanlan.zhihu.com/p/2015

2021-03-23 16:16:00 1966 2

原创 深入探索AOI算法实现(九宫格篇)

游戏的AOI算法应该算作游戏的基础核心了,许多逻辑都是因为AOI进出事件驱动的,许多网络同步数据也是因为AOI进出事件产生的。因此,良好的AOI算法和基于AOI算法的优化,是提高游戏性能的关键。我在实践中所熟知的游戏AOI算法大致有两种,在此做一些总结,顺便梳理一下,打算设计出一套统一的接口封装不同的算法实现(网络上还有些其他算法,因为不熟悉不作记录了)。我所记录的这两种算法也算经典了,一个叫做网格法,一个叫做双链表法。具体细节可参考如下:https://zhuanlan.zhihu.com/p/2015

2021-03-21 13:32:21 1649

转载 设计模式

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2015-07-12 15:32:10 610

翻译 7个示例科普CPU Cache

7个示例科普CPU Cache示例1内存访问和运行示例2缓存行的影响示例3L1和L2缓存大小示例4指令级别并发示例5缓存关联性示例6缓存行的伪共享false-sharing示例7硬件复杂性关于第7个例子的一个回帖PS个人感悟局部性原理和流水线并发参考资料为什么程序员需要关心顺序一致性Sequential Consistency而不是Cache一致性Cache Coherence

2015-05-15 13:54:19 1388

原创 基数排序

//基数排序#include#include#include#include#define maxn 100using namespace std;int a[maxn];int n=0;int bits=0;vector  barrel[10];int bitnum(int n){    int result=0;    while

2015-04-15 22:16:08 835

原创 利用二分的思想求最值问题

在求最值问题里,我们最常见的方法是动态规划,回朔法。然而二分思想也是能够解决某一类最值问题,而且这一类最值问题会用明显的特征。先来看题目hiho第38周题目:http://hihocoder.com/contest/hiho38/problem/1将该题目稍微简化模型,意思就是求点到点的最长路径边的最小值。该题目是不能用动态规划的,因为并不存在动态转移方程。因此只能用回朔法。但是这类题目有

2015-03-27 20:35:28 992

翻译 常见算法

目录(?)[-]初期 二图算法 三数据结构 四简单搜索 五动态规划 六数学 七计算几何学 中级 二图算法 三数据结构 四搜索 五动态规划 六数学 七计算几何学 高级 二图算法 三数据结构 四搜索 五动态规划 六数学 七计算几何学 八综合题 专题Dp状态设计与方程总结 图论经典算法下面是我在网上找到一个算法的分类

2015-03-06 15:22:35 763

原创 标准缓冲I/0(及其可能遇到的错误)

在文件I/O中所有函数都是针对文件描述符的,对于标准I/O库,他们的操作则是围绕流进行的。当用标准I/O库打开或创建一个文件时,我们使一个流与一个文件相关联。当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需要的所有信息,包括:用于实际I/O的文件描述符、指向用于该流缓冲区的指针、缓冲区的长度、当

2015-01-28 20:39:03 1185

原创 火车进站

给定一个正整数N代表火车数量,0输入:有多组测试用例,每一组第一行输入一个正整数N(0 输出:以字典序排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行。解析:该问题可以提炼成为给出进栈序列,求出所有的出栈顺序。该题是一道模拟题,模拟进栈出栈的顺序。对于每一个元素进栈后 都可以有2种行为:出栈或者驻留在栈中。整个过程可以用一个树的形式来表达。因此采用回朔法(回溯法的过程

2015-01-21 10:16:58 1820 1

翻译 C/C++预处理器

C/C++编译系统编译程序的过程为预处理、编译、链接。预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理器指令以#号开头标识,末尾不包含分号。预处理命令不是C/C++语言本身的组成部分,不能直接对它们进行编译和链接。C/C++语言的一个重要功能是可以使用预处理指令和具有预处理的功能。C/C++提供的预处理功能主要有文件包含、宏替换、条件编译等。    1、文件包含

2015-01-20 21:14:20 524

翻译 C语言从stdin读取一行字符串的几种方法

C语言从stdin读取一行字符串的几种方法getsgets函数的头文件是,原型如下:char *gets(char *s);gets从stdin中读入一行内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,gets会将行末尾的'\n'字符或EOF替换成'\0',这样,ge

2014-12-15 21:46:40 2974

翻译 匈牙利算法

看了很多关于匈牙利算法的资料感觉如下这一篇是讲的比较通俗的。转载连接:http://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最

2014-11-21 13:33:34 801

原创 结婚匹配问题

问题大概是这样:有一个社团里有n个女生和n个男生,每位女生按照她的偏爱程度将男生排序,同时每位男生也按照自己的偏爱程度将女生排序。然后将这n个女生和n个男生配成完备婚姻。如果存在两位女生A和B,两位男生a和b,使得A和a结婚,B和b结婚,但是A更偏爱b而不是a,b更偏爱A而不是B,则这个婚姻就是不稳定的,A和b可能背着别人相伴而走,因为他俩都认为,与当前配偶比起来他们更偏爱各自的新伴侣。

2014-11-18 19:52:52 995

翻译 extern C的作用详解

转载于:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而

2014-11-14 10:45:01 837

翻译 C++ 关于声明,定义,类的定义,头文件作用,不具名空间

转 自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/1577361.html1. 编译单元:一个.cc或.cpp文件作为一个编译单元,生成.o。2. 普通数据类型的定义、声明,函数的定义、声明(类函数是一样的)。extern int x; // 变量是声明,并未实际分配地址,未产生实际目标代码 void pri

2014-11-13 21:22:43 1006 1

原创 最长回文

回文串包括奇数长的和偶数长的,一般求的时候都要分情况讨论,这个算法做了个简单的处理把奇偶情况统一了。算法的基本思路是这样的,把原串每个字符中间用一个串中没出现过的字符分隔开来(统一奇偶),用一个数组p[ i ]记录以 str[ i ] 为中间字符的回文串向右能匹配的长度。先看个例子原串:w  a   a   b   w   s   w   f   d新串:   #   w   # 

2014-09-24 15:21:02 850

翻译 gdb调试

. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。      follow-fork-mode  detach-on-fork   说明parent          

2014-07-15 20:10:55 754

原创 线程池实现

基于初级的线程池优化,这里最主要的问题是解决线程id的管理问题,以及线程取消的管理这里采用链表来管理线程id,链表的特性便于新增和删除,引进thread_revoke结构体来标记全局的取消线程信息,先分析一下线程什么时候需要取消:当任务很少,少到tasknum 这里维护一个取消队列,在线程取消时,置全局取消标志位为1,pthread_broadcast()唤醒所有线程,让在线程唤醒时会判断

2014-06-22 22:23:08 1062 1

原创 树形DP经典题

本文出自   http://blog.csdn.net/shuangde800题目传送门题意:给出一棵树,求离每个节点最远的点的距离思路:把无根树转化成有根树分析,对于上面那棵树,要求距结点2的最长距离,那么,就需要知道以2为顶点的子树(蓝色圈起的部分,我们叫它Tree(2)),距顶点2的最远距离L1

2014-05-28 21:27:42 1144

原创 树状DP入门

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520题目大意:给定一棵关系树,每个节点有个权值,子节点和父节点不能同时选,问最后能选的最大价值是多少?解题思路:树形DP入门题。由于子节点与父节点不能同时选,有人可能会用贪心思想,二者选其一肯定最优。其实不然,有可能父节点和子节点都不选,而要选子孙节点。不过只要再往深点想下,就可以得出

2014-05-28 16:01:35 1407 1

原创 双调欧几里德旅行商问题

双调欧几里得旅行商问题是一个经典动态规划问题。《算法导论(第二版)》思考题15-1和北京大学OJ2677都出现了这个题目。旅行商问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。这个解的一般形式为NP的(在多项式时间内可以求出)J.L. Bentley 建议通过只考虑双调旅程(bitonictour)来简化问题,这种旅程即为从最左点开始,严格地从左到右直至最右点,然后

2014-05-27 15:23:37 1577 2

原创 uva 103 Stacking Boxes

BackgroundSome concepts in Mathematics and Computer Science are simple in one or two dimensions but become more complex when extended to arbitrary dimensions. Consider solving differential equations

2014-05-23 08:43:37 1129

原创 uva 101 History Grading

BackgroundMany problems in Computer Science involve maximizing some measure according to constraints.Consider a history exam in which students are asked to put several historical events into chr

2014-05-22 07:55:10 868

原创 UVa OJ 127 - "Accordian" Patience (“手风琴”纸牌)

UVa OJ 127 - "Accordian" Patience (“手风琴”纸牌)Time limit: 3.000 seconds限时:3.000秒 Problem问题You are to simulate the playing of games of "Accordian" patience, the rules for which are as foll

2014-05-21 16:13:32 1531

原创 最长回文子串

一般求回文子串用的是Manacher算法,但是该算法只是简单判断回文,该题目中需要去除掉空格和标点,所以,自己用了动态规划(加剪枝,取出空号等)。代码如下://最长回文子串 动态规划#include#include#include#include //for tolower#define MAXSIZE 5000char str[MAXSIZE];//="Confucius

2014-05-20 15:02:20 986 1

原创 2014百度之星资格赛第一题

题目:Problem Description  魔法师百小度也有遇到难题的时候——  现在,百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这种魔法文字需要耗费大量的能量和大量的脑力。  过了许久,百小度终于读懂魔法文字的含义:石门里面有一个石盘,魔法师需要通过魔法将这个石盘旋转X度,以使上面的刻纹与天相对应,才能打开石门。  但是

2014-05-19 07:46:36 1264

原创 2014百度之星资格赛第二题

题目:Problem Description有很多从磁盘读取数据的需求,包括顺序读取、随机读取。为了提高效率,需要人为安排磁盘读取。然而,在现实中,这种做法很复杂。我们考虑一个相对简单的场景。磁盘有许多轨道,每个轨道有许多扇区,用于存储数据。当我们想在特定扇区来读取数据时,磁头需要跳转到特定的轨道、具体扇区进行读取操作。为了简单,我们假设磁头可以在某个轨道顺时针或逆时针匀速旋转,旋转一

2014-05-19 07:45:50 1586 2

原创 2014百度之星资格赛第三题

Xor SumTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Total Submission(s): 4445    Accepted Submission(s): 652Problem DescriptionZeus 和 Prometheus

2014-05-19 07:45:14 990

原创 2014百度之星资格赛第四题

Problem Description度度熊是一只喜欢探险的熊,一次偶然落进了一个m*n矩阵的迷宫,该迷宫只能从矩阵左上角第一个方格开始走,只有走到右上角的第一个格子才算走出迷宫,每一次只能走一格,且只能向上向下向右走以前没有走过的格子,每一个格子中都有一些金币(或正或负,有可能遇到强盗拦路抢劫,度度熊身上金币可以为负,需要给强盗写欠条),度度熊刚开始时身上金币数为0,问度度熊走出迷宫时候身上

2014-05-19 07:44:43 1155

原创 递归降序遍历目录层次结构

在学习APUE第4章时候,里面编写了一段递归顺序遍历目录层次的结构的代码,该代码实现了递归访问目录。但是该代码并没有显示降序的方式显示目录树。因此,我讲代码稍微修改,使其能够按照tree命令的方式显示,同时也统计了各个文件的数量。#include#include#include#include#include#include#include#includeusing nam

2014-05-12 09:10:00 1500

原创 常见的文件和目录函数

在APUE这本书,第三章与第四章都是在讲一些关于文件操作和目录操作的函数。简单地说明一下涉及到的函数及其使用。  open函数原型为: #include  int open(const char *pathname, int oflag,.../*mode_t mode*/);       该函数是用来打开或创建一个文件(记住:是文件,不包括目录),第三个参数只有当打开文件不存在时

2014-05-10 15:45:38 968

原创 动态规划与贪心算法区别以及如何思考动态规划

动态规划和贪心算法的区别动态规划和贪心算法都是一种递推算法 均有局部最优解来推导全局最优解 不同点: 贪心算法: 1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。 2.由(1)中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。 动态规划算法: 1.全局最

2014-05-07 15:39:09 1643

原创 动态规划之最长递增子序列问题详解

最近重新开始看动态规划,发现其中地问题。

2014-05-05 16:47:15 1778

原创 STL源码学习总结及项目下载地址

从开始看STL源码到今天差不多有一个月的时间了,在这研读STL源码过程中确实学习到了很多,深深被大师们的设计思想所打动。其中使用迭代器的思想是其STL的最大的亮点,通过泛型编程,是得所有的容器对外都提供统一的访问接口,而屏蔽掉了各个容器底层实现的细节。相对了面向对象的编程,泛型编程同样能够实现多态的功能,而且还具有更高的安全性以及效率,因为泛型编程就是编译期间就已经决定了变量的类型。

2014-04-29 09:45:32 3248

原创 map容器设计

在红黑树基础上设计map容器,在设计map时,可以明显利用的map模板类中KEY,VALUE,KEYOFVALUE的灵活运用不多说,代码如下://my_map.h#ifndef MY_MAP_H_INCLUDED#define MY_MAP_H_INCLUDED#include //for pair#include"my_rb_tree.h"using std::pair;

2014-04-29 09:16:14 971

原创 set容器的实现

set容器是以红黑树容器为基础实现的,在其基础上稍加改变接口即可#ifndef MY_SET_H_INCLUDED#define MY_SET_H_INCLUDED#include"my_rb_tree.h"namespace juine{ template struct identity { const T& operator()(cons

2014-04-28 20:30:11 1049

原创 红黑树容器实现(带迭代器)

上一篇文章是纯粹地实现了红黑树,但是在STL中,红黑树容器是需要迭代器实现的。故将上一篇文章改进后实现红黑树容器。#ifndef ITERATOR_RB_TREE_H_INCLUDED#define ITERATOR_RB_TREE_H_INCLUDED#include"my_iterator_base.h"/***iterator_rb_tree.h红黑树地泛型容器地迭代器与

2014-04-28 09:57:25 1624

原创 红黑树的实现

在写完线性容器以后,再来看关联性容器。在关联性容器中,set,map容器都是基于红黑树而实现的,故花了几天时间写下来红黑树的代码。其原理可以参考算法导论。在写过程中也参照了网上别人写的代码。其代码实现如下:#includeusing namespace std;//红黑树class RB_Tree{private: enum COLOR{RED,BLACK}; cl

2014-04-25 16:08:49 1146

STL源码的仿写

自己通过对STL源码的研究,然后简单地仿写STL中各大容器,已实现其中基本功能

2014-04-29

python3程序开发指南

深入浅出的讲述了python语言,是一本很经典的python学习教程

2013-07-21

计算机图形学课程设计

用中点算法实现直线,圆,金刚石等,有效边填充算法,基本二维变换

2012-01-01

编译四则运算表达式

用C语言完成四则运算的编译模拟,实现如何编译四则运算

2011-12-04

用分治算法设计循环赛日程表

用C++设计一个循环赛日程表,其中包括源代码,需求分析和算法设计等

2011-07-03

C++实现学生成绩管理系统

对学生成绩的管理,实现成绩的排名,查找,增加和删除

2011-07-02

北大集训与常见算法分析

北大C语言与算法,提供一些C语言中常见的算法

2011-04-18

空空如也

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

TA关注的人

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