
ACM入门训练
Aleks_
一个菜鸟的奋斗之路~~·
展开
-
UVA 414 - Machined Surfaces解题心得
Machined SurfacesAn imaging device furnishes digital images of two machined surfaces that eventually will be assembled in contact with each other. The roughness of this final contact is to原创 2015-01-31 13:59:13 · 5210 阅读 · 0 评论 -
uva10382解题报告
题目大意: 在一块宽为w长为l的矩形草坪中,垂直中间有n个洒水泵,每个洒水泵的洒水区域半径为r 。求至少需要几个洒水泵才能将草坪全部洒水。具体看原题吧。解题思路: 好吧,这个题目跟uva10020非常类似,都是典型的贪心算法题目。没看过的可以点:《uva10020解题报告》。。我们绘图来分析下这题:经过绘图分析可知,当圆的半径小于等于w/2时,这个圆的有效区域为0. 所原创 2015-12-31 12:45:24 · 621 阅读 · 0 评论 -
uva10020解题报告
本题大意: 给定一个定区间[m,n], 再给出一系列的区间[Ai, Bi] 求出最少需要几个区间[Ai,Bi] 组合起来才能覆盖定区间[m,n] 解题思路: 这种区间问题,可以用贪心算法来求解,为了优化时间复杂度。我们在输入数据时进行预处理、把那些Ai>=m或者BiAc代码如下:(cmp函数可以简化,不用判断左值是否相等也是没问题的,个人习惯而已)#include #in原创 2015-12-30 16:37:39 · 594 阅读 · 0 评论 -
uva839解题报告
题目大意就是根据干杠平衡原理,判断题目所给出的数据组成的天平能否平衡。注意,此天平可能包含子天平。输入时,如果w为0,则表示包含子天平,子天平按照先左后右的方法输入。解题思路: 这是二叉树的问题,数据的输入就好比先序遍历。(判断有无子节点就是判断w是否为0)。。 本题需要思考两点: 第一个如何判断子天平平和 第二个如何判断父天平是否平衡。第一点题目已经给出了公式。子天平只需要判断w1*d1==原创 2015-12-30 16:30:42 · 1939 阅读 · 0 评论 -
uva548解题报告
简单描述下原题意,题目给出二叉树按照中序遍历和后序遍历得到的序列, 需要求出从根节点到叶子节点最短路径的叶子的权重。(其实也是它的编号)。如果存在多个解,则选择权重最小的那个。解题思路: 1.需要解决一个问题:如何根据二叉树的中序遍历和后序遍历还原二叉树。 方法挺简单的,根据它们的各自定义可知,后序遍历中的最后一个数就是根节点值。然后在中序遍历中找到此值,它的左边为左子树,右边为右子树。然后递原创 2015-12-29 20:15:16 · 812 阅读 · 0 评论 -
uva122解题报告
题意大致就是给你一棵树,然后你用层序遍历。每个节点的给出通过一个组合,(value, pos)pos是由LR组合而成。L代表一次左儿子,R为一次右儿子。输出时需要注意判断给的结点是否完整和重复。解题思路: 1.不能用数组存储满二叉树。256个结点如果排成一个偏左树,那数组将非常非常大。行不通。所以用数组存储每一个输入的结点。2. 总共4个数组 left数组存放当前结点的左儿子的结点原创 2015-12-29 13:23:31 · 716 阅读 · 0 评论 -
字符串训练 ----- UVA 10815题目Andy's First Dictionary
解题思路: 本题主要是涉及分割获取单词 然后按字典排序输出单词 (这个只要用qsort排序下就好了)AC代码如下#include #include #include using namespace std;// 解题思路: 将输入的数据全部转换为小写 // 从字符串中识别出单词 // 写排序算法 如果有相同的 则后面的相同字符串换成"" st原创 2015-07-28 10:04:19 · 683 阅读 · 0 评论 -
高精度问题之大数求幂
DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many原创 2015-07-28 09:27:15 · 1617 阅读 · 0 评论 -
字符串训练 ----------- uva 10361 Automatic Poetry
AC代码如下#include #include using namespace std;int main() { int t; cin>> t; while (t--) { char res1[100] = "", res2[100] = ""; char result1[100] = ""; scanf("\n"); cin.getline(res1, 10原创 2015-07-28 09:40:17 · 586 阅读 · 0 评论 -
高精度问题之大数相加
AC代码如下:#include #include using namespace std;// 实现大数相加 结果存放在num中 void bigIntergerAdd(string &num, string add) { int goBit = 0; // 存放进位 // 先交换下顺序 加数的位数要比较少 if (num.length() < add.l原创 2015-07-28 09:11:47 · 1197 阅读 · 0 评论 -
字符串训练 ------- UVA 题目401 - Palindromes
A regular palindrome is a string of numbers or letters that is the same forward as backward. For example, the string "ABCDEDCBA" is a palindrome because it is the same when the string is read from lef原创 2015-07-28 09:42:46 · 685 阅读 · 0 评论 -
高精度问题之大数相除和求余
实现的是大数跟int类型的相除和求余AC代码如下#include #include using namespace std;void bigDivision(char *src, int num, char sign) { long long rem = 0; // 存放新余数 long long prem = 0; // 原余数 char res[1原创 2015-07-28 09:17:18 · 2058 阅读 · 1 评论 -
字符串训练 ----- UVA 644题目 Immediate Decodability
解题思路: 这题主要是判断有没有字符串是另一个字符串的前缀 。。直接用string 的find解题然后判断下返回的位置就ok了。AC代码如下#include #include using namespace std;int main(int argc, char** argv) { string str[10]; int i =0; bool flag原创 2015-07-28 10:06:44 · 675 阅读 · 0 评论 -
字符串训练------UVA 409题目 Excuses, Excuses!
解题思路: 其实就是比较每个字符串包含的关键字符串的个数。然后输出最多的那一串或更多串。#include #include using namespace std;int main() { int keyCount = 0, excuseCount = 0; int index =1; while (cin>> keyCount>> excuseCount) {原创 2015-07-28 09:54:32 · 547 阅读 · 0 评论 -
高精度问题之大数相乘
AC代码如下#include #include using namespace std; // 大数相乘 string bigIntegerPlus(string res, string plusN) { string ret; if (res.length()< plusN.length()) { string tmp = res; res = p原创 2015-07-28 09:05:50 · 1093 阅读 · 0 评论 -
UVA 489 - Hangman Judge做题心得
Hangman JudgeIn ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each game, the answer to the puzzle is given as well as the guesses. Rules are the same a原创 2015-01-31 10:50:09 · 729 阅读 · 0 评论 -
hdu1050解题报告
原题大意:在一个走廊两边都有对称分布的连续房间,现在有n张桌子需要从a移动到b房间。每次移动需要10分钟,但是如果两次移动中需要经过相同的走廊位置,则不能同时进行,需要分开移动。最后求最少需要多长时间移动完所有的桌子。解题思路: 这还是一道贪心算法题目。这种题目解题很有技巧和公式。先画图分析下就知道了。正如画图分析所知,只要求出n次移动过程当中每个走廊经过的次数,取最大值就原创 2016-01-03 19:21:10 · 700 阅读 · 0 评论