
第五章 C++与STL入门 (习题)
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
习题5-3 UVA 10935 Throwing cards away I 卡片游戏
很简单的一道题目,无论是原文还是紫书上的讲的非常清楚!因为刚做了Vector类的例题,所以找了一个简单的Vector习题练练!整体思路就是根据原文描述进行!用到的Vector里的函数:.insert(),在指定位置插入某一个数.pop_back(),删掉数组最后一个数.push_back(),在数组最后插入一个数.clear(),清空Vector相当于数组的初始化!(因为是原创 2015-12-15 17:46:39 · 610 阅读 · 0 评论 -
5-6 UVA 1595 Symmetry对称轴
题目大意紫书和原文都讲的非常易懂清晰,观察给出的数据范围:不超过1000个点,每个点坐标范围在-10000到10000之间!直接暴力求解就可以了!整体思路:因为一撮点要轴对称的话,肯定有一个确定的对称轴,所以可以先找两个点,来确定对称轴,在一个一个扫描所有的点,看看是不是对称!为了方便,可以直接找最左上和最右上的两个点,来确定对称轴!有一个技巧:因为对称轴是要除以二的,不妨原创 2015-12-17 11:08:45 · 587 阅读 · 0 评论 -
5-10 UVA 1597 Searching the Web在Web中搜索
大体题意:输入许多文章,在输入许多命令,按照指定的格式输出文章或者对应的行。文章最多100个,最多总共1500行,命令最多50000个!167510991597Searching the WebAcceptedC++1.0482016-01-25 03:10:22思路:看上去数据量有点小,怎么做原创 2016-01-25 12:16:15 · 731 阅读 · 0 评论 -
5-8 UVA 230 Borrowers图书管理系统
大体题意:借书与还书,还书时要按照题目要求的排序方式进行排序,放书的位置也要输出,所以在放书之前,也得给书架上的书进行排序,放的顺序也得排序。整体思路:可以开个map把书的标题映射到作者,因为标题肯定是独一无二的,但作者可以是重复的,在开两个vector分别记录书架上剩余的书,和要还的书,在记录到临时结构体数组中,分别排序,最后一个一个扫描要还的书就行了。技巧:1.这里我把BO原创 2016-01-24 12:04:20 · 859 阅读 · 0 评论 -
5-7 UVA 12100 Printer Queue打印队列
大致题意:输入一定数量的打印任务,并伴随有优先级,按优先级从大到小的顺序打印,从队首(位置为0)开始打印,发现队后存在一个打印任务的优先级高于自己,则自己放于队后,先打印优先级高的。整体思路:不用想,根据题意,存数据(优先级)用肯定用queue存(当然有很多方法,这是最好想的!),但queue不能根据优先级进行排序,所以要在找一个"容器"能存的数据自动排序,优先队列priority_q原创 2015-12-23 08:02:59 · 694 阅读 · 0 评论 -
5-9 UVA 1596 Bug Hunt找BUG
题意:输入很多行代码,找出这些代码中第一个错误的,代码就是C语言中的数组建立,数组元素的赋值。多组数据用'点'隔开,最后以点结束。好恶心的题,只要类似这种,字符串操作的题目,我都会反感,但没办法,只能耐住性子一点一点找了一下午BUG(T T),越是复杂的题目就得写的越规范,所以可以尝试采用紫书之前提到的“自顶向下,逐步求精”的方法。因为自己在写的过程中,没想整体思路,而是一原创 2016-01-22 22:10:10 · 985 阅读 · 0 评论 -
5-11 UVA 12504 Updating a dictionary更新字典
本来一道很简单的题目,但因为种种细节问题,错了两遍!题意不说了,原文很好理解,但是注意的是,输出按照字典序输出,因为自己英语不好(T T)lexicographically这个单词就自动忽略他了,其实这就是按照字典序输出的意思!哎!整体思路:1.输入2.建立两个map分别是新旧字典,在建立三个vectorout[3]是记录最后三个结果,建立两个vectorcpe_new,cpe_o原创 2016-01-22 02:05:29 · 807 阅读 · 3 评论 -
5-1 1593 Alignment of Code代码对齐
题意很简单,就是把每个单词按照一定格式输出出来。刚看上去比较麻烦,感觉输出好困难,其实仔细看下,就是每一列的单词长度都是一样的,单词不足个数的用空格来补齐,最后一列不输出空格,只输出单词。所以思路就很明确了:1.开一个数组记录每一列单词的最大长度。2.因为单词是有空格分隔开的,所以可以直接用stringstream,这个在第五章开始有讲到的,把单词存进一个vector里,在一个一个输出原创 2016-01-21 18:30:58 · 1464 阅读 · 0 评论 -
5-5 UVA 10391 Compound Words复合词
题目大意就不说了,紫书和原文都讲的很易懂。本来注意到的数据范围,但依然超时了。。。整体思路呢:建立一个26 + 5个数组的set,根据输入单词的首字母存取输入的单词,然后在遍历每一个单词,在循环遍历单词的长度(分割单词),然后再根据分割出的两个单词在set中搜索,搜索直接在相应的首字母的set二分寻找,这样会大大减少时间(其实不分也能过!只是在害怕超时!)#include#inc原创 2015-12-19 22:11:51 · 579 阅读 · 0 评论 -
5-4 UVA 10763 Foreign Exchange交换学生
本来很简单的一道题,却因为自己不细心错了2两次。首先得看清题意:题意是问是否每个学生都可以交换。而不是发现一个可以交换的就行。在一个看清楚数据范围,50W,简单循环扫描肯定会超时的。整体思路:如果n是奇数,直接输出NO,不是的话,把数据按从小打到或者从大到小顺序存到结构体中,在用sort拍结构体,直接扫描n的一半就行了!#include#includeusing namespa原创 2015-12-19 18:46:37 · 628 阅读 · 0 评论 -
5-2 UVA 1594 Ducci Sequence (Ducci序列)
很简单的一道题,直接1Y,本来翘课被抓的失落心情,顿时好转一点点点点。。题意就不说了,原文和紫书都讲的通俗易懂:整体思路:用两个Vector记录数列,第一个记录原始数据,第二个记录计算完成之后的数据,检查是不是都为0,不是0继续循环,直到1000次,保险点可以多加一点!总之不会超时:#include#include#includeusing namespace std;原创 2015-12-17 17:30:43 · 929 阅读 · 0 评论 -
Uva 12333 Revenge of Fibonacci (字典树 + 大数加法运算)
大体题意:告诉你一个长度不超过40的字符串,要求找出最小的斐波那契数列的位置 使得这个字符串是那个斐波那契数的前缀!如果100000项以内的斐波那契数列没有它,输出-1!思路:思路很明显:直接先预处理出来1~100000以内的斐波那契数列来, 只用到了高精度加法,拿字符串模拟即可!然后求出一项来,插入到字典树中,字典树每一个节点的权值代表着以他为终点的前缀 是 斐波那契数原创 2016-10-26 15:39:08 · 656 阅读 · 0 评论