Algorithm算法 - 靖空间 - 博客频道 - CSDN.NET



Algorithm算法 - 靖空间 - 博客频道 - CSDN.NET

面试题:P1-数海岸线算法

这是一个比较偏僻的网站上的题目,做这个题目的原因是某同学去面试的时候遇到了这样的题目,然后问我如何做,遇上这样的问题不解决就不是我的风格了。 先给出这个网站的题目网址: 估计很少人上个这个网站,做个这个网站的题目更加少了,所以有公司拿这样的现成的题目考面试者,有面试者做过了的概率是很少的。不过只要学校不太糟糕,那么能做出这样题目的人,进个什么BAT不是什么难事吧。...
阅读(317) 评论(0)

POJ 1016 Numbers That Count 模拟题目

本题没有多少技巧,就是考编程能力。 其中的注意的地方有: 1 数数字-基本算法,很多题目都会用上,本题利用Hash表计算每个数字出现的次数就可以,其中有个坑:注意大于9的数,多位数字转换成字符串 2 map的运用,当然可以使用STL,如果直接手动实现,或者使用Trie算法实现,那么本题难度就大大增加了。 3 简单的计算问题和读清楚题意,比如本题要求是大于15步,就需要额外处理的,不小心就掉坑里了。...
阅读(338) 评论(0)

POJ 3616 Milking Time 动态规划法题解

任务安排类型的动态规划法计算。 思路1: 1 按照任务的结束时间排序 2 填表,使用一维表即可,表的值表示以当前时间点为结束时间,得到的最大效率。那么就得到状态转换方程:arr[i] = max (arr[i], arr[mt[i].st]+mt[i].ef) 其中mt[i].st代表当前任务的起止时间,mt[i].ef代表当前任务的效率。 3 那么当当前计算的时间点不是某任务的结束时间,改如何处理呢?可以直接把之前计算得到的最大效率填上来就可以。 4 还有最重要的处理特殊情况-很容易栽跟斗的地方: 如果两...
阅读(562) 评论(2)

POJ 3450 Corporate Identity 求所有字符的最长公共子串

Description Beside other services, ACM helps companies to clearly state their "corporate identity", which includes company logo but also other signs, like trademarks. One of such companies is Inter...
阅读(400) 评论(0)

POJ 1088 滑雪

本题一般使用递归法+记忆搜索得到答案。 这里使用一种新的方法: 根据题目特点必须要从高到底,那么可以把所有值排序,然后从最小值的方格开始搜索,每次搜索相邻的四个方格是否可行,然后存储最大值;这样不使用递归也直接得到答案了。...
阅读(523) 评论(0)

POJ 2367 Genealogical tree 拓扑排序

一个标准的拓扑排序题解。 要点: 1 查找没有父亲节点的点,先输出这些点 2 使用一个数组,del[i]记录已经输出的点 3 输出了的点不再计算在父亲节点中,循环第1步,直到输出所有点...
阅读(554) 评论(0)

POJ 1577 Falling Leaves 二叉树操作

本题目首先给大家介绍了二叉树的知识,然后引入二叉排序树,感觉就像是入门题了,但是给出的问题却是从叶子节点开始给出,然后要求求这个二叉树的前序遍历顺序。 一开始少看了排序树这两个字,怎么想都觉得不对,没有排序树的条件,只是普通二叉树的话,本题应该是无解的。 但是多了排序树这个条件,那么本题又变得非常简单了,就是简单的二叉树插入操作就可以了。 而且数据的确是很弱的,因为最多只有26个大写英文字母。 就是考我们操作二叉排序树的知识。...
阅读(639) 评论(0)

POJ 2499 Binary Tree 数学题解

本题名为二叉树,其实主要是考数学加速计算的方法。 本题思路最简单就是从目标节点往根节点查找,那么效率就等于树高了; 不过由于树高可能会极大,故此这样查找会超时。 那么就在查找根节点的时候,把题目的+-法变成除法查找,就可以极大加速查找了,由原来的超时变成0ms过了。...
阅读(715) 评论(0)

POJ 3214 Heap 动态规划法题解

