UVa题解
文章平均质量分 50
闻曦
这个作者很懒,什么都没留下…
展开
-
L2-007. 家庭房产
L2-007. 家庭房产时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行原创 2017-09-14 12:01:58 · 185 阅读 · 0 评论 -
UVa 572 Oil Deposits
思路分析:输入字符二位数组时,可以用%s输入,比较方便。然后用DFS遍历图即可题解:#include #include using namespace std;const int MAX = 110;int n, m, ans;char g[MAX][MAX];int idx[MAX][MAX] = {0};int addx[8] = {-1, -1, -1, 0, 0原创 2017-09-12 16:36:23 · 128 阅读 · 0 评论 -
UVa 536 Tree Recovery
思路分析:简单的根据先序和中序序列重建二叉树,再后序遍历输出即可。题解:#include #include #include using namespace std;struct Node{ char data; Node *left, *right;};string str, pre, in;Node* create(int pl, int pr, int inl原创 2017-09-11 23:21:24 · 173 阅读 · 0 评论 -
UVa 712 S-Trees
思路分析:每个查询可以看做一个2进制数,其对应的10进制数即为对应的叶子位置。注意输入的查询顺序都是x1 x2 ... 的正序,要根据给的x顺序调整。注意:输入叶子值序列时候,不可用int型整数存储,会溢出,因此要用字符串数组题解:#include const int MAX = 1<<7+1;int seq[MAX], order[MAX], q[MAX], ans[MA原创 2017-09-11 20:42:42 · 149 阅读 · 0 评论 -
UVa 673 Parentheses Balance
思路分析:利用栈实现括号匹配即可。读取字符串后,遇到 ( 或 [ 则入栈; 遇到 ) ,若栈顶为( 则弹出,否则错误, ] 的处理类似。注意点:1. 每次看栈顶元素前,都要先判断栈空2.每个字符串处理结束后,要看栈是否为空,如果不空,说明有剩余,则也说明匹配失败,视为错误3.每个字符串处理前,先把栈清空,因为前一次处理可能有残留4.注意空串的判定,题目中说明了空串为合法。因原创 2017-09-10 23:50:44 · 182 阅读 · 0 评论 -
UVa 297 Quadtrees
思路分析:根据先序序列建立整个树,因为根据颜色即可判断结点有无孩子,即可知道序列中接下来的结点是不是子结点。因为要把两个树加起来,只需要遍历两个字符串对应的二叉树即可,然后在同一个表示图的二维数组上叠加即可。注意:对二维数组用fill()函数时候,首地址用buf[0]题解:#include #include using namespace std;const int MA原创 2017-09-10 21:47:48 · 160 阅读 · 0 评论 -
UVa 699 The Falling Leaves
思路分析:本题输入数据为二叉树的先序遍历(递归方式),但是由于可以边输入边处理,所以不用存储二叉树。首先设置根节点的位置为maxn/2, maxn取值为200.(实际上取100也可以,与题目的测试数据大小有关,maxn/2的值接近二叉树的高度,所以一般取200足够)。然后处理完本节点后再依次处理左右子树。如果值为-1则返回,表示根节点,否则继续处理,且sum【pos】+= 值。原创 2017-09-10 19:11:56 · 203 阅读 · 0 评论 -
UVa 839 Not so Mobile
思路分析:递归输入并处理即可,边输入边处理,注意函数参数要用引用进行传值。题解:#include bool judge(int &w){ int wl, dl, wr, dr; bool judge1 = true, judge2 = true; scanf("%d %d %d %d", &wl, &dl, &wr, &dr); if(!wl) judge1 = j原创 2017-09-10 17:56:33 · 174 阅读 · 0 评论 -
L2-012. 关于堆的判断
L2-012. 关于堆的判断时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:“x is原创 2017-09-14 17:49:12 · 302 阅读 · 0 评论 -
UVa Abbott's Revenge
思路分析:本题属于求最短路的问题,用图的BFS即可解决。难点在于如何处理各个结点处的位置。设置一个三元组(r, c, dir)来表示“位于r,c 面朝dir”这一状态,其中r c为位置,dir为朝向,d[r][c][dir]来表示从初始状态到(r, c, dir)状态的最短路长度。假设入口位置为(r0,c0),本题初始状态应是(r1,c1,dir),即从入口往前走了一步的位置。(即初始时候原创 2017-09-12 22:06:24 · 180 阅读 · 0 评论