自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

buxizhizhou530的专栏

简单的东西,写给自己~

  • 博客(20)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 【总结】专业相关不错的一些话

持续更新...1.选择相关,如 offer 选择动态规划算法至少告诉我们两个事:1)承前启后非常重要,当你准备去做遍历的时候,你的上次的经历不但能开启你以后的经历,而且还能为后面的经历所用。你的每一步都没有浪费。2)是否可以回退也很重要。这意思是——如果你面前有两个选择,一个是A公司一个是B公司,如果今天你选了A公司,并不是你完全放弃了B公司。而是,你知道从A公司退出来去B公司,会

2015-03-28 10:27:17 730

转载 assert 用法总结

原型assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );作用assert的作用是计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badp

2015-03-27 17:19:38 581

原创 APUE阅读笔记第1章 UNIX基础知识

引言UNIX 体系结构内核、系统调用、{公用函数库、shell、应用程序}内核:从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。(相对较小,位于环境的核心)系统调用:内核的接口。公用函数库构建在系统调用之上,应用程序既可使用公用函数库,也可使用系统调用。shell 是一个特殊的应用程序,为运行其他应用程序提供了一个接口。广义上说,

2015-03-24 11:37:55 888

转载 理解 Linux 的硬链接与软链接

Linux 的文件与目录现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的

2015-03-24 11:09:18 594

原创 UVa 10603 倒水

题意:有3个有一定容量的杯子,给定一个水的量。问是否能让一个杯子装这个给定容量的水,以及所需要倒来倒去的水的最小量。如果不能,则能倒出的比给定容量小但最接近的量,以及所需要进行倒的水的最小量。思路:虽然是隐式图搜索的问题,其实和之前数据结构基础章节的图的题很类似,就是一个状态转换,然后深搜或宽搜。只不过这里状态的变换不是像之前那样是固定的,可以用一个多维数组来表示;这里的变换是倒水后三个杯子的

2015-03-18 12:51:10 858

原创 UVa 208 救火车

题意:先给出离出火地点最近的路口,然后给出一些之间通畅的路口。要求给出所有从1号路口到火灾事故点的不含回路的简单路径。思路:方法很容易想到,dfs即可。但是简单的dfs会超时,3s+. 之后看别人用了并查集,去了解了下并查集的思想。这里可以通过并查集提前判断一个路口是否和火灾路口想通,如果不通,则直接剪枝了。别看仅这一个优化,最后AC时间0.022,性能提升还是很多的。因为你早早地剪去一个结点

2015-03-12 21:29:45 809

转载 深入浅出并查集算法(Union-Find)

转自此处。感觉讲并查集算法讲得挺好的,博主应该是参考书里内容,并结合了自己理解的。本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,

2015-03-09 22:33:32 657

原创 Dev C++ 相关错误

