自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

算法虐我千百遍

我待算法如初恋

  • 博客(57)
  • 收藏
  • 关注

原创 uva 1543 Telescope

终于找到一点自信,没有看别人题解ac这道lrj紫书上的题目,一旦想到用海伦公式其他的就很简单了,我发现用递归写dp,真的比循环写dp要容易些。主要思路就是dfs函数中的循环语句。其实这道题目也可以看做搜索类的题目,状态转移方程式是dp[i][j][n]表示在i,j点中取n个节点的最大面积(i,j必取),dp[i][j][n] = max(dp[k][j][n-1]+area[i][k][j]) 其

2017-01-08 23:25:20 400

原创 hdu 1506 Largest Rectangle in a Histogram [好题]

这道题目看似很容易,找到比当前边i长的边且位于整个数组的最左边,存储在l[i],同理比当前边长且位于最右边的存储在r[i],于是我照做了,果断TL。。。所以需要优化,这道题目有点像并查集,如果当前边i比左边的边i-1短,那么就可以把左边边的l[i-1]赋给它,其实就是这样一个思路。学到了!这题真棒!题目链接:https://vjudge.net/problem/HDU-1506#inclu

2017-01-05 23:33:05 298

原创 hdu 1505 City Game

这道题目说是动态规划,但是感觉上更加靠近求最大矩形那个套路也就是hdu1506那道题目,有时间再刷吧,真的要考试了,不浪了,思路就是遇到一行中连续的1的时候,比如在第i行[s..e]区间中都是1,那么有是s题目链接:https://vjudge.net/problem/HDU-1505#include #include #include using namespace std;

2017-01-05 13:13:36 446

原创 hdu 1087 Super Jumping! Jumping! Jumping!

vjudge今晚不知道怎么了,抽风了一段时间,于是我接着复习去了,结果又不想复习再一连就连上来了,算了刷刷水题,涨涨自信吧。记忆化搜索dp,思路不说了,注意一下longlong不要溢出就可以。题目链接:https://vjudge.net/problem/HDU-1087#include #include #include using namespace std;const

2017-01-04 23:34:00 307

原创 hdu 2571 命运

题目大意:在一个迷宫中从出发点以一定的规则去走,走到迷宫的出口,其中迷宫中的每个格子有一定量的数值,求走出迷宫之后积累的最大数值。还是同样的基(shui)础(shui)题,没有什么难度,还是同样用dfs去做,把当前的值权当做设置为X,用dp数组记录已经确定的最优的结果,跟着题目中给的状态一步一步转移就可以!一遍ac。题目链接:https://vjudge.net/problem/HDU-2

2017-01-04 01:13:16 424

原创 hdu 2599 Robberies

这道题目我也是无语了,自己跟智障一样。非常明显的01背包题目,但是要注意的是这个概率是相乘出来得到的逃脱概率而不是直接相加的,同时最后要注意精度,我也是看了眼界,就是因为这个WA3次。题目链接:https://vjudge.net/problem/HDU-2955#include #include #include using namespace std;const int i

2017-01-03 23:28:49 383

原创 hdu 1003 Max Sum

今晚把自己的编辑器给折腾了一下,耽误了不少时间,依旧是按照网上大神给出的线路一点一点的练习。这道题目还是水,状态转移方程是dp[i] = max(dp[i-1]+a[i],a[i])得到结果之后再搜索一遍就好,这道题目还要求求出其实位置,末尾位置其实已经知道了,在求其实位置的过程中我采用了遍历的方法。题目链接:https://vjudge.net/problem/HDU-1003#in

2017-01-03 21:52:46 385

原创 hdu 1176 免费馅饼

又是一道套路水题,思路就是用dp数组记录状态,把当前状态的值相当于设置为X,然后依次返回最终求得初始值X,其中已经经历过的状态已经记录就不会像直接递归那样耗费太多时间,这就是dp的思想。题目链接:https://vjudge.net/problem/HDU-1176#include #include #include using namespace std;int f[3] =

2017-01-02 23:37:22 1166

原创 hdu 2084 数塔

入门水题,做一做涨涨自信还是很好的。。。题目链接:https://vjudge.net/problem/HDU-2084#include #include #include using namespace std;const int maxn = 105;int G[maxn][maxn];int n;int dp[maxn][maxn];int f[2] = {0,-

2017-01-02 23:00:53 308

原创 hdu 3466 Proud Merchants

