zoukankan      html  css  js  c++  java
  • UVA题解三

    UVA题解三

    UVA 127

    题目描述(52)张扑克牌排成一列,如果一张牌的花色或者数字与左边第一列的最上面的牌相同,则将这张牌移到左边第一列的最上面,如果一张牌的花色或者数字与左边第三列的最上面的牌相同,则将这张牌移到左边第三列的最上面。只有最上面的牌可以移动,如果同时有多张牌可以移动,则先移动最左边的牌,若某张牌可以移到左边第三列的上面,则优先移到左边第三列。若某个时刻某一列为空,则那一列后面的列往前移动。求最后还剩多少列,以及每一列有多少张牌。

    solution
    直接栈模拟。因为每张牌最多前进(52)次,乘上每次查找哪一张牌可以移动,所以时间复杂度是三次方的。
    时间复杂度:(O(n^3))

    UVA 128

    题目描述:输入一个字符串,将每个字符转化为对应的ASCII码的八位二进制数,按顺序串成一个超长的二进制数,现在要在这个超长二进制数后面加上一个十六位的二进制数,使得最终的二进制数能被(34943)整除。求出这个十六位二进制,输出对应的十六进制。

    solution
    将那个超长二进制数对(34943)取模,然后(34943)与余数的差就是答案,注意(0)的情况。
    时间复杂度:(O(字符串长度))

    UVA 133

    题目描述(n)个人围成一圈,顺时针从(1)(n)编号,某个面试官从(1)开始顺时针数数,数到(k)的倍数的人出局,同时另一个面试官从(n)开始逆时针数数,数到(m)的倍数的人出局。如果数到同一个人,则只有那个人出局。直到最后一个人出局为止。输出每一轮出局的人。

    solution
    简单模拟,可以用双向链表优化,但数据比较小,可以不优化
    时间复杂度:(O(n^3))(O(n^2))

    UVA 136

    题目描述:将质因子只有(2, 3, 5)的数从小到大排序,第一个数是(1),然后才是(2),输出第(1500)个数

    solution
    打表。(20)秒出结果。

    UVA 138

    题目描述:若一个数(n),存在一个数(m),使得(1)(m)的和等于(m)(n)的和,那么称(n)为神奇的数,输出前十个神奇的数以及他们对应的(m)

    solution
    打表。这里有一个技巧,就是n不断递增的同时,m也是递增的,所以可以双指针移动。2秒出结果。可以直接交这个程序,不打表。

    UVA 143

    题目描述:平面上给出一个三角形,问三角形里有多少个点。

    solution
    因为数据比较小,所以可以枚举点,然后判断点是否在三角形内,可以用等面积法,也可以用射线法。也可以进行优化,只枚举(x)坐标,然后算出(y)的范围。要注意的是这个三角形可能会退化为一条直线,所以枚举的点只能在三角形的特征矩形(能围住三角形内所有点的,边平行于坐标轴的最小矩形)里。
    时间复杂度:(O(询问次数*坐标范围))

    UVA 146

    题目描述:规定了每个小写字母出现的次数,可以生成很多个字符串,将这些字符串按字典序排序,先给出一个字符串,问这个字符串的后继,若无,则输出No
    Successor

    solution
    用笔模拟一些构造的过程,容易得出结论:从右往左找到第一个比右边字母要小的位置,然后在它的右边找到比它大的最小的字母替换它,最后将该位置右边的字母从小到大排序,得到的字符串就是后继。若找不到这个位置,则无解。
    时间复杂度:(O(26*字符串长度))

    UVA 147

    题目描述:给出一种货币的所有面值((m)种),给出一个数((n)),用这种货币来表示这个数,输出方案数。

    solution
    完全背包。
    时间复杂度:(O(nm))

    UVA 151

    题目描述:有(n)座城市,求一个最小的(m),使得从(1)开始数,然后往后数(m),循环数,最后一个数的数是(13)

    solution
    穷举(m),模拟,类似于UVA 133,如果最后一个数是(13),则输出。
    时间复杂度:(O(m^2n^2))(O(m^2n))

    UVA 156

    题目描述:给出(n)个单词,找出哪些单词不能由其它单词重新排列得到。

    solution
    先记录每个单词的每个字母出现次数,两两枚举,若两个单词的每个字母的出现次数都相同,则这两个单词可以通过重新排列得到。
    时间复杂度:(O(26n^2))

  • 相关阅读:
    Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
    用户画像——“打标签”
    python replace函数替换无效问题
    python向mysql插入数据一直报TypeError: must be real number,not str
    《亿级用户下的新浪微博平台架构》读后感
    【2-10】标准 2 维表问题
    【2-8】集合划分问题(给定要分成几个集合)
    【2-7】集合划分问题
    【2-6】排列的字典序问题
    【2-5】有重复元素的排列问题
  • 原文地址:https://www.cnblogs.com/GerynOhenz/p/7675425.html
Copyright © 2011-2022 走看看