摘要:// UVa297 Quadtrees // 题意:给两棵四分树的先序遍历,求二者合并之后(黑色部分合并)黑色像素的个数。p表示中间结点,f表示黑色(full),e表示白色(empty) // 算法:先建树,然后统计 #include#include#include#include#includeusing namespace std;const int N=102...
阅读全文
摘要:这题就是运用了二叉树重建, 以及遍历。 二叉树的遍历:先序遍历,中序遍历,后序遍历 只要有一个中序序列再加上另一个序列就可唯一地重建原来二叉树。 先序遍历就是先访问根节点,然后再先序遍历左子树,最后先序遍历右子树。先序遍历也就是深度优先搜索(DFS)。 进行了二叉树重建之后,只要对这棵二叉树进行搜索, 取得各个路径之和,然后找出最小的那个和即可。 /*题意:给出...
阅读全文
摘要:http://www.pep.com.cn/gzsx/jszx_1/czsxtbjxzy/xkbsyjc/jxsj/bx1/201008/t20100826_757055.htm 我们已经知道,函数在区间(2,3)内有零点,且<0,>0.进一步的问题是,如何找出这个零点? 1.二分法的意义 对于在区间[,]上连续不断且满足·<0的函数,通过不断地把函数的零点所在的 区间一分为二,使区间的两...
阅读全文
摘要:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大? 输入格式 多组数据,每组数据两行,第一行是W,第二行是X,它们长度相同。在[1..10]之间. 输出格式 每行一个整数表示结果。 答题说明 输入样例 36?1?8 236428 8?3 910 ? ...
阅读全文
摘要:题意: 计算从根到叶节点的累加值,看看是否等于指定值。是输出yes,否则no。注意叶节点判断条件是没有左右子节点。 思路: 建树过程中计算根到叶节点的sum。 注意: cin读取失败后要调用clear恢复,否则后面无法正常读取。 注意空树都要输出no 最初代码如下:#include#include#include#include#include#include#includeusing name...
阅读全文
摘要:// 题意:输入n和p个整数H[i],其中H[i]表示每H[i]天会有一次活动(但周五周六除外)。输出前n天中有多少天有活动。模拟从周日开始。 #include#include#include#include#includeusing namespace std;int days[3651];int main(){ int T; cin>>T; ...
阅读全文
摘要:// 题意:有t个团队的人在排队。每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后。 // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP。模拟这个过程,输出出队顺序 #include#include#include#include#include#include#includeusing namespace std;co...
阅读全文
摘要:画图出来后结果很明显 2xyPzwIMabcABdefgCDEFsample outputwzyxIPMgfCecbDdAaEBF * + -x y z w F B E a A d D b c e C f g #include#include#include#include#include...
阅读全文
摘要:自己按照stl实现了一个: http://www.cplusplus.com/reference/algorithm/binary_search/ 这里有个注释,如何判断两个元素相同: Two elements, a and bare considered equivalent if (!(a bool binary_search (ForwardIterator first, For...
阅读全文
摘要:// UVa442 Matrix Chain Multiplication // 题意:输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数。假定A和m*n的,B是n*p的,那么AB是m*p的,乘法次数为m*n*p // 算法:用一个栈。遇到字母时入栈,右括号时出栈并计算,然后结果入栈。因为输入保证合法,括号无序入栈 #include#include#include#in...
阅读全文
摘要:嵌套玩具, 要求外层玩具的尺寸比内层玩具尺寸的和要大. 每一个玩具由一个负数与相应的正数表示, 在这两数之间的部分即为此玩具内部的玩具. 要求判断一串输出的数字是否能组成一个合法的玩具. 一个合法的玩具: 1. 数字代表了 toy 的尺寸大小. 2. 外层的 size 必须 > 内层 size 的和, 不能是 >=. 3. 每次必须是负正对一起出现. 思路: 用一个...
阅读全文
摘要:// UVa673 Parentheses Balance // 题意:输入一个包含()和[]的括号序列,判断是否合法。 // 具体递归定义如下:1.空串合法;2.如果A和B都合法,则AB合法;3.如果A合法则(A)和[A]都合法。 // 算法:用一个栈。注意输入可能有空串 #include#include#include#include#include#includ...
阅读全文
摘要://这个算法用到了“相对位置”的思想,并且就本题而言还有一个很重要的结论就是,假设 //移动了k个元素,那么这k个元素一定是最后结果的那个序列的前k个元素,而且易知, //越先移动的元素一定会越被压在移动的元素的底部 首先找到需要移动的字符串,方法如下:以初始序列为准,设初始序列下标为i, 目的序列下标为j, 从n-1开始,如果两下标对应的字符串相等,下标同时减一,否则仅初始序列下标...
阅读全文
摘要:题意:给出n条线段,以米的单位给出,小数点后两位(精确到厘米),要你对这些线段裁剪,裁剪出m条等长的线段,并且让这些线段尽可能长另外线段的长度不能小于1厘米,如果筹不够m条,输出0.00 #include#include#include#include#includeusing namespace std;const int maxn=10010;double num[maxn];doub...
阅读全文