提示以下错误:[Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to `__cpu_features_init' ld returned 1 exit status 原因可能是自己另外又装了MinGW。将这个所在的文件夹重命名即可。

2015-03-09 21:41:07 1447 1

原创 UVa 193 图着色

题意:给一个图,可以染白色和黑色,但是染黑色的结点不能相邻。求最多的黑色结点个数,和一种可能的黑色结点序列。思路:这个用回溯法还是很容易想到怎么写的。dfs每一个位置,知道所有位置dfs完。对每个位置都尝试黑色和白色。如果染黑色,那么就需要把和它相邻的结点染成白色,因为他们必须是白色,如果发现有相邻结点已经是黑色,则当前结点不能是黑色;而因为dfs后需要对辅助的全局变量进行恢复,所以这里在将相

2015-03-09 11:08:25 749

原创 UVa 140 带宽

题意:参考之前讲回溯法的最后一个问题。思路:枚举全排列,考察每一种排列下的结果。  也可以进行剪枝优化,也是参见之前讲回溯法的部分。这里我是用二维数组g来存边关系,但顶点还是单独保存在一个数组里,然后排序,然后求排列。这题居然交了9次,1CE1TLE1AC6WA,CE的原因是没有包含cstring,在本地没包含可以。。。TLE原因是没有注释掉freopen。WA的原因之前一直以为是

2015-03-07 19:55:10 942

原创 UVa 167 苏丹的继承者

题意:类似于8皇后问题,只不过棋盘上每个格子都有个分数,皇后所在的位置即可以得到的分数。还是8皇后问题的规则,最后求得最大可得到的分数。思路:8皇后问题解法,在放完8个皇后后判断一下得到的分数就行了。在 if 语句的判断内容那块竟然还写错一次,不满意~也可以用vis[3][2*8];数组标记,然后会快一点Code:#includevoid dfs(int cur,int s

2015-03-07 12:07:54 1101

原创 linux 常用命令积累

前几天在 iMooc 上随便看了一个公开课,学到几个常用命令,记录在此,慢慢积累。感觉遇到一个学一个,有时候比按一本书从头开始按部就班地学习要更有记忆点。1. echo $? 在程序运行之后,此命令可以打印程序返回值。比如main中返回的0或1等。2. cat t.txt 显示到终端。(cat命令应该是连接,这里应该是省略了标准输出)3. ./a.out  |  > t.txt  管道

2015-03-07 10:47:45 691

原创 UVa 10012 有多大 没AC,待修改

题意:给出一些圆的半径,把所有圆放到一个矩形里,要求所有圆都必须与矩形的最下边相切,求矩形的最小长度。本来写得很快,以为是一道水题,结果有太多情况没考虑。。我是按照最左圆的半径加上每两相切圆的圆心间水平距离再加上最右圆的半径写的,有太多情况没考虑。一会补上一个,缝缝补补的,现在都有些晕了,现在还遗漏的情况是,我只考虑了第二个圆比第一个圆能到更左,以及倒数第二个圆比倒数第一个圆能到更右,但是第三

2015-03-04 21:50:17 940

原创 UVa 331 交换的方案数 (回溯法,启发)

题意:只能交换相邻的数。要把一个数组这样交换以形成升序。问最少交换次数的不同交换顺序有多少种。思路:还是没想到,看到别人题解中一句话,茅塞顿开:每次从头选两个需要交换的位置进行交换。只有降序才需要交换,而且可以看到每次降序的调换都是有意义的。这样每次从头找一个需要交换的位置,就是不同的方案。当某次从头扫描到尾没有需要交换的位置时,则已经排好序,就是交换次数,用一个flag变量标志。0.02

2015-03-04 16:17:17 828

原创 UVa 10344 算23点

题意:有5个数,3种运算符:加、减、乘,用全部5个数,和4个运算符,构成一个表达式,使得值为23,这里没有运算符的优先级,全部是从左往右算。是可以这么理解,题目给的是从左到右依次打了括号。思路:这里是对表达式的位置进行dfs。可以看到第0位是数字,第1位是运算符,依次则,偶数位是数字,奇数位是运算符。dfs中把当前位置cur分为奇偶分别处理。偶数位置时,则对数字进行枚举,并计算当前表达式的值,

2015-03-03 20:58:14 919

原创 UVa 539 卡坦岛

题意:某游戏的玩家会建造一些公路,公路是连接两个岛的,这样形成一个图。顶点是岛,边是公路,且边长均为1。要求每条边只能走一遍,这样最长的公路是多长。思路:回溯法。以所有的点都开始枚举一次。由于这里每条边只能访问一次,而顶点是可以访问多次的,所以不能简单地用vis[26]数组来判断,而是用g[][]的值来表示边的条数,这样,输入时边的相应g值++,选择一条边时,则相应g值--。这样没要输出路径,

2015-03-02 22:04:53 831

原创 UVa 639 放车问题

题意:给定一个 n x n 的棋盘,在上面放置车。其中.号表示可放置,X表示墙。在同一行或同一列的两个车,如果它们之间没有X墙挡着,则是不合法的放置。给定一棋盘,最多可以放置车的数量。思路:枚举所有的格子,看是否可以在此放置。每次放一个车后,修改棋盘的横行、竖列直到X的位置为1,即不可放置。因为要修改棋盘,所以需拷贝一个过来,修改拷贝的。还有一些注意的,如注释,总感觉写得不是很简洁。还有就

2015-03-02 19:26:10 777

原创 UVa 216 网络连线

题意:给出一些电脑的二维坐标,连接两个电脑所用网线长为它们之间的直线距离再加上16 feet。要求把所有电脑连成一个串,怎样连,使得所用网线最短,并且按从一端到另一端的顺序输出连接的两个电脑间的距离。思路:很容易想到的就是暴力枚举,将所有电脑做一个全排列,求得总长最小值的那个。这里用的递归枚举、即回溯法,进行了剪枝优化。第一次交WA了,重读题目、看别人题解,都没找到原因。看到别人的freo

2015-03-02 15:18:12 835

原创 回溯法

只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择,都可以考虑应用回溯法。想象一棵包含 L 层,每层的分支因子均为b的解答树,它的结点数高达1+b+b^2+...+b^(L-1)=(b^L-1)/(b-1)。无论是b太大还是L太大,结点数都会是天文数字。一、八皇后问题最简单的思路是,从8X8=64个格子中选一个子集,使得满足要求。正是子集枚举问题。然而,规模是2^64个。

2015-03-02 00:32:32 1907

原创 小规模素数表的构造方法及相关

一、判断素数可以写一个判断素数的谓词函数,即从2开始枚举到sqrt(x)(包括)。但这里参数x不能过大,过大就会因为i*i乘积过大溢出。Code:int is_prime(int x){//do NOT use this if x is very large if(x==1) return 0; for(int i=2;i*i<=x;++i) if(x%i==0)

2015-03-01 11:47:26 771

10部算法经典著作的合集

10部算法经典著作的合集,很不错哦,适合看算法的同学看。

2014-02-24

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

TA关注的人

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