
刷题
刷题
1hdmx1t
这个作者很懒,什么都没留下…
展开
-
螺旋折线 详细题解
如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。 例如dis(0, 1)=3, dis(-2, -1)=9 给出整点坐标(X, Y),你能计算出dis(X, Y)吗?【输入格式】X和Y 对于40%的数据,-1000 <= X, Y <= 1...原创 2020-02-21 21:49:18 · 500 阅读 · 0 评论 -
历届试题 青蛙跳杯子
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T448bfs题目,套模板即可详细可看bfs见解和模板。要点:我们读题可以知道:空少青蛙多,如果我们遍历每只青蛙能否进洞,应该超时。虽然我们应该遍历洞,看这个洞哪些青蛙可以进。#include <iostream>#include <cstdio>#inc...原创 2020-02-12 21:04:18 · 232 阅读 · 0 评论 -
试题 历届试题 小数第n位
题目链接http://lx.lanqiao.cn/problem.page?gpid=T456要考虑无限循环小数的情况,否则会超时。我们根据经验可以知道无限循环小数中循环位数的出现不会太晚,一般不会到50位(觉得不保险可以到500)。于是我们可以用两个数组,第一个数组记录前50位小数,第二个数组记录循环位数(从第50位开始,50位我们可以保证循环已经开开始)。然后根据上面思路模拟...原创 2020-02-11 19:17:35 · 234 阅读 · 0 评论 -
Searching the Web UVA - 1597
https://cn.vjudge.net/problem/UVA-1597自己写的总超时,uDebug也全都过了,把自己的代码贴上以后再重新写,看网上的基本都是一种方法。#include &lt;bits/stdc++.h&gt;using namespace std;typedef vector&lt;pair&lt;string,int&gt;&gt; Vector;map&原创 2019-02-19 11:35:57 · 229 阅读 · 0 评论 -
Undraw the Trees UVA - 10562 树的特别先序遍历,递归
题目链接题目大意:根据题目给的树按照题目输出要求输出先序遍历分析:用一个字符串数组将输入存储起来。然后递归输出即可。有一个巨坑,结点不能为‘#’,但题目说可以。#include <bits/stdc++.h>using namespace std;const int maxn = 200+10;string buf[maxn];int cnt;vo...原创 2019-03-08 19:41:53 · 112 阅读 · 0 评论 -
Quadtrees UVA - 297 (四分树,分治与递归Ⅰ)
题目链接题目大意:题目大意:四叉树,给 32 × 32 的格子涂色,p 表示将当前格子分为四个象限,根据 1、2、3、4 象限的顺序处理,e 不上色,f 将当前格子涂黑,问两个图重叠后涂黑的格子数是多少。分析:递归画树,整个正方形分为1024个小正方形存入buf数组中(32*32),值为0为未画过,1为已经画为黑色。画树:自己想不到什么办法,看lrj老师的模拟方法,太巧了。以当前边...原创 2019-03-03 21:43:13 · 229 阅读 · 0 评论 -
Abbott's Revenge UVA - 816 bfs迷宫最短路径 ************
题目链接题目大意:有一个最多包含9*9个交叉点的迷宫。输入起点,离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可)。这个迷宫的特殊之处在于:进入一个交叉点的方向(用NEWS这四个字母分别表示北东西南,即上右左下)不同,允许出去的方向也不同。例如,1 2 WLF NR ER 表示交叉点(1,2)(上数第1行,左数第2列)有3个路标(字符“”只是结束标志),如果进入该交叉点时的朝向...原创 2019-03-06 19:12:24 · 127 阅读 · 0 评论 -
Xiangqi UVA - 1589 超细节模拟题:下象棋 80行
题目链接题目大意:考虑一个象棋残局,其中红方有n(2<=n<=7)个棋子,黑方只有一个将。红方除了有一个帅(G)之外还有3种可能的棋子:车(R),马(H),炮(C),并且需要考虑“蹩马脚”,将与帅不能照面(将,帅如果在同一直线上,中 间无其它棋子阻挡时,走子的一方胜)的规则。输入所有棋子的位置,保证局面合法并且红方已经将军。你的任务是判断红方是否已经把黑方将死。 ———...原创 2019-03-09 17:07:10 · 241 阅读 · 0 评论 -
Oil Deposits UVA - 572 图dfs基本练习,递归
题目链接题目大意:输入一个m行n列的字符矩阵,统计字符‘@’组成多少个八连块。如果两个‘@’相邻(水平,竖直,对角),即说明这是一个八连块。输出该矩阵一共有几个八连块。分析:图的深度遍历习题,从每个‘@’开始,如果该字符没被标记,则cnt++,然后深度遍历dfs,遇见相邻的标记。代码:#include <bits/stdc++.h>using na...原创 2019-03-04 16:23:37 · 187 阅读 · 0 评论 -
Ideal Path UVA - 1599 两次BFS理想路径:邻接链表和边集数组
题目链接题目大意:对于一个n个房间m条路径的迷宫(Labyrinth)(2<=n<=100000, 1<=m<=200000),每条路径上都涂有颜色,颜色取值范围为1<=c<=10^9。求从节点1到节点n的一条路径,使得经过的边尽量少,在这样的前提下,如果有多条路径边数均为最小,则颜色的字典序最小的路径获胜。一条路径可能连接两个相同的房间,一对房间之间可...原创 2019-03-10 10:34:16 · 212 阅读 · 0 评论 -
Equilibrium Mobile UVA - 12166 (修改天平:二叉树模拟递归习题)
题目链接题目大意:给出天平,至少修改多少个秤砣可以使天平平衡。分析:如果一个天平平衡,上一层一侧的重量一定为下一层其中一个的二倍。所以用该秤砣的重量*pow(2,层数)代表其权值。当一个天平平衡时,所有秤砣的权值应该相同的。所以我们用总叶子结点数目减去权值数目最多的数目即为最少的修改数量。第一次没用递归,udebug全过了,但光荣超时了。#include <bi...原创 2019-03-14 17:11:35 · 132 阅读 · 0 评论 -
Broken Keyboard (a.k.a. Beiju Text) UVA - 11988 链表模拟
https://cn.vjudge.net/problem/UVA-11988#author=pangda题意:同学的键盘出现了奇妙的故障,所有键都会正常的工作,但是键盘上的Home以及End键有时候会莫名其妙的自己按下。但是盲打很熟练的他一般习惯关闭显示器打字,因为这样很酷。现在他正在打一段文本,假设你已经知道这段文本以及Home和End键会什么时候出现故障自行按下。请你编写一个程序,求出...原创 2019-02-27 12:17:34 · 266 阅读 · 0 评论 -
The Falling Leaves UVA - 699 二叉树先序递归练习
题目链接分析:从数组中间(根节点对应位置)开始向两边递归,即和二叉树先序遍历建树一样,遇见-1则为空子树return。很好的递归练习题。#include <bits/stdc++.h>using namespace std;const int maxn = 1000;int sum[maxn];bool solve(int pos) { int ...原创 2019-03-03 17:00:36 · 147 阅读 · 0 评论 -
Rails UVA - 514栈合法性模拟题
https://cn.vjudge.net/problem/UVA-514分析:题目为栈的先进后出的特性。本题为栈的模拟题。申请一个容器栈来代表车站。一个一个输入出列车厢,当栈顶元素(即要出列的车厢)等于输入车厢时,出栈。如果不相等或者为空栈从1累加进栈直到与输入相等。最后栈空则为Yes。要注意每次要清空栈,没有clear函数,只能pop一个一个清理。代码:#include &lt;bit...原创 2019-02-24 21:41:26 · 97 阅读 · 0 评论 -
The Letter Carrier's Rounds UVA - 814
题目链接:https://cn.vjudge.net/problem/UVA-814题目大意:本题的任务为模拟发送邮件时MTA(邮件传输代理)之间的交互。所谓MTA,就是email地址格式user@mtaname的“后面部分”。当某人从user1@mta1发送给另一个人user2@mta2时,这两个MTA将会通信。如果两个收件人属于同一个MTA,发送者的MTA只需与这个 MTA通信一次就可以把...原创 2019-02-13 21:23:47 · 207 阅读 · 0 评论 -
Trees on the level UVA - 122 找规律模拟题,不需要结构体建树
题目链接分析:刘老师的方法是动态建树,模拟bfs来层序遍历。”投机取巧“这道题也可以ac,找规律即可。思路:定义一个map&amp;amp;lt;string, int, MyCompare&amp;amp;gt; binary;string为括号中的LL,RR等等int为结点的值自定义排序:我们可以发现规律,本题的输入已经将给我们输入了一个二叉树,不需要再建树了。从上到下,左到右LL,LLR除了长度以及符合字典序了...原创 2019-03-01 16:56:12 · 204 阅读 · 0 评论 -
Matrix Chain Multiplication UVA - 442栈的表达式分割模拟
https://cn.vjudge.net/problem/UVA-442分析:考察栈对简单表达式的分割。先将每个矩阵的行和列存入一个map中,键为矩阵名称,值为一个pair里面为矩阵的行和列。我们先把表达式中‘)’前的字母压入栈中,然后从栈顶pop出两个矩阵,计算乘机和,然后将矩阵乘为一个矩阵后再压入栈,依此直到表达式尾部。代码:#include &amp;lt;bits/stdc++.h&amp;gt;...原创 2019-02-26 19:32:14 · 127 阅读 · 0 评论 -
Exchange UVA - 1598 优先队列,模拟
https://cn.vjudge.net/problem/UVA-1598#author=0题意:你的任务是为交易所设计一个订单处理系统。要求支持以下3种指令。BUY p q:有人想买,数量为p,价格为qSELL p q:有人想卖,数量为p,价格为qCANCEL i:取消第i条指令对应的订单(输入保证该指令是BUY或者SELL)交易规则如下: 对于当前买订单,若当前最低卖价(ask...原创 2019-02-26 21:17:04 · 317 阅读 · 0 评论 -
Not so Mobile UVA - 839 二叉树递归
题目链接分析:考察二叉树的递归特性,需要进行递归输入,来判断天平是否平衡,很好的递归练习题。递归为外到内的深入和内到外的回溯,做递归题要清楚在那一层递归中的变量值为多少,返回值时什么。例如本题中的sum参数,为保存本层递归中左右左子树的天平总重量,巧妙地使用引用来改变参数的值。#include <bits/stdc++.h>using namespace std...原创 2019-03-03 13:45:55 · 149 阅读 · 0 评论 -
Updating a Dictionary UVA - 12504 模拟字符串处理
题目链接分析:题目不难,就是map的应用,主要为如何简单的提取字符串中的我们需要的内容。我是遍历一遍字符串,判断是否为数字或字母来提取,然后存入map中。最后分别遍历两个map,比较即可。#include <bits/stdc++.h>using namespace std;map<string, string> dic;map<...原创 2019-03-03 14:49:42 · 127 阅读 · 0 评论 -
Play on Words UVA - 10129 图的欧拉回路
题目链接题意:有一些秘密的门包含着非常有趣的单词迷题, 考古学家队伍必须解决它们才能够打开大门。 因为没有其他方法能偶打开这些门, 所以解决那些迷题对我们非常重要。在每个门上有很多个有磁力的盘子,盘子上面写着单词。 必须重新移动放置这些盘子,让它们形成一个队列:队列中,除了第一个单词,每个单词的开头和上一个单词的结尾字母一样。例如, motorola的后面可以接上acm。你的任务...原创 2019-03-08 16:53:03 · 169 阅读 · 0 评论 -
Ancient Messages UVA - 1103 图的dfs应用,有意思的题
题目链接题目大意:给定H行W列的十六进制数据,每个十六进制数表示4位二进制数,由此形成H行W*4列的二进制图,有6种不同的古代象形文字,在图中以11110000......的形式表现出来,并且与给定的原始图拓扑相等(几个图形,其中每一个可以从其余任一个图形经扭转、弯曲、拉长或收缩得到,而不出现任何点的重叠与断开,它们就是拓扑等价的),要求识别出图中出现的古代象形文字的种类与个数,并...原创 2019-03-04 20:35:41 · 169 阅读 · 0 评论 -
System Dependencies UVA - 506 安装组件,细节模拟,递归,有dfs的感觉
题目链接题目大意:软件组件之间可能会有依赖关系,例如,TELNET和FTP都依赖于TCP/IP。你的任务是模拟安装和卸载软件组件的过程。首先是一些DEPEND指令,说明软件之间的依赖关系(保证不存在循环依赖),然后是一些INSTALL、REMOVE和LIST指令,如表6-1所示。表6-1 指令说明指令说明:DEPEND item1 item2 [item3 …] item1依...原创 2019-03-10 15:50:30 · 121 阅读 · 0 评论 -
Parentheses Balance UVA - 673 栈的应用,空串
题目链接题目大意:括号是否匹配分析:栈的应用即可,但要注意!!空串。只能用getline读取,cin不读取回车,无法读取空串!!#include <bits/stdc++.h>using namespace std;int main() { freopen("i.txt","r",stdin); freopen("o.txt","w",std...原创 2019-03-10 16:52:17 · 84 阅读 · 0 评论 -
Mobile Computing UVA - 1354 (枚举二叉树)
https://cn.vjudge.net/problem/UVA-1354分析:一个个枚举二叉树,计算每个二叉树的最大值即可,二叉树可用数组模拟。枚举二叉树:一次拿出两个结点组成一个子数,递归n-1层即可。要注意一种特殊情况,如图:代码注释很详细:#include <bits/stdc++.h>using namespace std;const in...原创 2019-04-01 20:00:37 · 200 阅读 · 0 评论 -
Fill UVA - 10603 (bfs最短路径)
https://cn.vjudge.net/problem/UVA-10603题目大意:给出三个杯子的容量,开始时只有第三个杯子装满了水。给出目标容量d,求出最后要来回倒出多少升水可以使某个杯子的容量达到d。分析:假设在某个状态:第一个杯子有v0升水,第二个杯子有v1升水,第三个杯子有v2升水,则记该状态为(v0,v1,v2)。把状态想象为结点,倒水的过程为线,则题目便转化为了图的...原创 2019-04-06 16:04:41 · 195 阅读 · 0 评论 -
Spreadsheet Calculator UVA - 215 (拓扑)
题目链接分析:读懂题目后可以看出拓扑的意思,因为形成环会计算不出表达式的值。所有按照拓扑dfs即可。使用一个结构体存储一个点:表达式,值,以及一个bool值判断他是否为数字。比较麻烦的地方便是对表达式的求值,细心模拟!!#include <bits/stdc++.h>using namespace std;const int maxn = 10010;str...原创 2019-03-31 16:02:19 · 195 阅读 · 0 评论 -
Krypton Factor UVA - 129 and Prime Ring Problem UVA - 524 :回溯法的简单应用
Prime Ring Problem UVA - 524Krypton Factor UVA - 129524:分析:枚举排列加上相邻素数判断,根据问题规模可以列一个素数数组来简化判断。当不符合时回溯,符合时深入递归。#include <bits/stdc++.h>using namespace std;const int maxn = 20;int is_pr...原创 2019-03-27 10:15:08 · 115 阅读 · 0 评论 -
Inspector's Dilemma UVA - 12118 (欧拉回路:找规律应用欧拉回路)
题目链接题目大意:一个有v个顶点的完全图,找一条经过m条指定边的最短路径。题目分析:我们把原来的图看为未连接的,即每个点直接都无边。然后用给定的边连接,当我们画出这个图发现可能会有连通块。我们的目的便是将所有的我们画出的边都走一边,而每个连通块都连接了所有的点,就代表要把连通块的每条边不重复走一遍。所有本题就划分为了欧拉回路问题,现为每个连通块构造欧拉回路,所用的边数加上连...原创 2019-03-23 16:29:35 · 174 阅读 · 0 评论 -
Bandwidth UVA - 140 (枚举排列:对解答树剪枝)
题目链接题目大意:给出一个n(n≤8)个结点的图G和一个结点的排列,定义结点i的带宽b(i)为i和相邻结点 在排列中的最远距离,而所有b(i)的最大值就是整个图的带宽。给定图G,求出让带宽最小 的结点排列。分析:可以记录下目前已经找到的最小带宽k。如果发现已经有某两个结点的距离大于或等 于k,再怎么扩展也不可能比当前解更优,应当强制把它“剪”掉。#include <bi...原创 2019-03-29 19:48:51 · 205 阅读 · 0 评论 -
UVa 810 - A Dicey Problem
#include <bits/stdc++.h>using namespace std;const int maxn = 20;struct Die { int x, y, tp, ft; Die() {} Die(int _x, int _y, int _tp, int _ft): x(_x), y(_y), tp(_tp), ft(_...原创 2019-03-18 22:25:18 · 174 阅读 · 0 评论 -
Patrol Robot UVA - 1600 BFS最短路径长
题目链接题目大意:给一个矩阵,从(1,1)走到(m,n)的最短路,"1"是障碍,不能连续穿过k个障碍。分析:用一个结构体,属性有x,y坐标,当前距离,可以跨越障碍数目。然后bfs便利即可。#include <bits/stdc++.h>using namespace std;const int maxn = 30;int dir[5][5] = {{1,...原创 2019-03-13 16:49:36 · 107 阅读 · 0 评论 -
Paintball UVA - 11853 图的连通性,创新型题目
题目链接题目大意:You are playing paintball on a 1000×1000 square field. A number of your opponents are on the field hiding behind trees at various positions. Each opponent can fire a paintball a certain dist...原创 2019-03-18 16:43:47 · 138 阅读 · 0 评论 -
Tree Reconstruction UVA - 10410 (BFS,DFS反推,栈)
题目链接题意:给出一颗树的bfs和dfs,注意不一定是二叉树!!输出每个结点的子结点。分析:明白bfs可以描述结点与根结点的距离关系。用一个栈来维护,每次将根结点入栈,如果下一个结点到根结点的距离大于栈顶元素到根结点的距离,则该结点为栈顶元素的子结点。#include <bits/stdc++.h>using namespace std;const int...原创 2019-03-17 19:29:45 · 132 阅读 · 0 评论 -
Knight Moves UVA - 439 BFS最短路径长度
题目链接题目大意:给起点和终点,求出最短路径长度。分析:是UVA1599题目的一半,只从终点开始BFS,用map记录每个点到终点的距离(不要忘记标记)。map中起点键对应的值即为最短距离。#include <bits/stdc++.h>using namespace std;string beg, ed;int dir[10][10] = {{1,2},...原创 2019-03-12 18:54:40 · 128 阅读 · 0 评论 -
A Dicey Problem UVA - 810 (骰子迷宫:bfs)
题目链接题目大意:一个骰子,给你顶面和前面。在一个起点,每次能移动到周围4格,为-1,或顶面和该位置数字一样,那么问题来了,骰子能不能走一圈回到原地,输出路径,要求最短,假设有多个最短,依照上下左右输出分析:迷宫类题目,和之前的UVA-816很相似,其实两道题除了移动的规则不同,其他做法都一致。因为骰子唯一,可以打表来模拟骰子的相邻面的关系,然后结合rotate()函数便可以模...原创 2019-03-20 19:42:51 · 337 阅读 · 0 评论 -
"Accordian" Patience UVA - 127 (风琴牌游戏:栈,模拟习题)
题目链接题目大意:模拟玩一个“手风琴”纸牌游戏,规则如下:按从左至右的顺序发牌,并摆成一行,发牌不要相互重叠。游戏中一旦出现任何一张牌与它左边的第一张或第三张“匹配”,即花色或点数相同,则须立即将其移动到那张牌上面。如果牌被移动后又出现了上述情况,则需再次向左移动。每叠牌只能移动最上面的一张。如果一叠牌被移空,应该立即将右边各叠整体向左移动,补上这个空隙。依次将整副牌都发完,并不断的向...原创 2019-03-16 14:37:00 · 232 阅读 · 0 评论 -
Spatial Structures UVA - 806 (四分树:分治与递归Ⅱ)
题目链接题目大意:用四叉树可以表示黑白图像,对于一个黑白图像等分四部分,左上、右上、左下、右下。如果一个区域同为一种颜色,那么就不再分叉。现在从根节点开始,走左上记1、右上记2、左下记3、右下记4。一个节点的路径就可以用这些数连起来构成一个五进制的数。输入有两种情况,一种是给n*n的0/1点阵,输出所有黑色节点的路径(10进制);一种是给出黑色节点的路径(10进制),输出n*n的点阵。...原创 2019-03-15 21:40:02 · 176 阅读 · 0 评论 -
Petri Net Simulation UVA - 804 (Petri Net 模拟题)
题目链接分析:一道模拟题混入了图的题目当中,定义一个结构体数组,里面有输入,输出数组,存储一次交易的tokens数目和目标place编号。然后以NT展开循环模拟即可。#include <bits/stdc++.h>using namespace std;const int maxn = 110;int n,m,rnd;int tokens[maxn];str...原创 2019-03-15 17:07:31 · 339 阅读 · 0 评论 -
Division UVA - 725 , Maximum Product UVA - 11059 (简单枚举)
目录Division UVA-725:Maximum Product UVA - 11059Fractions Again?!UVA - 10976Division UVA-725Maximum Product UVA - 11059 Fractions Again?! UVA - 10976 Division UVA-725:题目大意:给定一个正整数n,请...原创 2019-03-19 16:56:22 · 202 阅读 · 0 评论