这道题目真是开了眼界,厉害厉害,刚开始直接把q排序了,直接WA,看来神牛的解答之后才明白了要按照q-p去排列,仔细想想看,考虑特殊情况如果q-p=0的时候就是普通的01背包,按照q排肯定是有问题的,但是按照q-p去排其实就是在数组跟新的过程的中影响状态的数目,q-p越大,那么影响后面状态的数目就越大,然而具体的数学证明真的不会,只是用特殊的例子自己推演了几遍。。。题目链接:https://vj

2017-01-01 18:10:39 356

原创 hdu 2639 Bone Collector II

这到题目的基本思路就是再开一维数组,dp[i][j][k]代表前i个物品在j重量下的第k解,那么dp[i][j][k]可能的取值有dp[i-1][j][1..k]和dp[i-1][j-w[i]][1..k]+v[i]两个来源,这样只需要将上面两个来源按照大小依次排进dp[i][j][k]之中,同时注意排重操作就可以。题目链接:https://vjudge.net/problem/HDU-263

2017-01-01 14:11:47 323

原创 hdu 2602 Bone Collector

这是一道送命题,连这种果题都要WA我是多菜啊,但也还好做了这题,基础还是重要的,一道一道的来,循序渐进,加油!题目链接:https://vjudge.net/problem/HDU-2602#include #include #include using namespace std;const int maxn = 1005;int v[maxn] , w[maxn];in

2016-12-31 23:23:12 213

原创 hdu 1171 Big Event in HDU

这个题目一眼就知道出题者的意思,思路秒杀,但是没有用一维数组的时候居然会超时我也是很无语,好想用一维数组或者滚动数组真的可以有效降低时间复杂度之前的常数,大概跟计算机中的读取数据的方式应该是有关系的,看来一维数组和滚动数组还是要多多练习。题目链接:https://vjudge.net/problem/HDU-1171#include #include #include using

2016-12-31 22:20:00 294

原创 hdu 2546 饭卡

我靠,这题目完全高头昏了,看了题解之后感觉为什么这么简单。。。看来我还是对01背包不是很敏感,还需要大量的练习,主要思路就是用5元买价值最大的物品,剩下的sum-5买n-1件物品中价值最大的,所以就转化为最简单的01背包问题。自己真是菜啊题目链接:https://vjudge.net/problem/HDU-2546#include #include #include #includ

2016-12-31 02:05:03 494

原创 uva 10163

题目大意:m个仓库n个守卫,选出最有方案,一看就是01包,然而在边界条件上我算是载了大跟头,看来设置初始数据和边界条件还是非常有学问,即使状态转移方程没有问题初始值设置的有问题也不行,同时这个两次DP真的是人想出来的吗?我愉快的在求最小费用上wa了好多次!看来自己还是菜啊,真是弱渣。题目链接:https://vjudge.net/problem/UVA-10163#include #in

2016-12-29 01:26:55 494

原创 uva 1632 Alibaba

题目大意:lrj306页 习题9-8 想了很久,区间DP的状态意识到了,但是不知道这个怎么和deadline联系起来,最后看别人的解题报告,恍然大悟,原来如此,顺便练了一下滚动数组,还是很有收获的。题目链接:https://vjudge.net/problem/UVA-1632第一份代码没有使用滚动数组,第二份使用了滚动数组,第二份比第一份的速度要上不少。#include #

2016-12-27 13:32:09 436

原创 uva 242 Stamps and Envelope Size

题目大意:见lrj紫书205页,习题9-5,这题目做的真的很爽,刚开始用暴力递归,然后想了一下用dp去做了,真正的对递归和dp的内在联系有了一个稍微的了解。主要思路还是用dp[i][j]表示在加入i件物品费用j是否存在,然后dp完了之后在搜索一遍就ok。题目链接:https://vjudge.net/problem/UVA-242#include #include #include

2016-12-26 00:17:19 482

原创 uva 1630 Folding

Bill is trying to compactly represent sequences of capital alphabetic characters from `A' to `Z' by folding repeating subsequences inside them. For example, one way to represent a sequence `AAAAAAAAAA

2016-12-25 12:29:57 633

原创 uva 10118 Free Candies

出现了一点问题,题目不能复制过来,主要的大意是有4堆糖果,有一个篮子,这个篮子最多可以装5个糖果,从4堆糖果堆的顶部每次取一个糖果,如果篮子中有颜色相同的一对糖果那么就可以装进口袋里,否则口袋达到5个后就结束游戏。https://vjudge.net/problem/UVA-10118上代码:#include #include #include #define max(a,b)

