自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 计算几何初步

表示点,线,面的方法使用传统解析几何的方法会导致特殊情况过多,使得我们的计算偏差较大。2. 使用矢量法来表示点矢量法的基本运算

2016-08-04 20:50:59 456

原创 POJ1143位操作+状态压缩

状态压缩+位操作+动态规划

2016-08-03 15:39:43 366

原创 POJ1644 DP+一些感悟

DP和个人的一些感悟

2016-08-03 11:19:47 336

原创 [hdu2089&&hdu3555]数位DP

数位DP个人的感悟

2016-08-01 16:06:57 253

原创 POJ1155[树状DP+启发式优化]

一个树状DP及其优化的方法

2016-07-31 17:51:46 279

原创 二分图

二分图的一些小知识

2016-07-29 16:08:03 351

原创 POJ1236 图的一个连通性问题

POJ1236

2016-07-21 20:11:15 584

原创 用位操作实现跳舞链

跳舞链跳舞链是著名的计算机科学家高德纳提出的一种使用深度优先搜索来解决精度覆盖问题的算法。其问题的提出是在一个棋盘上,是否可以挑出一些长边,使得每一个宽边上有且仅有一枚棋子。 高德纳认为,这个问题里面宽度和长度是两个相互制约的因素。首先,如果我们选到了一个长边,那么相对应的宽边都得到了覆盖。而与此同时,如果其他长边上的同一位置也存在棋子,那么由于精确性的条件,这些边都不能够再选择了。在搜索的过程中

2016-06-10 19:27:52 1116

原创 [致敬陈景润]几个基础数论问题证明

今天是著名的数学家陈景润的诞辰,大概从小学就知道他了。我想,在社会日益浮躁的今天,我们需要这样一个能够静心思考的大师。这也是我一直的目标,不求光鲜,但求发光发热。在这里弱渣给出几个数论基础问题的证明,致敬我的偶像。最大公约数性质证明定理1:如果任意整数a,b都不为0,则gcd(a,b)是a,b的线性组合集\{ax+by: x,y \in Z}\ \{ax+by: x,y \in Z}\ 中的最小正

2016-05-22 21:25:44 1437

原创 [2016校赛]两个简单的小题

[2016ACM]

2016-05-16 23:07:35 1268

原创 [CSAPP]计算机存储系统初步

在计算机科学中, 对计算机的系统结构有这样一个简化的模式: 存储器存储数据和程序 CPU等执行单元负责控制指令的执行在我们一般的编程当中, 这个模式显然是成立的。但是, 在这之中, 对于存储系统而言, 由于不同的技术差异使得计算机的存储系统往往分为多个层次, 了解他们, 对我们后续的编程有很大的好处。多种存储元件RAMRAM分为DRAM和SRAM两种, 一般来说, SRAM的存储速度以及单子节的

2016-04-13 17:26:40 491

原创 [CSAPP]提升代码的效率

