自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

荒野孤鹰

广阔天地大有作为

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 UVALive 3882--And Then There Was One+约瑟夫环问题变形

题目链接:点击进入 题目意思大概和约瑟夫环问题差不多,唯一的不同点在于起点改成了m;刚开始的时候我想直接链表模拟算了,但是后面一看,数据太大,就改用公式做了。约瑟夫环的公式是:f(n)=(f(n-1)+k)%n ,对于这个题起点为m,所以答案就会变成ans=(f(n)+m-k+1)%n; ans有可能小于0,此时我们要给他加上一个n,ans+=n。代码如下:#include<iostream>

2015-07-16 11:01:04 887

原创 Thinking in Java---多线程学习笔记(2)

多线程中的一个核心问题就是对共享资源的访问问题。因为不能准确的知道一个线程在何时运行,所以如果多个线程对共享资源进行修改的化,结果可能就出错了。解决这一冲突的基本思路就是当一个资源被一个任务使用时,在其上加锁;这样其它的任务就不能再访问这个资源,直到上面的锁打开;这样就可以实现一个序列化的访问共享资源。Java中提供了多种对访问共享资源的临界区代码进行加锁的方法,下面对这些方法进行一个归纳总结。

2015-07-13 12:37:06 842

原创 Thinking in Java--Java多线程学习笔记(1)

这几天开始学习java多线程并发编程的内容了,以前也学习过多线程的知识,但是总是觉得学的不是很清楚;希望这一次学习《java编程思想》能让自己对并发,多线程的概念有一个更加深入的了解。这一章估计要写好几篇博客了,这篇博客是对于基础的一个总结,主要内容是对启动一个线程的几种方式和对线程一些操作函数的总结。首先来了解一下多线程的概念,多线程看起来同一时刻在同时运行多个任务,但是从操作系统的层面来讲只是让

2015-07-13 11:45:16 1803

原创 Tinking in Java ---Java的NIO和对象序列化

前面一篇博客的IO被称为经典IO,因为他们大多数都是从Java1.0开始就有了的;然后今天这篇博客是关于NIO的,所以的NIO其实就是JDK从1.4开始,Java提供的一系列改进的输入/输出处理的新功能,这些新功能被统称为新IO(New IO ,简称NIO)。另一个概念对象序列化指的是将那些实现了Serializable接口的对象转换成一个字节序列,并能够在以后将这个字节序列再转换成原来的对象。这样

2015-07-09 16:38:23 2957

原创 算法导论学习--红黑树详解之删除(含完整红黑树代码)

前面我们讨论了红黑树的插入的实现,基本思想是分类讨论;然后分情况讨论以后我们发现插入操作调整函数只需要处理三种情况,并不是太复杂。但是删除操作会更复杂一点,因为二叉搜索树的删除操作本身就分成了多种情况,这样在执行删除操作后要处理的情况会更多;下面对于删除操作我们仍旧采取分类讨论的方法,将所有的情况梳理清楚后,就可以理解红黑树的删除调整函数的实质了。 下面先放出红黑树删除函数的代码://红黑树删除函

2015-07-06 20:05:16 6327 7

原创 Thinking in Java---Java IO 总结之基本IO

初次接触Java IO的时候,我有一种措手不及的感觉,因为这个类库中的类实在是太多了!如果我们想要使用一个类进行输入输出,可能还需要创建其它几个类,实在是很麻烦。在这篇文章中我试图对Java IO类库进行一个梳理,总结一下几种常用的IO类组合。文章分为三个部分:1.Java操作目录的File类;2.Java经典的输入输出流;3.java的标准输入输出;4.”特立独行”的RandomAccessFil

2015-07-06 16:10:59 1501

原创 算法导论学习---红黑树详解之插入(C语言实现)

前面我们学习二叉搜索树的时候发现在一些情况下其高度不是很均匀,甚至有时候会退化成一条长链,所以我们引用一些”平衡”的二叉搜索树。红黑树就是一种”平衡”的二叉搜索树,它通过在每个结点附加颜色位和路径上的一些约束条件可以保证在最坏的情况下基本动态集合操作的时间复杂度为O(nlgn).下面会总结红黑树的性质,然后分析红黑树的插入操作,并给出一份完整代码。先给出红黑树的结点定义:#define RED 1

2015-07-05 11:18:18 4399 3

原创 Thking in Java---数组详解

虽然学习java也有几个月了,但是发现自己对java数组的使用还是显得不够熟练,比如说一个比较简单的自己指定对象数组的排序规则(类似于在C++中的重载sort()的comp()函数)就不知道怎么写。另外java数组的一些常用函数也不是很熟悉。所以借着学习这一章的机会,好好的做个总结。不过值得注意的是在集合框架中支持泛型后,我们应该尽量使用ArrayList而不是数组了。下面以小样例的形式展示常用的函

2015-07-04 08:33:51 1276

原创 Thinking in Java---泛型小结

1)基本概念:   泛型(Generic Type或Generics)是 对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看做是使用参数化类型时指定的类型的一个占位符,就像方法的形 式参数是运行时传递的占位符一样,泛型的体现主要是在集合框架里面可以看到,JCF里面应该是1.5里面使用泛型最多的地方。Java语言引入泛型是一个 较大的功能增强,不仅语言、

2015-07-03 14:06:40 1733

原创 UVA 10723--Cyborg Genes+最长公共子序列变形

题目链接:点击进入 首先对于长度最短的情况是很容易确定的,只需要用两个字符串的长度和减去他们的最长公共子序列长度。然后比较麻烦的就是合乎要求的字符串的个数,其实我们也可以用类似于最长公共子序列的dp来求。 设dp[i][j]表示str1的前i个字符和str2的前j个字符所得到的满足要求的字符串,则如果str[i]==str[j],则dp[i][j]+=dp[i-1][j-1]; 否则就要根据i,

2015-07-03 13:55:07 1091

原创 UVA 11235--Frequent values+RMQ问题

题目链接:点击进入 以前也碰到过不需要修改,只需要单纯查询区间最值的题目,那时候都是用的线段树做的。但是现在大白书上提供了一个更好的算法。 当然这个题目本身还是不能直接套最大最小值的模板的,需要做一些转换。其中最主要的就是要将题目给的数据,处理成(a,b)这种格式,表示数字a连续出现b次,并且记录每个编号对应的段号。然后我们在处理过后的以段为表示单位的数据上进行RMQ查询了。代码如下:#incl

2015-07-02 19:13:23 962

原创 UVA 11008--Antimatter Ray Clearcutting+状态压缩记忆化搜索

题目链接:点击进入 最多只有16个点,如果不用状态压缩的话,最优子结构没法找到。所以我们进行状态压缩,用一个数表示当前的状态,对应二进制位为1表示该位置的树还未被砍掉,为0表示已被砍掉,初始状态为(1<#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define maxn 20#define

2015-07-02 13:29:08 608

深入浅出MyBatis

深入浅出mybatis这本书详细的描述了如何使用mybatis作为数据层半持久化框架

2018-06-07

空空如也

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

TA关注的人

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