uva
文章平均质量分 72
时间杀手Time
个人博客:
http://zhiml.cn
展开
-
uva 10129 Play On Words(单词)求欧拉回路或欧拉通路
题目:输入n个单词,是否可以把这些所有单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母想同。 有向图欧拉回路:1,图连通.2,所有定点入度等于出度 有向图欧拉通路:1,图连通.2,仅有两个奇度定点,其中一个入度比出度大1,另一个定点出度比入度大1 思路:可以把一个单词看作一条边,单词的首尾两个字母为定点,建立无向图(即G[u][v]=G[v][u]=1),因为欧拉原创 2017-03-11 10:49:19 · 381 阅读 · 0 评论 -
uva 10305 Ordering Tasks(拓扑排序)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1246 题目: John has n tasks to do. Unfortunately, the tasks are not independent an原创 2017-02-19 16:23:27 · 373 阅读 · 0 评论 -
UVA 202 循环小数
看不懂,先立个Flag吧 import java.util.Arrays; import java.util.Scanner; public class Main { static int[] r = new int[3003]; static int[] u = new int[3003]; static int[] s = new int[3003]; public static原创 2017-02-25 10:59:40 · 360 阅读 · 0 评论 -
UVA 1595 Symmetry(对称轴)
题意:给定坐标,计算能否找到一条竖线,使左右两边的点对称 思路:输入的过程中计算出最左和最右边界,然后计算出中点值,然后对每个点进行遍历,如果找不到一个点满足x1+x2=mid*2&&y1==y2,则说明不合题意,直接break,如果遍历完的话,说明都符合题意,说明可以找到竖线. import java.util.Scanner; public class Main { static in原创 2017-03-04 19:19:46 · 598 阅读 · 0 评论 -
uva 548 Tree (根据中序遍历和后序遍历求先序遍历)
import java.util.Scanner; public class Main { static Scanner scan = new Scanner(System.in); static int best_sum = 0; static int best = 0; public static void main(String[] args) { while(scan.has原创 2017-03-08 20:06:28 · 274 阅读 · 0 评论 -
UVA 546 Tree (二叉树综合运用)
https://vjudge.net/problem/UVA-548 You are to determine the value of the leaf node in a given binary tree that is the terminal node of apath of least value from the root of the binary tree to any原创 2017-02-17 23:27:12 · 441 阅读 · 0 评论 -
uva 10562 Undraw the trees(看图写树)
思路:先将图保存在二维数组,然后对图进行DFS。先找到根节点,然后找根节点的子节点,对子节点DFS。 import java.util.Arrays; import java.util.Scanner; public class Main { static int maxn = 200; static char[][] G = new char[maxn+5][maxn+5]; sta原创 2017-03-11 19:18:16 · 336 阅读 · 0 评论 -
uva 11853 Paintball
题意:有一个1000x1000的矩形,给若干个圆形障碍(原点,半径,x,y,r),判断能否从矩形的最左边到最右边原创 2017-03-11 23:34:07 · 379 阅读 · 0 评论 -
uva 816 Ancient Messages (BFS)
其实就是BFS求最短路,先说明为什么BFS可以求最短路。因为BFS是广度搜索,是一层一层的,最先到达约定条件的那一层一定是最短的。 本题复杂在方向判断上,首先需要用数组has_edge[r][c][dir][trun]来记录从方向dir到达r,c点,转向turn是否可行。 然后用d[r][c][dir]来记录从方向dir到r,c的长度,p[r][c][dir]记录从方向dir到r,c的原创 2017-03-12 11:17:40 · 259 阅读 · 0 评论 -
uva 673 Parentheses Balance (平衡的括号)堆栈模拟
模拟堆栈,遇到()或者[]就出栈,如果最后堆栈为空则说明合法 import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Stack s =原创 2017-03-12 19:29:28 · 289 阅读 · 0 评论 -
uva 536 Tree Recovery(二叉树重建)
根据先序遍历和中序遍历求后序遍历 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String pre = scan.next原创 2017-03-12 19:53:11 · 437 阅读 · 0 评论 -
uva 439 Knight Moves(骑士的移动)BFS
BFS import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int[] dr = {-2,-2,-1,1,2,2,1,-1}; static int[] dc = {-1,1,2原创 2017-03-12 20:26:46 · 476 阅读 · 0 评论 -
uva 1600 Patrol Robot (草地机器人)BFS
这道题一开始真的没思路,直接dfs,结果WA了; 看了题解才知道用bfs,这道题使我加深了对BFS的理解。 这道题就是在普通的BFS上加上了一个额外条件,障碍物,所以只需要记录经过每个点时所穿过的障碍物,比如,定义layer表示穿过障碍物的个数,u表示上一个位置,则如果当前位置是1,则layer = u.layer+1,否则layer为0。如果layer TLE代码: import原创 2017-03-13 23:58:39 · 677 阅读 · 0 评论 -
UVA 699 The Falling Leaves
https://vjudge.net/problem/UVA-699 利用数组,把数组中间的元素作为根,下表为p,左子树p-1,右子树p+1; import java.util.Scanner; import java.util.Vector; public class Main { private static int maxn = 1000; private static原创 2017-02-18 14:56:31 · 194 阅读 · 0 评论 -
UVA 122 Trees on the level (二叉树层次遍历)
Background 背景 Trees are fundamental in many branches of computer science. Current state-of-the art parallel computers such as Thinking Machines' CM-5 are based on fat trees. Quad- and octal-trees原创 2017-02-17 21:10:53 · 510 阅读 · 0 评论 -
uva 10305 Ordering Tasks(拓扑排序)
拓扑排序。 先理一下思路吧: 根据输入建立一个有向图表,然后用一个一维数组vis来记录1~n中某个元素是否已经被访问过。 然后从1~n进行循环,如果vis[i]没有被访问过,就对i做dfs搜索。因为是拓扑排序,所以从i一定可以到达排序的最后一个元素,将i到拓扑排序的最后一个元素在dfs的时候记为已经访问过,即vis[i~最后一个元素]=1。 在dfs的过程中,一定会到达最后一个元素,所以建原创 2017-03-09 23:05:09 · 238 阅读 · 0 评论 -
uva 1103 Ancient Messages (古象形文字)
题意:以十六进制的形式给出图像,求所给图像中图像所表示的字母。 思路:先建立十六进制对应二进制索引表,输入的时候建立二进制表。需要两次DFS,第一次DFS去掉图像周围的边界部分(既将图像外二进制为0的部分变成其他符号,便于第二次DFS的时候跳过这些边界。这里我用'-'代表被裁掉的边界),第二次DFS,查找图像的边界,一旦找到边界就开始DFS,并将边界所相邻的内0通过第一次的DFS方法变成'-',原创 2017-03-09 20:32:22 · 488 阅读 · 0 评论 -
uva 839 (Not so mobile)天平 ---递归输入
java的写法 import java.util.Scanner; public class Main { static Scanner scan = new Scanner(System.in); public static void main(String[] args) { int T = scan.nextInt(); while(T--!=0){ if(solve(原创 2017-03-07 11:24:36 · 249 阅读 · 0 评论 -
uva 12504 Updating a Dictionary(更新字典)
题意 比较两个字典 按字典序输出所有添加 删除 修改的项 如果没有任何更新 输出 No changes map的应用 对比两个字典 注意开始字符串的处理和字典可以为空 import java.math.BigInteger; import java.util.Collections; import java.util.HashMap; import java原创 2017-03-05 14:44:17 · 337 阅读 · 0 评论 -
UVA 230 Borrowers(图书管理系统)
题意:模拟图书管理系统,首先输入若干图书的标题和作者(标题各不相同,以END结束),然后是若干指令:borrow指令表示借书,return指令表示还书,shelve指令表示把所以已归还但还没有上架的图书排序后插入书架并输入图书标题和插入位置(可能是第一本书或者某本书的后面),图书排序的方法是先按作者从小到大排序,再按标题从小到大排序。在处理第一条指令前,你应当先将所有图书按照这种方式排序。 思路原创 2017-03-05 09:07:56 · 466 阅读 · 0 评论 -
uva 12100 Printer Queue(打印队列)模拟
思路:按照输入的顺序,将每个任务入队,同时用另一个数组保存这些优先级,然后按照从大到小或者从小到大的顺序对数组排序,表示每个执行的先后顺序。然后对队列进行操作,先从队列头取出一个元素,判断是不是和数组的下标指向的值相等,若相等,则打印的时间数+1,同时数组下标+1或者-1,若不相等,则直接扔到队尾,重新开始下一次循环。 (开始理解错题意,认为是把队列中优先级最高的任务直接移除,而忽略了队列只能一原创 2017-03-04 22:51:10 · 433 阅读 · 0 评论 -
uva 210 Concurrency Simulator (并行堆栈模拟)
模拟一下就好了,可以用Deque双端队列 import java.util.Arrays; import java.util.Deque; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int[] time = new int[原创 2017-03-05 21:38:45 · 576 阅读 · 0 评论 -
UVA 1586 分子量(简单模拟计算)
思路,先判断当前字符是不是数字,不是数字的话先记录当前字符,然后向后查找直到下一个不是数字的字符出现。 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner scan = new Scanner(System.in); double[] A = {12原创 2017-02-25 10:34:43 · 361 阅读 · 0 评论 -
UVA 816 Abbott's Revenge
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=757 BFS,有点复杂,看着别人的代码调试了半天,争取自己写出来。 import java.util.LinkedList; import java.util.Queue; import jav原创 2017-02-19 10:51:51 · 395 阅读 · 0 评论 -
UVa 514 Rails(经典栈)
https://vjudge.net/problem/UVA-514 There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely原创 2017-02-17 09:01:33 · 294 阅读 · 0 评论 -
UVA 442 Matrix Chain Multiplication (矩阵链乘)
https://vjudge.net/problem/UVA-442 Suppose you have to evaluate an expression like A*B*C*D*E where A,B,C,D and E are matrices. Since matrix multiplication is associative, the order in which multi原创 2017-02-17 09:42:01 · 281 阅读 · 0 评论 -
UVA 679 Dropping Balls (二叉树的编号)
https://vjudge.net/problem/UVA-679 A number ofKballs are dropped one by one from the root of a fully binary tree structure FBT. Eachtime the ball being dropped first visits a non-terminal node.原创 2017-02-17 20:17:06 · 257 阅读 · 0 评论 -
uva 712 S-Tree (S树)模拟
简单模拟即可,注意xi输入的顺序,用一个数组记录从0~n依次是x多少。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int kcase = 1; while(true){原创 2017-03-14 10:57:27 · 382 阅读 · 0 评论