模拟
文章平均质量分 68
MistKafka
这个作者很懒,什么都没留下…
展开
-
uva327 Evaluating Simple C Expressions (搓代码)
题意:给一个表达式(一行一个), 字母(每个字母出现一次)对应变量(变量初值a = 1, b =2 ...z = 26)。 计算表达式的值, 及各个变量的值。 思路: 刘汝佳说 这属于树的题目。 其实, 直接模拟就行了。 我的思路是, 用一个栈保存符号, 一个变量 表示目前的计算变量。 遇到符号压栈, 遇到变量时: 1.若栈中只有一个符号, 则跟总数count做运行, 符号出栈。原创 2013-07-16 16:51:18 · 1118 阅读 · 0 评论 -
uva11111 Generalized Matrioshkas (模拟 + 栈)
题意:类似于括号匹配, 不过每个数字只能跟自己的相反数匹配。并且, 括号的所有直接子括号的数值之和必须小于它的数值。 思路:用栈模拟, 遇到负数入栈; 正数则与栈顶匹配, 若匹配成功则消去栈顶 , 否则也入栈。栈的元素是结构体, 除了上面的括号自身的数值value外, 还有所有直接子括号的和sum。 在负数入栈前, 要把它的数值加到栈顶(如果empty就不用)的sum, 并判断, 判断完原创 2013-07-25 17:16:22 · 1002 阅读 · 0 评论 -
uva673 Parentheses Balance(模拟+栈)
题意:判断给定的括号是否匹配平衡。 思路:用栈来模拟 遇到'(' 或'['的时候入栈, 遇到 ')'或']'跟栈定匹配。匹配成功则栈顶出栈。 最后栈空则括号平衡。陷阱: 小心))))))))))】】】】】】】】括号组 算法复杂度: 有几个符号就要入栈、匹配几次, 所以是o(N) 思路: #include #include using namespace std;原创 2013-07-25 19:13:27 · 2617 阅读 · 0 评论 -
uva540 Team Queue(模拟:队列)
题意:有n个队伍。 对于每个ENQUEUE x 命令。 如果x所在的队伍已经在队列中, 则x排在队列中它的队伍的尾巴, 否则排在队列的末尾。 可以理解为队列中的队列的味道。 思路:用一个team[]数组, 来标记所有数字所在的队列。 queue que[1000], 由于组数最多有1000组, 也就是最多有1000个子队列, 如果你在第0组, 把你放到大队列中, 只要把你放到que[0原创 2013-07-25 19:41:21 · 3419 阅读 · 0 评论