当我们想要写出效率极高的代码的时候, 我们一般要做到下面两个方面: 有效的算法和数据结构 理解编译器的性能和局限性编译器的作用和局限性虽然一般的编译器都可以在某些方面提高代码的质量, 但是他们对代码的优化总是遵从下面的几点: 不能改变程序的行为 对程序的行为和所处的编译环境所知甚少 快速编译程序的需求 观察下面的代码:void twiddle1(int* xp, int* yp){

2016-04-08 23:53:48 577

原创 [CSAPP]处理机结构

电脑的处理机可能是人类从古至今所制造出来的最神奇的机器, 在一块小小的硅质芯片上每秒可以完成数亿次的计算。而管理这台神奇的机器也成为了人类历史上最难以解决的问题之一。Y86处理机的指令结构对于每一条指令而言, 它们都可以去访问或者更改一些内存或者寄存器的内容, 这样的地方叫做指令可视地带。 一般指令可视的地带有下面几种: 8个通用寄存器 PC指向下一条指令的存储地址 内存: 我们可以把内

2016-03-26 16:15:34 310

原创 [CSAPP]Chapter 2 Representing and Manipulating Information

Information storageRather than access individuel bits in a memory, many computer use blocks of eight bits, or bytes, as the smallest addressable memory.A single byte consists of 8 bits. In binary nota

2016-03-13 20:35:41 491

原创 MAC下使用nasm编译汇编

汇编的基础知识我们知道, 对于计算机的CPU而言, 无论是指令还是数据, 都是以机器码的形式存在于计算机当中。我们的高级语言都需要通过编译器或者解释器转化成机器码才能执行。 对于不同的CPU而言, 其可以识别的汇编语言并不相同, 这就决定了汇编语言并不具备良好的可移植性。所以我们在编译汇编代码的时候,需要注意汇编的代码是否与当前的机器CPU兼容。NASM简介nasm是一款开源的汇编语言编译器, 其

2016-03-03 21:03:31 10136

原创 Unix简介(2)

进程和镜像一个镜像指的是这台计算机工作的环境。它包括内存镜像, 用户的登录信息,目前打开的文件的情况和当前所在的文件夹等相关情况。 一个进程是这个镜像的执行部分。当高优先级的进程正在运行的时候, 其他的进程通常处于休眠状态。进程除非整个操作系统正在启动,一个新的进程的产生只能通过这个操作系统来进行调用。通信管道每个进程在执行的过程中可能会和相关的进程来进行通信。根据Unix操作系统当中事事都是文件

2016-02-28 21:01:31 350

原创 Unix的简介(1)

Unix是一个分时操作系统Unix是一个为更大的数码设备而设计的多用户, 多线程的操作系统。他提供了许多操作系统无法提供的一些好处, 包括下面几点。 一个分层并可以挂载新的存储设备的文件系统 兼容性的文件, 设备和进程中的输入输出 一套用户的系统命令 各种编程语言的解释器和编译器Unix的文件系统对于一个unix操作系统, 一般有三种文件: 普通的文件,文件夹和特殊的文件。普通文件一个普通文

2016-02-27 22:22:34 890

原创 数的二进制表示中1的数目

数的二进制表示中1的数目我们知道, 每一个数都有唯一的二进制表示, 得到一个数的二进制表示, 对减小一些规模巨大的问题的计算复杂度具有重要的意义。那么在这里, 我们想要求得一个数的二进制表示当中1的数目。 首先, 一个最简单的思路就是, 我们求出每一位上的数字再加以统计, 就可以求出这个数的二进制表示当中1的数目, 其代码如下所示: int__64 Compute(int__64 x)

2016-02-15 21:29:36 401

原创 2048小游戏后端的实现

游戏的由来 2048小游戏是首先在github上发布的一款开源的小游戏, 游戏的规则十分简单, 但也意外的获得了世界上很多人的青睐。在这里, 我想介绍一下我实现2048小游戏后端的一些小算法的设计。A.栈的使用 在2048的游戏当中, 最主要的操作便是上下左右的操作, 而这里, 我们需要使用一个常用的数据结构--栈。在移动方块的时候, 相同数字的方块会在移动的过程中融合。这和栈只允许栈顶作操作的特

2016-02-06 20:47:19 673

原创 Γ函数及Γ分布,t分布,ϰ分布和费舍尔分布

在概率统计中,有这样一类连续型分布,可以用他们来通过一组相互独立且期望,方差相同的事件来确定他们的发生的概率和数学期望。在这里我们主要介绍Γ分布以及被他们引出的χ分布,t分布和fisher分布.说到Γ分布,就不得不说他的一个重要的组成部分,Γ函数。大约在1728年,著名的数学家哥德巴赫在研究数列插值的问题的时候引入了这样一个重要的函数,自此,这个函数在数学分析和概率论等方面占有了重要的地位,它也

2016-01-02 21:24:47 13664

原创 动态规划问题的一般解决方案

动态规划问题的一般解决方案动态规划的历史渊源动态规划问题是由Bellman教授提出的一种用于解决当问题的规模很大时利用转移而将问题分割为子问题的一种算法思想。他也在1979年获得了ACM,IEEE协会颁发的终生成就奖。动态规划问题的一般思路由上面的论述,我们可以知道,动态规划问题是用来解决问题规模很大而大问题可以分割为子问题并且加以解决的一种算法思想, 那么, 我们怎么样解决一个动态规划问题呢?

2015-12-14 23:14:01 1828

原创 正则表达式(regular expression)简明教程

正则表达式(regular expression)简明教程摘要: 最近,由于要学习字符串的相关知识,所以搜索了一些网络上有关正则表达式的学习笔记来学习,收获很多,在此对正则表达式的相关知识做一点小小的总结在字符串匹配当中,有时我们并不想将两个确定的字符串进行匹配,而是使用已有的字符串和已经储存的字符串模式进行匹配,所以这就使用到了正则表达式,那么正则表达式的基本组成有: A.单个的字符:字

2015-11-05 23:10:01 1125 1

原创 线段树+离散化操作(poj 2528)

模型建立:本题的大致题意如下,我们先后向一块墙上贴n张海报,先贴的海报可能会被后贴的海报所覆盖,问在选举的最后一天还能看到几个人的海报。很显然,我们记录下这个海报的左右端点并从后向前查询海报是否被覆盖.但是,这一题若以题目中的单位长度做单元格,则树的叶子节点会有10000000以上,算法的空间复杂度将会相当大.所以,我们将各个海报采用离散化操作,即先将海报的左右端点记录在一个数组中再进行排

2015-10-26 23:48:00 687

原创 0-1分数规划的Dinkelbach算法

基本模型的概述0-1分数规划问题是经济统计,数据挖掘中一类十分重要的问题.其基本的模型是,我们知道一组产品的投入a[n],也知道一组产品的可以得到的利润,那么,这个时候我们从这n件产品中选择k件,怎么样来选择才能让我们最终的选择利润率最高呢?即我们知道是sigma(b[i])/sigma(a[i])最大模型的分析很显然,我们知道,选择b[i]/a[i]最大的k件物品是无法找到最大的组合

2015-09-05 12:53:00 1474

原创 poj 1719最大二分匹配hungary算法

首先在这道题之前先说明几个简单的概念二分图:如果一个图G,V能够划分成为两个子集,V1,V2,而这两个子集中的点两两不相邻,则这个图称为二分图匹配:E的一个子集E1,使得V1中的点至多只与V2中的一个点相邻,则我们可以称为G1,则这个子图为E的一个匹配最大匹配:如果一个匹配所包含的边最多,则称为最大匹配.Hungary算法:图论中一种计算最大匹配的算法,其原理是遍历图中的V1每个结

2015-09-03 11:42:47 409

转载 vim的简明教程

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2015-08-30 10:32:04 326

原创 最大流的基本算法(ff算法&&dinic算法&&push-rebeal算法)poj1273

最大流的基本概念有以下几点:              1.残存网络:即为一条管道被占用了一部分流量之后所剩下的流量。在网络流中,图被看为一个有向图,残存流量向量相加后永远不变。这一点有点像基尔霍夫定律。              2.在找到一个流之后,仍然存在的从源点到汇点的路径。这叫做增广路径。加入增广路径后,流的容量一定能够提升。寻找增广路径一般使用DFS或BFS。ford-fu

2015-08-08 09:18:43 3035

原创 linux(mint)中codeblock的设置

对于一位linux的开发人员,一般开发的工具是gcc和vim。的确,一个文本编辑器和一个编程语言编译器足够一个开发者写出很好的程序了。但是,对于一个用惯了windows操作的人来说,一个IDE能够更加方便的管理和运行整个工程。此时,code:block就是一个很好的选择。首先,在启动code:block的时候,通常要求建立一个workspace。一般来说,这个工作环境一定要建立在linux系统

2015-08-05 10:47:37 946

原创 欧拉回路及其构造

欧拉回路来源于哥尼斯堡七桥问题。如下图,在当地有七座桥连接着不同的岛屿。当地人提出了一个问题:是否可以不重复地走完所有的桥。后来,欧拉解决了这个问题,并证明出:对于一个连通图,如果每一个节点的度数均为偶数,那么必然可以得到一条欧拉回路。

2015-08-04 23:30:03 3837

原创 POJ 3414(BFS建树)

这一题是典型的BFS建树的问题。首先,可选的操作只有FILL,DROP,POUR三种,而这三种又各自衍生出两个分类。那么,我们可以通过这6种操作不断地转换状态。而我们知道,已经得到过得状态再次得到时,就一定会产生圈,得不到最优解。所以利用一个数组储存看这个状态是否已经达到。      对于每一个子状态,枚举所有的操作,将操作过后得到的新状态压进队列。同时储存得到状态的时间和方法。并且更新这棵树

2015-08-03 07:35:32 542

原创 POJ 1019数学模拟题

这道题的题意是这样的:有这样一堆数列:1;1,2;1,2,3;1,2,3,4;1,2,3,4,5;...............给定一个数num,求这堆数列中第num位为多少。首先我们先打表,求出每一个数列所含数字的个数。blank[i]=blank[i-1]+log(i)+1.                             我们知道,后两项之和即为这个数(i)的位数,即

2015-07-29 22:48:15 341

原创 poj 2251(BFS)

这道题是典型的广度搜索的案例啊。http://poj.org/problem?id=2251题目的大意就是,在一个多层次的空间内,要寻找由入口到出口的最短路径。开始时我想用DFS来完成的,但是DFS经过深搜过后得到的值不一定为最短路径。而有可能要进过回溯迭代才能得到最优解。所以使用DFS会损失大量的时间。这一题,我们要使用的是BFS。何为BFS,就是对所经过的点进行尽可能广度的

2015-07-27 22:56:05 344

原创 POJ 1700贪心算法

今天晕了一天啊,感觉什么都做不下去。这是今天做出来的一道题。http://poj.org/problem?id=1700题目非常简单,一群人去过河,但只有一条船,每次只能载两个人。这两个过河的速度取决于较慢的那一个。那么就有两种策略进行贪心,即划船最快的人带所有人过河,或者划船最慢的人和划船第二慢的人一起过河。开始是我们先让划船最快的两个人过河,然后对划船最慢的人进行讨论。第一种情

2015-07-26 22:58:44 456

原创 深度搜索算法(POJ 3984)

http://poj.org/problem?id=3984深度搜索是搜索算法中的一类重要的思想。他的过程是从起点开始,找到其邻接点并标记,然后尽量深入。最后在返回这个前驱点进行搜索。这道题是深度搜索中的基础题,要注意对其剪枝:1.搜索过的点不重复  2.用一个结构体数组记录他的结构,便于最后的输出。#include#include#include#define INF 0x

2015-07-21 20:49:18 460

转载 eclipse中的主要快捷键

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对

2015-07-10 22:37:47 282

原创 利用贪心的思维对算法剪枝(POJ 2376)

http://poj.org/problem?id=2376这是昨天遇到的一道题吧,题目的意思非常简单。一个农民在一些天里需要一些奶牛为他工作。他可以找到n头奶牛,但是,任意的一头奶牛都只有特定的日子里才能进行工作。所以,我们要计算得出他最少需要雇佣多少头奶牛。(如果不能天天都雇佣到奶牛即输出-1).这题的思路十分简单,首先我们从第一天开始,找到一头工作时间最久的奶牛(设工作到n天),将其

2015-07-05 17:21:09 877

原创 次小生成树POJ 1679

POJ的题目地址:http://poj.org/problem?id=1679次小生成树是给定一个无向图,让我们计算得出这个无向图的最小生成树是否是唯一的。对于一个无向图的最小生成树,我们知道,它是连通的,而且每一条边都为割边。所以,当我们拿去一条边L的时候,树就会分裂成两个联通分支。这时,我们加入

2015-07-01 22:40:24 439

原创 邻接表和SPFA(POJ 1511)

通常我们在表示图的时候,常用的是邻接矩阵和邻接表。邻接矩阵可以表示图中任意两点之间的距离。而邻接表则是对于每一个节点建立一个链表,包含的是关联这个节点的任意一条边(可能是无向图,也可能是有向图)。我们可以发现,在一个具有n个节点的图中,一个邻接矩阵需要n*n个储存单位,而一个邻接表则需要m(m即为这个图中所含有的边的数目)。所以邻接矩阵适用于稠密图,而邻接表则适用于稀疏图。(注:《算法导论》给出的

2015-06-12 17:02:49 451

原创 dp问题最佳路径的构建 poj 1015

我承认,作为一个新手,这道题困扰了我很长时间,各个步骤我觉得都很难。从最优解的刻画到最后最佳方案的构建都花了我很多时间,也听了许多大神的建议。最后终于解决了这道题。Jury CompromiseDescriptionIn Frobnia, a far-away country, the verdicts in court trials are determined by

2015-06-06 00:04:57 498

原创 POJ 1018 dp问题的一般过程

做dp问题已经有一段时间了。虽然感觉dp算法的思路还不是那么清晰,但是思维和以前比已经有了巨大的进步。在这儿,我想借poj中的一道题,对dp问题进行一个小小的总结。成长的路还有很长很长。Communication SystemDescriptionWe have received an order from Pizoor Communications Inc. for

2015-06-04 17:49:48 532 1

计算数论.pdf

这本书描述了和计算机学科有关的数论知识.对进行密码学等信息安全方面工作的人具有很大的益处

2015-07-27

空空如也

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

TA关注的人

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