线性表
Ziiyan
这个作者很懒,什么都没留下…
展开
-
UVA - 442 Matrix Chain Multiplication
题目大意:给出 n 个 矩阵名 行 列,然后给一些式子,求每个式子需要经过多少次计算(乘和加),括号内先算。解题思路:首先要对矩阵乘法有一些了解,数学渣表示百度了很久。 A(r*c)、B(r*c)两个矩阵能否进行乘法运算的充要条件是是否满足 A.c == B.r,如果满足,则会得到矩阵C(A.r*B.c),这次运算进行的乘法的次数是 A.r*A.c*B.c。 知道这个之后就简单了,创建一个矩阵类原创 2016-07-23 09:04:00 · 241 阅读 · 0 评论 -
UVA - 11111 Generalized Matrioshkas
题目大意:俄罗斯套娃,负数在前正数在后,表示该尺寸的娃娃,中间包含的数字是该娃娃里包含的小娃娃,要保证里面的娃娃总尺寸不大于外一层,问所给的数据是否正确。解题思路:定义一个能储存尺寸和能容纳大小的结构体,创建这种类型的栈,负数入栈,正数时,若还能包含,则出栈并且减去相应尺寸,最后栈空则表示正确。#include<iostream>#include<cstdio>#include<cstdlib>原创 2016-07-23 09:04:17 · 257 阅读 · 0 评论 -
UVA - 11234 Expressions
题目大意:一个表达式,可以用栈来处理,同时可以用队列来处理。现在告诉你用栈处理的表达式顺序,求其用队列表示的顺序。几种操作数为小写字母,操作符为大写字母。解题思路:采用栈来模拟,则为树的后序遍历,而用队列表示的是其层次遍历的逆序输出。所以根据后序遍历建树,再层次遍历该树,逆序输出。即遇到小写字母就建立一个只有根节点的树,并将该地址入栈。遇到大写字母,就建立一个根节点为该大写字母,然后从栈中取出两个地原创 2016-07-23 09:05:06 · 238 阅读 · 0 评论 -
UVA - 10050 Hartals
题目大意:给 T 个样例,连续 N 天,从周日开始,P 个队伍,每个队伍罢工的日子是所给队伍数字的倍数,多个队伍在同一天罢工只算一次,且周五周六不算,问罢工天数。解题思路:模拟,把罢工天数置为 1,每周五周六置为 0,最后扫一遍。#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath原创 2016-07-26 19:59:48 · 228 阅读 · 0 评论 -
UVA - 540 Team Queue
题目大意:t 个队伍排队,若队伍中已经有自己队伍的人,则排到这个人的后面,若没有,排到整个队列的后面。解题思路:模拟,映射把每个人和队伍号对应起来,定义两个队列,一个排队,另一个记录某个队伍已排人数。本来是自己写数组模拟的,TLE,看了小紫学 STL。#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#in原创 2016-07-26 20:00:17 · 288 阅读 · 0 评论 -
UVA - 101 The Blocks Problem
题目大意:操作积木。有 0~n-1 个积木,初始状态是并排横放。有四种操作:move a onto b,将 a、b 上的方块放回原位然后将 a 放在 b 上;move a over b,将 a 上的方块放回原味然后将 a 放在 b 所在位置的最顶上;pile a onto b,将 b 上的方块放回原味然后将 a 及其上所有的方块放到 b 上;pile a over b,将 a 及其上所有方块放到 b原创 2016-07-26 20:00:39 · 241 阅读 · 0 评论 -
UVA - 10152 ShellSort
题目大意:输入 n 串字符和目标顺序,每次可以选择一串字符置于最顶端,目的是将输入的字符串变为目标顺序,输出每次选择置于顶端的字符串。解题思路:对比当前状态和目标状态,设置两个指针同时从底部向上扫,相同时同时向上 +1,否则当前状态 +1,当前状态扫完后将目标状态未扫到的倒序输出,即需要选择的字符串。 侵删。UVa 10152 - ShellSort by 小白菜又菜 这个博主处理的太好原创 2016-07-21 20:51:23 · 228 阅读 · 0 评论 -
UVA - 673 Parentheses Balance
题目大意:匹配括号。空行也输出 Yes 注意这种:([(])) ——> No解题思路:左括号入栈,右括号出栈,最终栈空 Yes 一开始想用计数偷懒,但是发现太天真了,([(]))这种情况无法解决= =#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<ct原创 2016-07-21 20:52:07 · 219 阅读 · 0 评论 -
UVA - 133 The Dole Queue
题目大意:N 个人围成环逆时针编号,逆时针从 1 开始数第 m 个出列,顺时针从 N 开始数第 k 个人出列,若数到同一个人,出列一次。下一轮从当前位置开始数,直至所有人出列。输出编号,宽度 3。解题思路:编号,循环查找,下标到 0 时改为 N,为 N+1 时改为 1,使数组头尾连接。出列后编号改为 0,计数时跳过,注意要两个都找到再判断是否相同,输出。#include<iostream>#inc原创 2016-07-21 20:47:44 · 227 阅读 · 0 评论