uva.onlinejudge.org
文章平均质量分 69
小米的蝉
Keep It Simple and Stupid
展开
-
UVA 11853 - Paintbal(战场) By SuCicada
例题6-22 战场(Paintball, UVa 11853)有一个1000×1000的正方形战场,战场西南角的坐标为(0,0),西北角的坐标为(0,1000)。战场上有n(0≤n≤1000)个敌人,第i个敌人的坐标为(xi,yi),攻击范围为ri。为了避开敌人的攻击,在任意时刻,你与每个敌人的距离都必须严格大于它的攻击范围。你的任务是从战场的西边(x=0的某个点)进入,东边(x=1000的某个点)离开。如果有多个位置可以进/出,你应当求出最靠北的位置。输入每个敌人的xi、yi、ri,输出进.原创 2020-10-11 18:04:45 · 226 阅读 · 0 评论 -
UUA 506 - System Dependencies(系统依赖) By SuCicada
例题6-21 系统依赖(System Dependencies, ACM/ICPC World Finals 1997, UVa506)软件组件之间可能会有依赖关系,例如,TELNET和FTP都依赖于TCP/IP。你的任务是模拟安装和卸载软件组件的过程。首先是一些DEPEND指令,说明软件之间的依赖关系(保证不存在循环依赖),然后是一些INSTALL、REMOVE和LIST指令,如表6-1所示。表6-1 指令说明指令说明DEPEND item1 item2 [item3 ….原创 2020-10-11 17:21:59 · 231 阅读 · 0 评论 -
UVA 1599 - Ideal Path(理想路径) By SuCicada
例题6-20 理想路径(Ideal Path, NEERC 2010, UVa1599)给一个n个点m条边(2≤n≤100000,1≤m≤200000)的无向图,每条边上都涂有一种颜色。求从结点1到结点n的一条路径,使得经过的边数尽量少,在此前提下,经过边的颜色序列的字典序最小。一对结点间可能有多条边,一条边可能连接两个相同结点。输入保证结点1可以达到结点n。颜色为1~109的整数。Sample Input4 61 2 11 3 23 4 32 3 12 4 43 1 1Sam.原创 2020-10-11 17:09:31 · 266 阅读 · 0 评论 -
UVA 1572 - Self-Assembly(自组合) By SuCicada
例题6-19 自组合(Self-Assembly, ACM/ICPC World Finals 2013, UVa 1572)有n(n≤40000)种边上带标号的正方形。每条边上的标号要么为一个大写字母后面跟着一个加号或减号,要么为数字00。当且仅当两条边的字母相同且符号相反时,两条边能拼在一起(00不能和任何边拼在一起,包括另一条标号为00的边)。假设输入的每种正方形都有无穷多种,而且可以旋转和翻转,你的任务是判断能否组成一个无限大的结构。每条边要么悬空(不和任何边相邻),要么和一个上述可拼接的边相.原创 2020-10-10 00:01:41 · 337 阅读 · 0 评论 -
UVA 12171 - Sculpture(雕塑) By SuCicada
例题6-18 雕塑(Sculpture, ACM/ICPC NWERC 2008, UVa12171)某雕塑由n(n≤50)个边平行于坐标轴的长方体组成。每个长方体用6个整数x0,y0,z0,x,y,z表示(均为1~500的整数),其中x0为长方体的顶点中x坐标的最小值,x表示长方体在x方向的总长度。其他4个值类似定义。你的任务是统计这个雕像的体积和表面积。注意,雕塑内部可能会有密闭的空间,其体积应计算在总体积中,但从“外部”看不见的面不应计入表面积。雕塑可能会由多个连通块组成。Sample .原创 2020-10-09 00:37:03 · 214 阅读 · 0 评论 -
UVA 221 - Urban Elevations(城市正视图) By SuCicada
例题5-12 城市正视图(Urban Elevations, ACM/ICPC World Finals 1992, UVa221)如图5-4所示,有n(n≤100)个建筑物。左侧是俯视图(左上角为建筑物编号,右下角为高度),右侧是从南向北看的正视图。图5-4 建筑俯视图与正视图输入每个建筑物左下角坐标(即x、y坐标的最小值)、宽度(即x方向的长度)、深度(即y方向的长度)和高度(以上数据均为实数),输出正视图中能看到的所有建筑物,按照左下角x坐标从小到大进行排序。左下角x坐标相同时,按y坐标.原创 2020-10-08 16:15:45 · 205 阅读 · 0 评论 -
UVA 1592 - Database (数据库) By SuCicada
例题5-9 数据库(Database,ACM/ICPC NEERC 2009,UVa1592)输入一个n行m列的数据库(1≤n≤10000,1≤i≤10),是否存在两个不同行r1,r2和两个不同列c1,c2,使得这两行和这两列相同(即(r1,c1)和(r2,c1)相同,(r1,c2)和(r2,c2)相同)。例如,对于如图5-3所示的数据库,第2、3行和第2、3列满足要求。Sample Input3 3How to compete in ACM ICPC,Peter,peter@neerc.if.原创 2020-10-07 18:20:53 · 177 阅读 · 0 评论 -
UVA 10562 - Undraw the Trees(看图写树) By SuCicada
例题6-17 看图写树(Undraw the Trees, UVa 10562)你的任务是将多叉树转化为括号表示法。如图6-16所示,每个结点用除了“-”、“|”和空格的其他字符表示,每个非叶结点的正下方总会有一个“|”字符,然后下方是一排“-”字符,恰好覆盖所有子结点的上方。单独的一行“#”为数据结束标记。Sample Input2 A |--------B C D | | ----- - E F G#e|----f g#Samp.原创 2020-10-07 17:17:28 · 137 阅读 · 1 评论 -
UVA 10129 - Play on Words (单词) By SuCicada
例题6-16 单词(Play On Words, UVa 10129)输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母相同(例如acm、malform、mouse)。每个单词最多包含1000个小写字母。输入中可以有重复单词。Sample Input32acmibm3acmmalformmouse2okokSample OutputThe door cannot be opened.Ordering i.原创 2020-10-07 17:03:47 · 328 阅读 · 1 评论 -
UVA 10305 - Ordering Tasks (给任务排序) By SuCicada
例题6-15 给任务排序(Ordering Tasks, UVa 10305)假设有n个变量,还有m个二元组(u, v),分别表示变量u小于v。那么,所有变量从小到大排列起来应该是什么样子的呢?例如,有4个变量a, b, c, d,若已知a < b,c < b,d < c,则这4个变量的排序可能是a < d < c < b。尽管还有其他可能(如d < a < c < b),你只需找出其中一个即可。Sample Input5 41 22 .原创 2020-08-11 23:35:27 · 170 阅读 · 0 评论 -
UVA 816 - Abbott‘s Revenge (Abbott的复仇) By SuCicada
例题6-14 Abbott的复仇(Abbott’s Revenge, ACM/ICPC World Finals 2000, UVa 816)有一个最多包含9*9个交叉点的迷宫。输入起点、离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可)。图6-14 迷宫及走向这个迷宫的特殊之处在于:进入一个交叉点的方向(用NEWS这4个字母分别表示北东西南,即上右左下)不同,允许出去的方向也不同。例如,1 2 WLF NR ER 表示交叉点(1,2)(上数第1行,左数第2列)有3个路标(字.原创 2020-08-03 23:31:14 · 206 阅读 · 0 评论 -
UVA 1103 - Ancient Messages(古代象形符号) By SuCicada
本题的目的是识别3000年前古埃及用到的6种象形文字,如图6-10所示。图6-10 古代象形符号每组数据包含一个H行W列的字符矩阵(H≤200,W≤50),每个字符为4个相邻像素点的十六进制(例如,10011100对应的字符就是9c)。转化为二进制后1表示黑点,0表示白点。输入满足:不会出现上述6种符号之外的其他符号。输入至少包含一个符号,且每个黑像素都属于一个符号。每个符号都是一个四连块,并且不同符号不会相互接触,也不会相互包含。如果两个黑像素有公共顶点,则它们一定有一个相同的相邻黑像.原创 2020-08-03 23:22:09 · 366 阅读 · 0 评论 -
UVA 572 - Oil Deposits (油田) By SuCicada
例题6-12 油田(Oil Deposits, UVa 572)输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。如果两个字符“@”所在的格子相邻(横、竖或者对角线方向),就说它们属于同一个八连块。例如,图6-9中有两个八连块。Sample Input1 1*3 5@@*@@@*1 8@@***@5 5****@@@@@**@@@@@@@**@0 0Sample Output0122本家连接恩,嘛,遍历跑呗。反正到处都有。#include.原创 2020-08-03 22:58:35 · 437 阅读 · 0 评论 -
UVA 297 - Quadtrees (四分数) By SuCicada
例题6-11 四分树(Quadtrees, UVa 297)如图6-8所示,可以用四分树来表示一个黑白图像,方法是用根结点表示整幅图像,然后把行列各分成两等分,按照图中的方式编号,从左到右对应4个子结点。如果某子结点对应的区域全黑或者全白,则直接用一个黑结点或者白结点表示;如果既有黑又有白,则用一个灰结点表示,并且为这个区域递归建树。图6-8 四分树给出两棵四分树的先序遍历,求二者合并之后(黑色部分合并)黑色像素的个数。p表示中间结点,f表示黑色(full),e表示白色(empty)。样.原创 2020-07-28 23:12:19 · 180 阅读 · 0 评论 -
UVA 699 - The Falling Leaves (落叶) By SuCicada
例题6-10 下落的树叶(The Falling Leaves, UVa 699)给一棵二叉树,每个结点都有一个水平位置:左子结点在它左边1个单位,右子结点在右边1个单位。从左向右输出每个水平位置的所有结点的权值之和。如图6-7所示,从左到右的3个位置的权和分别为7,11,3。按照递归(先序)方式输入,用-1表示空树。样例输入:5 7 -1 6 -1 -1 3 -1 -18 2 9 -1 -1 6 5 -1 -1 12 -1-1 3 7 -1 -1 -1-1样例输出:Case.原创 2020-07-27 00:02:59 · 165 阅读 · 0 评论 -
UVA 839 - Not so Mobile (天平)By SuCicada
例题6-9 天平(Not so Mobile, UVa 839)输入一个树状天平,根据力矩相等原则判断是否平衡。如图6-5所示,所谓力矩相等,就是WlDl=WrDr,其中Wl和Wr分别为左右两边砝码的重量,D为距离。采用递归(先序)方式输入:每个天平的格式为Wl,Dl,Wr,Dr,当Wl或Wr为0时,表示该“砝码”实际是一个子天平,接下来会描述这个子天平。当Wl=Wr=0时,会先描述左子天平,然后是右子天平。样例输入:10 2 0 40 3 0 11 1 1 12 4 4 21 .原创 2020-07-25 23:59:41 · 192 阅读 · 0 评论 -
UVA 548 - Tree(树) By SuCicada
例题6-8 树(Tree, UVa 548)给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。如果有多解,该叶子本身的权应尽量小。输入中每两行表示一棵树,其中第一行为中序遍历,第二行为后序遍历。样例输入:3 2 1 4 5 7 63 1 2 5 6 7 47 8 11 3 5 16 12 188 3 11 7 16 18 12 5255255样例输出:13255本家地址在根据中序和后序遍历进行构造的.原创 2020-07-18 00:22:43 · 152 阅读 · 0 评论 -
UVA 122 - Trees on the level, Duke 1993 (树的层次遍历)
例题6-7 树的层次遍历(Trees on the level, Duke 1993, UVa 122)输入一棵二叉树,你的任务是按从上到下、从左到右的顺序输出各个结点的值。每个结点都按照从根结点到它的移动序列给出(L表示左,R表示右)。在输入中,每个结点的左括号和右括号之间没有空格,相邻结点之间用一个空格隔开。每棵树的输入用一对空括号“()”结束(这对括号本身不代表一个结点),如图6-3所示。图6-3 一棵二叉树注意,如果从根到某个叶结点的路径上有的结点没有在输入中给出,或者给出超过一次.原创 2020-07-17 23:58:25 · 846 阅读 · 0 评论 -
UVA 679 - Dropping Balls (小球下落) By SuCicada
例题6-6 小球下落(Dropping Balls, UVa 679)有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为1, 2, 3,…, 2D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点,如图所示。一些小球从结点1处依次开始下落,最后一个小球将会落到哪里呢?输入叶子深度D和小球个数I,输出第.原创 2020-07-17 00:18:53 · 238 阅读 · 0 评论 -
UVA 12333 - Revenge of Fibonacci (斐波那契的复仇) 【后日谈】by SuCicada
正篇以及正确解题思路和代码参见UVA 12333 - Revenge of Fibonacci (斐波那契的复仇) by SuCicada此篇为后日谈要说为什么专门开一篇来记录想法呢,主要是因为想说的太多了。首先从UVA的提交记录上来看,上一次答题是在足足1年之前了。这么久以来都没有再好好做算法,感觉快要忘本了。而且出来之后脑子也不是那么灵光了,虽然更理性,但是却少了些抽象的想象力。...原创 2020-03-07 17:34:45 · 437 阅读 · 0 评论 -
UVA 12333 - Revenge of Fibonacci (斐波那契的复仇) by SuCicada
合适的思路大数加法字典树代码注意点附录合适的思路首先想我们该怎么样能匹配前缀,首先我们不知道完整的数字是什么,所以我们要先得到符合要求的数字数据集。然后将这些数据集放入字典树中所以我们要做的就是使用大数加法技巧,计算前100000个fibonacci将每一个fibo数存入字典树中大数加法首先先做大数加法,使用字符串存储数字,两个字符串(数字)从最后一位即个位...原创 2020-03-07 16:17:11 · 605 阅读 · 0 评论 -
uva 12096 - The SetStack Computer(集合栈)
例题5-5 集合栈计算机(The Set Stack Computer,ACM/ICPC NWERC 2006,UVa12096) 有一个专门为了集合运算而设计的“集合栈”计算机。该机器有一个初始为空的栈,并且 支持以下操作。 PUSH:空集“{}”入栈。 DUP:把当前栈顶元素复制一份后再入栈。 UNION:出栈两个集合,...原创 2018-05-12 19:57:35 · 400 阅读 · 0 评论 -
uva 540 - Team Queue(插队队列)
例题5-6 团体队列(Team Queue,UVa540) 有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么这个 新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会排到长队的队尾。 输入每个团队中所有队员的编号,要求支持如下3种指令(前两种指令可以穿插进 行)。 ENQUEUEx:编号为x的人进入长队。 DEQUEUE...原创 2018-05-12 20:03:53 · 1116 阅读 · 0 评论 -
uva272 (TeX)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=829&page=show_problem&problem=208 TEX is a typesetting language developed by Donald Knuth. It takes source text together原创 2017-11-24 22:40:51 · 321 阅读 · 0 评论 -
UVA 400 - Unix ls (Unixls命令)
例题5-8 Unixls命令(Unix ls,UVa400) 输入正整数n以及n个文件名,按照字典序排序后按列优先的方式左对齐输出。 假设最长文件名有M字符,则最右列有M字符,其他列都是M+2字符。Sample Input10tiny2short4mevery_long_file_nameshortersize-1size2size3much_longer_name1234...原创 2019-02-09 00:26:11 · 437 阅读 · 0 评论 -
UVA 156 - Ananagrams (反片语)
例题5-4 反片语(Ananagrams,Uva 156)输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。 在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有小写字母的前面)。Sample Inputladder came tape soon leader acme RIDE lon...原创 2019-01-31 00:03:16 · 301 阅读 · 0 评论 -
uva 210 - Concurrency Simulator (并行程序模拟)
例题6-1 并行程序模拟( Concurrency Simulator, ACM/ICPC World Finals 1991,UVa210)你的任务是模拟n个程序( 按输入顺序编号为1~ n) 的并行执行。 每个程序包含不超过25条语句, 格式一共有5种: var = constant( 赋值) ; print var( 打印) ; lock; unlock; end。变量用单个小写字...原创 2019-02-23 23:06:45 · 466 阅读 · 0 评论 -
UVA 514 - Rails ( 铁轨)
例题6-2 铁轨(Rails, ACM/ICPC CERC 1997, UVa 514)某城市有一个火车站,铁轨铺设如图6-1所示。 有n节车厢从A方向驶入车站,按进站顺序编号为1~n。 你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。 例如,出栈顺序(5 4 1 2 3)是不可能的,但(5 4 3 2 1)是可能的。为了重组车厢,你可以借助中转站C。 这是一个可...原创 2019-02-13 22:12:17 · 439 阅读 · 0 评论 -
uva 509 RAID!(磁盘数据)
习题4-7 RAID技术(RAID!, ACM/ICPC World Finals 1997, UVa509) RAID技术用多个磁盘保存数据。每份数据在不止一个磁盘上保存,因此在某个磁盘损 坏时能通过其他磁盘恢复数据。本题讨论其中一种RAID技术。数据被划分成大小 为s(1≤s≤64)比特的数据块保存在d(2≤d≤6)个磁盘上,如图4-9所示,每d-1个数据块都 有一个校验原创 2018-04-25 20:36:43 · 887 阅读 · 0 评论 -
uva 508 - Morse Mismatches(摩斯码)
习题4-6 莫尔斯电码(Morse Mismatches, ACM/ICPC World Finals 1997, UVa508) 输入每个字母的Morse编码,一个词典以及若干个编码。对于每个编码,判断它可能是 哪个单词。如果有多个单词精确匹配,选取字典序第一个再加上“!”;如果无法精确匹 配,可以在编码尾部增加或删除一些字符以后匹配某个单词(增加或删除的字符应尽量少)。如果有多原创 2018-04-25 19:42:16 · 880 阅读 · 0 评论 -
uva 253 - Cube painting(相同骰子)
习题4-4 骰子涂色(Cube painting, UVa 253) 输入两个骰子,判断二者是否等价。每个骰子用6个字母表示,如图4-7所示。 图4-7 骰子涂色 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的,因为图4-8(a) 所示的骰子沿着竖直轴旋转90°之后就可以得到图4-8(b)所示的骰子。 (a) (b) 图4-8原创 2018-04-22 18:47:41 · 1145 阅读 · 0 评论 -
uva 1587 - Box(盒子)
习题3-10 盒子(Box, ACM/ICPC NEERC 2004, UVa1587) 给定6个矩形的长和宽wi和hi(1≤wi,hi≤1000),判断它们能否构成长方体的6个面。 Sample Input 1345 2584 2584 683 2584 1345 683 1345 683 1345 2584 683 1234 4567原创 2018-01-02 22:11:46 · 480 阅读 · 0 评论 -
uva 10340 - All in All(子序列)
习题3-9 子序列(All in All, UVa 10340) 输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变), 得到字符串s。例如,abcde可以得到bce,但无法得到dc。 Sample Input sequence subsequence person compression VERDI vivaVittorioEmanue原创 2017-12-30 21:46:29 · 273 阅读 · 0 评论 -
uva 202 - Repeating Decimals(循环小数)
习题3-8 循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202) 输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。例 如a=5,b=43,小数表示为0.(116279069767441860465),循环节长度为21。 注意:有些即便是原题也可能没用看清的要求 (原创 2017-12-30 21:30:04 · 359 阅读 · 0 评论 -
uva 227 - Puzzle (迷宫中的空格)
习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227) 有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指 令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指 令序列(以数字0结束),输出指令执行完毕后的网格。如果有非法指令,应输出“This puzzle原创 2017-12-14 21:43:52 · 389 阅读 · 0 评论 -
uva 401(回文词)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=829&problem=342&mosmsg=Submission+received+with+ID+20398535#include<iostream>#include<string>#include<原创 2017-11-26 11:12:27 · 217 阅读 · 0 评论 -
uva 10082 WERTYU(错位键)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=829&problem=1023&mosmsg=Submission+received+with+ID+20388214 A common typing error is to place the原创 2017-11-24 22:37:17 · 373 阅读 · 0 评论 -
uva 455 - Periodic Strings (找字符串周期)
习题3-4 周期串(Periodic Strings, UVa455) 如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例 如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。 输入一个长度不超过80的字符串,输出其最小周期。https://uva.onlinejudge.org/index.php?option=com_onlinej原创 2017-12-11 21:54:01 · 299 阅读 · 0 评论 -
uva 232 - Crossword Answers(纵横迷宫)
习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232) 输入一个r行c列(1≤r,c≤10)的网格,黑格用“*”表示,每个白格都填有一个字母。如 果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边 界),则称这个白格是一个起始格。 首先把所有起始格按照从上到下、原创 2017-12-18 21:39:08 · 877 阅读 · 7 评论 -
uva 1225 - Digit Counting(数数)
把前n(n≤10000)个整数顺次写在一起:123456789101112…数一数0~9各出现多少次 (输出10个整数,分别是0,1,…,9出现的次数)。 Sample Input 2 3 13 Sample Output 0 1 1 1 0 0 0 0 0 0 1 6 2 2 1 1 1 1 1 1 (注:输出的最后一个数后面没有空格)htt原创 2017-12-10 17:12:22 · 255 阅读 · 0 评论