2016-12-25 00:56:18 723

原创 uva 10285 Longest Run on a Snowboard

Longest Run on a SnowboardInput: standard inputOutput: standard outputTime Limit: 5 secondsMemory Limit: 32 MB Michael likes snowboarding. That's not very surprising, since snowboarding is

2016-12-24 01:31:48 288

原创 uva 1629 cake slicing(dp)

A rectangular cake with a grid of m*n unit squares on its top needs to be sliced into pieces. Several cherries are scattered on the top of the cake with at most one cherry on a unit square. The slicin

2016-12-23 11:37:02 393

原创 石子合并+四边形优化

动态规划的经典题目,在遇到状态转移方程像min(w[i][k]+w[k+1][j]+m[i][j])的时候就可以使用考虑使用四边形优化。在i

2016-12-22 22:59:19 571

原创 ccf 模板生成系统 2015年9月第3题

问题描述  成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的基本结构是相同的。例如,对于展示用户信息的页面,当用户为 Tom 时,网页的源代码是  而当用户为 Jerry 时,网页的源代码是  这样的例子在包含动态内容的网站中还有很多。为了简化生成网页的工作,成成觉得他需要引入一套模板生成系统。  模板是包含特殊标记的文本。成成用

2016-12-16 15:54:41 428

原创 uva 10003 cutting sticks

最近动态规划真的是让人头疼,但是越是难的东西越要坚持!先从简单的开始,一点一点地努力,DP基础题。思路就是和刘大爷的一致。#include #include using namespace std;int l,n;int p[60];int dp[60][60];const int inf = 0x3f3f3f3f;void solve () { for (in

2016-12-14 17:46:24 261

原创 uva116 unidirectional TSP 单向TSP (DP)

BackgroundProblems that require minimum paths through some domain appear in many different areas of computer science. For example, one of the constraints in VLSI routing problems is minimizing wire

2016-12-13 20:58:30 989 1

原创 I'm stuck! ccf 2013年12月第5题

问题描述  给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思:  '#': 任何时候玩家都不能移动到此方格;  '+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;  '-': 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#'

2016-12-13 00:24:11 816

原创 高速公路 ccf 2015年9月第4题

问题描述  某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。  现在,大臣们帮国王拟了一个修高速公路的计划。看了计划后,国王发现,有些城市之间可以通过高速公路直接(不经过其他城市)或间接(经过一个或多个其他城市)到达,而有的却不能。如果城市A可以通过高速公路到达城市B,而且城市B也可以

2016-12-09 16:20:43 747

原创 节日 ccf 2015年3月第3题

问题描述  有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。  现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。  提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,

2016-12-09 00:36:19 547

原创 unix环境高级编程第八章读书笔记

终于又拿起了apue这本好书,再读第二遍真的是思路清晰了好多,人生真的是螺旋式的上升啊。哈哈!进程标志:系统中的每一个进程都会有自己的独一无二的进程标志(PID),书上说了几个重要的进程。0号进程是调度进程,1号进程是init进程是系统在自举完成后加载系统所需要的进程,它会依据一些在磁盘上的重要文件,来进行初始化操作。函数fork:这个函数还是很有意思的,它是一个会返回两次的函数,

2016-10-22 21:26:01 309

原创 二叉树的递归和非递归遍历

二叉树的递归与非递归遍历

2016-10-13 12:52:41 291

原创 avl树的c++实现

最近在看c++,同时又在学习算法,所以这里我就用c++来写一些数据结构和算法。由于之前一直对avl耿耿于怀,所以我决定先把这个数据结构搞定,看来数据结构与算法分析上的描述(完全没有代码实现),我之前看了红黑的实现,所以觉得自己还是有信心完成的,于是拿起键盘自己独立实现了一发,事实证明,如果坚持不懈,那么自己能力范围之内的事情,我们一定可以做到!相比较于红黑树,avl树的实现在思路上是简单不少的,比

2016-09-20 14:28:03 587

原创 广度优先搜索的c语言实现

今天下午有时间,好奇图论,所以把算法导论的22章的图论的基础给看了一下,最后那个强连通分量我没看,不知道有什么用处,等到要用的时候再看吧,一切按照兴趣走。晚上花了两个多小时把广度优先搜索的部分给实现了一遍,感觉还是比较棒的。整个过程中的数据结构方面,我没有因为实现方面的原因而浪费空间,尽力实现了这个广度优先搜索。    直接上附上代码,以后直接在代码上注释吧,不过多地写废话了,一些概念都在书上

2016-09-04 21:48:05 15687 2

原创 红黑树的c语言实现

不得不说《算法导论》是一本非常厉害的书!我主要参考了《算法导论》和网络上其他一些优秀的红黑书原理的资料,实现了这个红黑树的代码。很有意义,在整个过程中虽然大部分的时间还是看着书上的伪代码在敲c,但是整个原理已经大致在心中有了一个轮廓,为什么要这么实现红黑树那?前人是怎么想出来的那?路漫漫其修远兮,吾将上下而求索!希望自己有一天也能设计出这么精妙的数据结构算法。这篇文章之后我还将会实现一下avl树,

2016-09-03 16:53:06 1455

原创 堆排的实现和分析

在之前的算法导论的学习当中,我们学习了归并排序算法和插入排序算法。这里我们讨论算法导论第六章中的内容,堆排序。和归并排序相同的这个算法的时间的复杂度都是O(nlgn),和插入排序算法相同的是——堆排序是原址排序的。堆排序是一种十分优秀的算法,但是在实际的生产环境当中,快速排序算法使用更加频繁。快速排序的结构更加紧凑,因而时间复杂度之前的系数因子比较小,而且堆排序的实现比快速排序要更加复杂一些,在堆

2016-08-24 23:57:27 381

原创 算法导论第四章笔记

在之前的第三章中,主要讨论了标准渐进符号,让我们对算法的复杂度有了一个形式上的认识,这一章中讨论分治策略,原谅我大一线性代数现在全部都忘记了,所以这里我就不讨论strassen算法了(应该以后会把这个地方补充起来)。    这一章,作者使用了一个求最大子数组的例子来说明分治策略。分治策略我个人认为它的精髓就是,把大的问题化成较小的问题,当问题足够小的时候,也就成为了基本问题的时候就可以直接求解

2016-08-22 23:43:00 646

原创 算法导论第二章笔记

这一章首先以一个插入排序算法开始,以此为切入点分析算法。书上以伪代码来介绍算法,但是在这里我基本上会用c语言实现一遍,并用自己的语言复述一遍算法的思想。   首先附上插入排序的具体实现。void insert_sort (EleType *arr , int start , int end) { int i; int j; EleType temp; fo

2016-08-21 14:36:48 600

原创 因特网的内部网关协议

我们在之前的学习当中知道了路由表的重要性,但是我们并没有探讨路由表到底是如何生成的,这篇文章,我们就要来探讨一下这个问题。目前因特网采用路由选择协议来来获得路由表中的项目。路由选择协议可以分为两大类,一种是静态路由选择协议和动态路由选择协议。静态路由选择协议主要依靠的是人工设置路由表的方式来设置路由表中的项目,而动态路由选择协议主要是自适应的,适合于大型的因特网,所以我们把主要的目光放在动态路

2016-08-15 23:38:44 2170

原创 《用tcp/ip进行网际互联》第9章 无分类和子网地址扩展(CIDR)

目前IP地址资源紧缺,为了使得IP地址能够高效地利用,所以发明了很多方式来节省或者“创造”出IP地址,这篇博文主要讨论的就是这个方面。第一种——代理ARP我个人对这个东西的理解不透彻,只能谈一些概念了。假设有两个物理网络,但是都被H4这个路由器相连接,假设H1想和H5进行通信,发送ARP报文,由于ARP报文是广播的,所以H4可以将其截获,H4发现它可以把报文转发给H5,所以,它

2016-07-27 23:31:50 488

原创 《用tcp/ip进行网际互联》 第8章 差错与控制报文(ICMP)

首先,说明一下网际控制报文协议(ICMP)的存在理由,由于互联网中存在的都是独立运行的路由器,由于路由器不可能在任何时候都运行的很好,总有时候会出错,而IP协议是不会有差错控制的,那么当问题出现的时候,管理员就很难诊断出相应问题的所在,比如发送方的报文超时,这个时候管理员如何知道问题所在那?是中间的路由器有问题,还是本地硬件有问题那?这个就是ICMP报文存在的理由。ICMP的一个非常重要的特点

2016-07-26 14:35:49 456

原创 unix环境高级编程第七章习题的一些拙见

unix环境高级编程笔记

2016-07-17 11:03:00 1079

空空如也

空空如也

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

TA关注的人

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