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)\)

UVA题解三的更多相关文章

  1. UVA题解二

    UVA题解二 UVA 110 题目描述:输出一个Pascal程序,该程序能读入不多于\(8\)个数,并输出从小到大排好序后的数.注意:该程序只能用读入语句,输出语句,if语句. solution 模仿 ...

  2. URAL题解三

    URAL题解三 URAL 1045 题目描述:有\(n\)个机场,\(n-1\)条航线,任意两个机场有且只有一种方案联通.现有两个恐怖分子从\(m\)号机场出发,第一个人在机场安装炸弹,乘坐飞机,引爆 ...

  3. UVA题解一

    UVA 100 题目描述:经典3n+1问题在\(n \leq 10^6\)已经证明是可行的,现在记\(f[n]\)为从\(n\)开始需要多少步才能到\(1\),给出\(L, R\),问\(f[L], ...

  4. UVA 10534 三 Wavio Sequence

    Wavio Sequence Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Sta ...

  5. Codeforces 1215D Ticket Game 题解

    Codeforces 1215D Ticket Game 原题 题目 Monocarp and Bicarp live in Berland, where every bus ticket consi ...

  6. 【线段树】Bzoj1798 [AHOI2009] 维护序列

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  7. WC2019 题目集

    最近写的一些 WC2019 上讲的一些题.还是怕忘了,写点东西记录一下. LOJ2983 「WC2019」数树 题意 本题包含三个问题: 问题 0:已知两棵 \(n\) 个节点的树的形态(两棵树的节点 ...

  8. BZOJ4543 Hotel加强版

    题面 $\text{BZOJ}$间接权限题 洛谷的弱化版 题解 三点距离两两相等要满足以下条件: 有一个相同的$\text{LCA}$ 所以如果存在一个点,使得另外两个点在它子树中,距离为$d$,且$ ...

  9. HDU 4514 湫湫系列故事——设计风景线 树的直径

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4514 湫湫系列故事--设计风景线 Time Limit: 5000/2000 MS (Java/Ot ...

随机推荐

  1. BZOJ3509 [CodeChef] COUNTARI 【分块 + fft】

    题目链接 BZOJ3509 题解 化一下式子,就是 \[2A[j] = A[i] + A[k]\] 所以我们对一个位置两边的数构成的生成函数相乘即可 但是由于这样做是\(O(n^2logn)\)的,我 ...

  2. python基础----迭代器、生成器、协程函数及应用(面向过程实例)

    一.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代 ...

  3. 使图片水平并垂直居中的一个Hack

    淘宝的一个前端面试题:使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中. 想起了vertical-align:middle;但是不行,后来才知道还要di ...

  4. C# Emgu CV学习笔记二之图像读写的两种方法

    http://blog.csdn.net/marvinhong/article/details/6800450 图像显示在控件loadPictureBox上 方法一 //读取图像001.jpg Int ...

  5. 在 Ubuntu16.04上安装anaconda+Spyder+TensorFlow(支持GPU)

    TensorFlow 官方文档中文版 http://www.tensorfly.cn/tfdoc/get_started/introduction.html https://zhyack.github ...

  6. Qt ------ 主事件循环与 QEventLoop

    1.事件循环一般用exec()函数开启.QApplicaion::exec().QMessageBox::exec()都是事件循环.其中前者又被称为主事件循环. 事件循环首先是一个无限“循环”,程序在 ...

  7. IIS最大并发连接数

    最大并发连接数 = 队列长度 + 工作线程数 [工作线程数] IIS实际可以第一时间处理的请求数.比如,工作线程数 = 100,一万个连接请求同时涌过来,那么只有100个可以被处理,其余9900个进入 ...

  8. python---Scrapy模块的使用(二)

    出处:http://www.cnblogs.com/wupeiqi/ 一:去除重复URL scrapy默认使用 scrapy.dupefilter.RFPDupeFilter 进行去重,相关配置有: ...

  9. centos7下安装mysql5.7.24

    第一步:下载rpm包 sudo wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-rel ...

  10. Handlebars 使用

    引入js <script src="js/json3.min.js"></script> <script src="js/handlebar ...