Description A (binary) heap is an array that can be viewed as a nearly complete binary tree. In this problem, we are talking about max-heaps. A max-heap holds the property that for each node tha...
阅读(517) 评论(0)

POJ 3181 Dollar Dayz 动态规划法题解

本题也是一种背包问题,就是需要求出有多少种组合。 本题的新意就是: 1 利用两个long long数表示大数的高位和低位就能满足不溢出了 2 高位和低位需要仔细计算好 建模: dp[i][j]:表示计算当前i物品的时候有j钱币的时候有多少种组合。 那么状态转换:dp[i][j] = dp[i-1][j] + dp[i][j-i]//dp[i-1][j]表示前一种物品计算出的组合数,也就是不买i物品的组合数, dp[i][j-i]表示空出i钱币购买i物品的组合数 难点: 仔细观察,会发现其实不单止不用二维数...
阅读(509) 评论(0)

POJ 3280 Cheapest Palindrome 动态规划法题解

一看这道题总觉得是字符串处理问题,其实是需要建模动态规划法的题解。 动态规划法的建模都感觉是最难的一关了,当然最简单是参考别人的,自己建模真的很难。 本题的建模就是利用一个二维数组palin[i][j],代表j个字符,就是如果字符串的起点下标为i,那么i到i+j-1字符的最小修改值是多少。 也可以用递归的思维从这个字符串一步一步往更小的字符串递推出来。 最终优化程序,使用滚动数组变二维数组维一维。 下面程序作出详细注解:...
阅读(585) 评论(0)

TopCoder SRMS 1 字符串处理问题 Java题解

计算有多少种解密字符串,因为是01串,故此只能最多有两种了。 才第二次使用Java解题,会不会像是披着Java外壳的C++程序呢? 实际体会: C++转Java倒真的不难,最大的难点就是要知道如何使用Java的一些函数,比如本题的string处理,如果使用C++自然是直接加或者使用VC的直接push_back,不过Java好像有个什么StringBuilder类,这里我直接+=接起来了。 故此C++转Java的问题实际上是记忆问题,不存在理解问题了,因为Java有的概念,C++差不多都有,理解障碍就没有了...
阅读(621) 评论(0)

POJ 1952 BUY LOW, BUY LOWER 动态规划题解

Description The advice to "buy low" is half the formula to success in the bovine stock market.To be considered a great investor you must also follow this problems' advice:  "Bu...
阅读(444) 评论(0)

POJ 3268 Bookshelf 2 动态规划法题解

Description Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top. FJ has N cows (1 ≤ ...
阅读(611) 评论(0)

POJ 3984 迷宫问题 广搜迷宫解法

本题是经典的迷宫搜索问题了,使用广搜比使用深搜效率要高。 思路关键点: 1 从终点出发查找起点,这样方便记录路径 2 每次查找到下一个空格,可走方格之后,可以马上标识该格为不可走了 3 找到起点之后,马上可以返回 关键是第二点为什么会成立? 因为我们需要找最短路径,只要最先可以达到,那么就肯定是最短路径,不需要从其他方向进入了。...
阅读(728) 评论(0)

POJ 2756 Autumn is a Genius 大数加减法

本题题目没明确说明有多大的数,主要是A, B < 32768迷惑人,好像不是大数,不过后面 The size of input will not exceed 50K 的这句话就说明是大数了可以为接近无穷大的负数。 其实50K就应该开多大的数组呢?50 * 1024 / 8 == 6400,所以会有6400个数位。 这里直接使用C++的vector或者string,然后输入使用buffer,那么就可以不管数位有多大了。 大数加法比较容易,如果是减法那么题目就比较麻烦了。目前还想不到比较简洁的解法,要特殊处理...
阅读(543) 评论(0)

POJ 3370 Halloween treats - 鸽巢原理

Description Every year there is the same problem at Halloween: Each neighbour is only willing to give a certain total number of sweets on that day, no matter how many children call on him, so it ma...
阅读(461) 评论(0)

HDU 1030 Delta-wave 数学题解

Delta-wave Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5782    Accepted Submission(s): 2204 Problem Description A triangle fiel...

Read full article from Algorithm算法 - 靖空间 - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts