自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李硕

C/C++编程

  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

原创 《算法竞赛-训练指南》第一章-1.23_LA 3695

想死的心都有了,一只都不在状态啊今天!浪费时间浪费清楚,可耻!不知道怎么的,内心好烦躁,一直静心不下来呀!算了,晚上好好刷题吧,昨天的一场比赛,自己什么都没做出来,看了解题报告觉得写的飘忽飘忽的真没意思,不如《算法竞赛》这本书上讲的好。所以,不会的题目我也懒得去学习了,还是学习这上面的知识点吧,但是真的有点慢,学的太慢,所以不行,还得加快速度。描述一下这个题目,就是给出平面

2013-07-24 17:21:15 700

原创 最长子序列

今天有道题目,自己思路非常的明显,但就是做不出来,不觉感到自己的水平真的很差。主要是基础没有打好啊。基础的打法,当然就是时常复习,领悟以前的知识,然后努力的,新奇的创造新的算法思路。最长子序列,这是老的知识点了,以前双重循环好像做过,但是已经忘了一干二净了,这是个贪心的思想。首先,明白一个算法,我们就要想着,我们是怎么样用我们的大脑做出这样的简单的题目呢?我老早就在以前的文章上,让自己

2013-07-23 23:05:00 900

原创 HDU-4602

诶,其实自己在这种推规律上面的题目非常的陌生,基本上很长时间才能做出来,主要的就是自己列举的例子少,然后就是做的题目少,自己没有过多的思路想问题。燥。拿出解题报告的解释吧。我们可以特判出n 对于1 情况考虑: 第一种情况,被选出的不包含端点,那么有(n – k − 1)种情况完成上述操作,剩下未被圈的点之间还有(n – k − 2)个位置,可以在每个位置断开,所以共

2013-07-23 21:35:07 961

原创 《算法竞赛-训练指南》第一章-1.22_LA 3209

这道题目也蛮好的,是求满足条件最大子矩阵的,用到的方法非常的独特。这道题目容易想到的是暴力,枚举每个点,以每个点作为起点在枚举边长,这样的操作肯定超时,而题解中给的方法就非常的棒了,把每个点的周围状态压缩一下,压缩成一个带上下左右的结点来表达周围的状况,例如up[i][j] 代表的就是以这个点的周围的矩形最大高度,left[i][j]表示这个矩形能到的最左边的左边, right[i][

2013-07-22 21:56:07 886

原创 《算法竞赛-训练指南》第一章-1.21_LA2678

其实这道题目算是一到水题哈,但是由于自己是菜鸟中的小菜鸟中的小菜鸟,所以也是没有独自做出来哈。题目的描述是这样的,给你N个数字的排列,问你最小的连续子序列的长度,满足和大于等于K。我的思路是这样子的,先每位求和存起来,然后再来个两重for循环,解不出。数据太大,时间要求过不了。其实就再也没有想下去了。我觉得这样的学习是不对的。静不下心来,无法开动自己的脑筋,这样学习的知识点

2013-07-22 20:26:35 759

原创 《算法竞赛-训练指南》第一章-1.20_LA 3905

本来题目都是写好了的,但是因为今天LA不能判题,所以就一直没有写分析,也怕自己写了交上去过不了。昨天断了一天的网也没有做题目,今天也是不怎么状态好,因为同学有人从广州回来投奔我这了,我在一直想办法帮他弄东西。不说那么多了,生活富有挑战点好,但是就是状态不是很好,耳朵一直在嗡嗡嗡,也不知道是怎么回事,很难受。题目的大概意思是这样子的,马上要有场流星雨了,然后有个相框,每个流行都是不同

2013-07-22 19:53:37 978

原创 《算法竞赛-训练指南》第一章-1.19_UVa 11549

这是道比较简单的题目,主要就是hash范围大,自己没有办法解决,但其实也是可以解决的,用map,或者什么的,都可以解决,但是自己就是没有好好的去想。简单的hash大数据,如果是key是int类型的话,直接用个set表就行。然后其余的处理其实真的很简单。但就是自己不努力思考导致的。简单的介绍下这道题目的意思:一个旧电脑,屏幕只能显示N个数字,现在给你一个数字,每次求平方,溢出就只要最大的

2013-07-20 20:29:43 728

转载 stringstream的用法详解

使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int

2013-07-20 11:21:52 1781

原创 《算法竞赛-训练指南》第一章-1.19_UVa 11549

这个题目直接就让我给AC了。刚开始的时候还在思考用不用优先队列,但是优先队列是需要排序的,而这道题目明显是不能排序的。所以就想别的方法,发现最优解的求法:首先遍历所有的数,每个数求出他减去其他的数的一个最大值,然后求出这所有的数的最大的值的最大值,我们可以开两个数组,分别求出到i位置的最大值和最小值,最大值减去最小值就是最大值,然后再遍历所有的最大值求出最大值的最大值。贴出代码:

2013-07-20 10:28:57 751

原创 《算法竞赛-训练指南》第一章-1.17_UVa 11462

我就说,这本书上都是些经典的题目,怎么可能出那么简单的题目,应该是有他目的的。果然,这道题目,用系统函数的sort能过,但是572ms,用我写的hash也能过476ms。但是如果用书本上的解题技巧,那就是快速的过了,162ms。这差距的时间还是蛮大的!数据量一般达到百万之后用这个快速的输入输出函数就非常的快了。不错,还是长见识了。这道题目的代码到是没有什么意思,我把我的输入

2013-07-20 09:04:44 803

原创 《算法竞赛-训练指南》第一章-1.16_LA 3177

这道题目很有意思。但是我就是错的非常离谱,就差拿着题解一句话一句话的去对照了,不,其实我已经对照了的。首先说一下这个题目的意思,就是说有N个塔防的士兵,他们分别相邻,1和2和N相邻,2和1和3相邻。现在每个塔防的士兵要奖品,问题是你发的奖品使得每个相邻的士兵不具有相同的奖品。这个刚开始一看,没思路,是一道非常难的题目。看了题解,也就懂了。自己的智商不高,怪不了别人那。你

2013-07-19 21:58:21 884 1

原创 《算法竞赛-训练指南》第一章-1.15_LA 3902

这道题目我真的有点泪奔了!写了整整一下午才A掉,这是一道比较考察综合知识的题目,要求你对DFS,要求你对模型的建立,要求你对图的掌握要非常熟练。如果是不熟练的话,你是写不出来的。这个题目的意思是,给你N个结点,代表着客户端和服务端,客户端仅为这个无根树的叶结点时,其余的就是服务端了,但是有一个是发射信号的最终客户端,就要求着,如果有客户端距离服务端太远(距离超过所要求的K)的话,就

2013-07-19 19:11:42 752

原创 《算法竞赛-训练指南》1.14-UVa 11520

这道题目一次AC,比较简单。很开心。贴出代码:#include #include #include #include #include #include using namespace std;const int start = 'A';char map[15][15];int N;void init(){ for (int i = 0; i <

2013-07-19 11:12:37 751

原创 《算法竞赛-训练指南》第一章-1.13_LA 3635

这道题目好!非常好,虽然自己没有AC。但是,情有可原吧,当然没有AC就是没有AC,但是却是因为自己用了自己写的PI导致没有AC。这个不知道可不可以原谅呢?题意是这样的,有N个pie,有F个朋友,让你把N个pie分成F +1让这些人都吃到一样的体积的pie,当然形状无所谓,但是你总不能这边一块,那边一块。加起来吧。自己一想,这不也是求最大值么?果断二分答案啊。这不就一思考就想

2013-07-19 10:18:57 731

原创 《算法竞赛-训练指南》第一章-1.12_LA 3971

这道题目非常的不错!就是你看着非常有思路也想作对的,但是其中就是给你设置了很多的陷阱让你做不出来,这道题目对于算法知识很扎实的人来看,应该是一道水题,但是对于我这种算法知识一点都不扎实的人来说,这题做出来就出奇了!这题是一个综合的题型,考察到的知识点分别有:其一、vector的运用,一个vector量是一个链表型的数组,但是如果开多一点,一个vector的数组,那可就是一个邻接表了

2013-07-18 22:45:14 801

原创 test1

public String strrev(String s) { StringBuffer buf = new StringBuffer(); for (int i = s.length() - 1; i >= 0; i--) { buf.append(s.charAt(i)); } String str = buf.toString(); return str; }

2013-07-18 21:08:22 745

原创 《算法竞赛-训练指南》第一章-1.11——Uva 10795

真有种想死的冲动,今天极其的没有效率啊。这个汉诺塔的问题一直都没有想通,现在也是模糊不清,主要是心理一直都不在这里。这能咋办?但还是描述一题目:题目是这样一种新的汉诺塔,也是只有三个柱子,开始题目都没读懂,都不知道有几个盘子。然后是告诉你哪个柱子上起初有几个大小怎样的盘子,这里要弄清楚,是按照从大到小排列,不然的话,出这个题目一点都没意思,开始我还在纠结这个问题,我晕。然后有两种状态,

2013-07-18 17:14:31 644

原创 经典问题-汉诺塔(hanoi)

我认为如果一个人是为了学习知识而学习知识,那么就算做题没有别人做的多,牛,那么他也是成功的。因为他学知识始终是为了丰富自己的大脑,让自己成为一个更合格的人。这个知识点,我做题真的不少了,都是关于汉诺塔的问题,但一次也没有真真正正的去想过这个问题,这是个很好的问题,很古老的问题,期间也有很多传说,比如说,在一个印度的古庙里面,有一个汉诺塔的模型,在其中一跟针上,串了64个金片,要求每天只

2013-07-18 11:18:35 1624

原创 《算法竞赛-训练指南》-第一章-1.10_UVa 11384

又是独立完成了一道题目,可能在别人眼中很不屑哦,但是自己还是有点小开心的。毕竟自己是用自己的脑袋想出来的问题。题意是这样的:每次可以选任意的数字,任意减去数字,但是最终要得到0,问你需要多少次这样的过程?例如,1,2,3,你可以选择2,3减去2,得到1,0,1,然后再选1,3减去1,得到0,0,0,这期间用了两次。所以,3对应的答案是2。这个解题的过程,首先你是要模拟最少10组

2013-07-18 09:22:22 783

原创 《算法竞赛-训练指南》第一章-1.9——UVa11210

这是个中国麻将的问题,也是道比较麻烦的模拟题目,自己如果没有看题解,私自认为还是写不出来的。因为思想都没有,解决问题的办法也没有。根本就是一片空白,但看了题解,才豁然开朗,原来是这么回事!其中,很重要的一点就是,将你所需要的题目中给出的事例打成表,然后转换成唯一的数字问题,这样找起来,对应起来就简单多了。然后就是枚举,说实话,天天看别人枚举,枚举。以为是一种很简单的方法,但其实

2013-07-17 23:07:13 767

原创 《算法竞赛-训练指南》第一章-1.7——UVa 11464

这道题目非常的好,自己也遇到了很多类似的题目,都是TLE过去了,这是一种方法。自己应当掌握的这种数据量不大但是枚举可以解决的问题。这题的巧妙之处是这样的。其一、如果枚举那些‘0’点,肯定会超时的。最多的‘0’是有15*15 = 225,那也就是需要枚举2^225次方。这肯定就超时了。所以,这是枚举方法的不对。其二、重要的是你能否发现这里有个技巧,你枚举的是正确的结果,所以你只用枚举

2013-07-17 20:15:43 650

原创 《算法竞赛-训练指南》第一章-1.5_UVa 10881

这道题目也是非常有意义的。题目描述是这样的,一群小蚂蚁在一个竹竿上爬啊爬。遇到了另外一只蚂蚁的时候他们就碰头了,一碰头他们原来走的方向就变成相反的方向。如果按照模拟题目来做的话,好像能做,但是我是个小菜鸟,敲出来之后发现不能成功,有很多地方实现不了,一会看看别人的代码,有没有人用模拟写。现在我要说的是算法书上说的方法,很新奇,也很理智呀!这就是深度的思考,和随便看看的人的区

2013-07-17 09:30:42 659

原创 《算法竞赛-训练指南》第一章-1.4_LA 3708

这样都给我过了。可见这也是到不怎么样的题目呀。其实,有些实现出来了还就真能过。这道题目的思想就是,以一个已经建立的坟墓做为公共的起点,然后移动墓地雕像的时候,就每次逼近比较,如果是每次逼近的时候距离在减小,那么可以,继续逼近,一旦出现逼近过头了,并且结果比你不过头的时候还大,那就停止吧,就要这个结果吧。然后就是暴力解决。直到解决完所有的雕像。贴出代码:(写的不好)#includ

2013-07-16 22:07:16 613

原创 增快输入速度的scanf

今天写一个可以增快读入速度的scanf,说是能够加快速度没有实践过,也不清楚。但是一个很大的缺点就是没有办法读入负数,只能读入正数。贴出代码:#include #include #include #include using namespace std;int my_scanf(){ char a; int num; while (a = getchar(), !

2013-07-16 20:54:47 1259

原创 第一章-1.2(UVa-11729)

比较简单的一道贪心题目,看代码:#include #include #include #include #include using namespace std;struct Soldier{ int bri; int com;}s[1011];bool cmp(const Soldier A, const Soldier B) { if (A.com !=

2013-07-16 14:16:10 866

原创 hdu-1800(map)

什么样的代码都有可能AC,但是区别是你到底有没有从另一种思路中去思考。想这么个难的题目不也让人家用很简单的map就给解决了么?map这个东西是不错的,用于函数的映射,其实你数组也可以映射,但就是一点:数组是线性的,你存可以O(1),但是你找的时候可就是O(n)了。但是用map就不是这样了,找的时候是根据你存入的数据来说的。如果稀疏就会很快。如果是非常密集的话,也是和数组就差不多

2013-07-15 22:55:00 829

原创 hdu-4334(hash)

这道题目和上午做的那道题目一样也是用的hash方法解决,'百元买百鸡'的问题。发现了只要是这种问题用while (f[p] && g[p] != key)这种hash的方法就可以解决。这期间我又学到了一些基本的知识点,比如说,break只能终止一层循环,对于多层就不行了。这个我居然一直都不知道,这说明什么,自己走的弯路,错路还是太少,或者是自己刚开始学习的时候就没有意识到这个问

2013-07-15 22:16:39 869

原创 hdu-1496(hash)

hash表的作用还是很明显的。大家看来hash表的主要作用就是用空间上的便利性来代替时间上的便利性。那么hash好像能够解决所有的暴力枚举的‘百元买百鸡’的问题。还是要学习一下hash的冲突处理方法,因为以后可能会遇到内存开不出来,而数据又是散列的时候的问题,这个时候就要求我们用到冲突处理了。hash是一种方法,是一种思路,所以必须掌握。贴出代码:#include #

2013-07-15 09:54:32 827

原创 hdu-1425(排序||枚举)

排序也能过去,好像用C++提交题目比G++要快上许多,300毫秒吧,一会就会去百度问一下的,这个还是比较有用的呀。贴出两个代码,是水题。但是学hash呢,没办法:#include #include #include #include #include using namespace std;int a[1000011];bool cmp(const int a, c

2013-07-15 08:50:50 771

原创 二分查找

看以个论坛,说很少有人一次性就把二分查找写正确,觉得很不可思议。然后自己就试着写写。然后自己就惊讶了,自己写的什么对不是。而作者是正确的,确实自己缺少严谨的精神,大部分人也是。自己太想当然了,认为对的就瞎敲上去了,其实真正对与不对,自己根本就没有深究。其实,不管是大的题目还是小的题目,重要的是你有没有仔细推敲,将所有的情况都列举出来,如果就想当然的觉得是这样的,那么你很可能没有

2013-07-14 11:14:57 802

原创 HDU-1312(red and black)

其实,以前是不知道有些小范围内的BFS是可以用递归来写的。写起来也是非常的方便的,也不知道多大的范围用递归写就会超栈,但是这种思路还是值得提倡的。一会在用BFS写一下,好久没有写过了。贴出代码:#include #include #include #include using namespace std;char G[22][22];int H, W;int

2013-07-13 22:11:38 927

原创 POJ-1664(放苹果)

最基本的组合数学的题目我却墨迹了半天,十分的没有效率。不知道怎么办了都,一定要提高效率,要不然真的不行。放苹果Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 23439 Accepted: 14873Description把M个同样的苹

2013-07-13 17:49:10 858

原创 逆波兰式的递归写法

逆波兰式,又叫做后缀表达式。可用的可能性并不是很大;但是自己知道就好:#include #include #include #include #include using namespace std;char s[11];double exp(){ scanf("%s", s); switch(s[0]) { case '+': return ex

2013-07-13 15:37:35 1494 1

检测计算机是否可以虚拟化

这是在你安装了虚拟机之后发现自己的电脑不能够正常的装系统,这个时候你就可以看看你的虚拟技术是不是都是开着的

2013-11-05

数据库系统教程课后答案-第三版(施伯乐)

数据库系统教程第三版的课后答案,我做成了pdf版本,仅供大家参考

2013-06-13

空空如也

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

TA关注的人

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