自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leo的博客

记录开发的点滴,更好的阅读体验请访问:leehao.me

  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 POJ-1159-Palindrome-回文-动态规划

题意:给定一字符串,问至少插入多少个字符,才能使得其成为“回文”。分析:动态规划求解。设dp[i][j]存储的是字符串i到j之间至少插入的字符数量,其值通过以下方程求得,if(str[i] == str[j]) dp[i][j] = dp[i+1][j-1];else dp[i][j] = min(1+dp[i][j-1], 1+dp[i+1][j]);举例解释如下。对于字

2011-01-31 22:59:00 2358

原创 POJ-1163-The Triangle-动态规划

简单说下题意:已知多个数字组成一个三角形,从顶点开始,对角地下移,一直到底层,形成一条路径,对该路径上所有元素求和,求这个和Sum最大是多少。 /*动态规划求解。算法复杂度为O(n)。 */#include using namespace std;const int MAX = 5055;int arr[MAX]; //用一维数组存储三角形的元素值int dp[MAX];

2011-01-31 20:48:00 897

原创 POJ-Stockbroker Grapevine-Floyd算法-每一对顶点间最短路径-动态规划

题意如下:给定一个矩阵,其(i,j)元素的数值表示第i个人向第j个人发送消息所用时间,消息只能在有联系的人之间传递,同一个人可以同时向多个人发送消息。问,应该从哪个人开始发送消息,最短需要多长时间,消息能从该人传递到其他所有人?分析:典型的Floyd算法的应用。直接运用Floyd算法,求出任两个人之间传递消息所用的最短时间;对于每一个人,求出其向其他所有人传递消息所需至少的时间;比较从每一个人

2011-01-31 15:48:00 1073

原创 POJ-1007-DNA Sorting-求逆序数

之前看过这题道,由于当时对如何使用STL的sort还不熟悉,而自己又想偷懒,故没有做下去。今天看了《C++标准程序库》对sort有了一定的认识,便A了这道题。 经典的求逆序数的题,只是我是用暴力求解的。《算法导论》第二章的习题上面也有类似的题。看来还得研究下。 #include #include using namespace std;/*表示DNA的类*/class D

2011-01-29 16:04:00 1321

原创 POJ-1065-Wooden Sticks-贪心-多关键字排序

第一次用STL的sort进行多关键字进行排序。另外,排序后再如何处理,有一定难度。 #include #include using namespace std;const int MAX = 5000;/* Stick类 */class Stick { public: int length; //长度 int weight; //重量 bool

2011-01-29 12:16:00 5887

原创 POJ-1088-滑雪-解题报告-动态规划-记忆化搜索

在给出这道题的解题报告之前,先看下记忆化搜索的个人理解。以最简单的递归求阶乘的函数进行说明。常见的求阶乘的代码是这样的:int fac(int n) { if(n == 1) return 1; else return n * fac(n - 1);} 为了实现不重复递归调用,使用一个全局数组对已求得的结果进行保存;另外,每次返回结果前,都对全局数组进行相应赋值。

2011-01-27 18:38:00 2195

原创 POJ-3210-Coins-解题报告

题意:给定n个硬币,进行x次翻转,每次只能翻转一个硬币,且每个硬币可被翻转多次。问:对于所有初始情况下的硬币(即正反面的硬币数不一样),直少需要翻转几次才能达到所有硬币均处于同一面的状态。分析:1. n为偶数。1)若所有硬币均处于同一面,最小翻转次数x一定是偶数。2)若不是所有硬币均处于同一面,则一定是以下两种情况:i. 正面数为奇,反面数也为奇。最小翻转次数一定为奇。

2011-01-26 10:54:00 1692

原创 POJ-2386-Lake Counting-解题报告

跟“红与黑”那道题很相似,都是用递归思想解决。这道也是自己独立解答出来的,一次就AC了,很有些成就感啊。  #include using namespace std;const int MAX_SIZE = 100;/*表示田地的矩阵,全局数据*/char field[MAX_SIZE][MAX_SIZE];int n, m;/*核心递归函数。 *输入:矩阵坐标i

2011-01-22 19:02:00 3658

原创 POJ-3325-ICPC Score Totalizer Software-解题报告

题目比较简单。思路:读入一组分数,去除最高和最低分,再求余下分数的平均分即可。实现:用STL的vector很方便,接着用到sort算法,自己也不用写快排了。收获:发现将变量的声明放在循环体while内,时间会不所增加;而放在外面效率则高些。代码一:/*Memory: 716K Time: 0MS */#include #include #include usin

2011-01-20 22:57:00 1460

原创 POJ 3518 Prime Gap 解题报告

简单的一道题。直接上代码。#include #include using namespace std;bool isPrime(int n) { /*由于题目设定输入大于等于2,故不用再判断小于2的情况。*/ for(int i = 2; i <= sqrt(n); i++) { if(n % i == 0) return fa

2011-01-20 15:35:00 988

原创 POJ 2255 Tree Recovery解题报告

第一个完全由自己想出来的递归程序,嘿嘿。 #include #include using namespace std;/*核心函数。递归实现。 *preStr为先序遍历串,inStr为中序遍历串。 *假设preStr为“BCAD”,inStr为“CBAD”。 *则先找到根为”B“,根的左孩子为”C“,右孩子为”AD“。 *然后递归调用postStr,得到左孩子和右孩子的后

2011-01-17 10:00:00 789

原创 POJ 1833 排序 解题报告

晕。没想到用cin,cout的效率这么低,而一定要改用scanf和printf。另外,还一定要用C++而不能用G++才不会TLE。用C++ STL的next_permutation很简单。 #include #include using namespace std;/*通过int数组读入序列,而不使用string。 *因为,如果遇到两位数,三位数,则很难将它们 *看成一个

2011-01-09 22:21:00 1335

原创 POJ 1611 The Suspects 解题报告

题意就不说了,看了discuss知道用并查集求解。由于之前没写过并查集,所以找了一本《数据结构》的书复习了下。然后按照书本的描述来写并查集。没想到在POJ提交代码时却出现了个怪异的现象,老是TLE。参考网上的解答,改啊改,快崩溃时终于AC了。真是奇怪,为什么把“判断两个元素的双亲”放在主函数就TLE了呢,而一定要放在unionSet?下面是两个版本的代码。代码一运用了“平行

2011-01-09 16:13:00 1487 1

原创 POJ 1862 Stipies 解题报告

题意很简单,就是给定你一系列的数值,任意挑选其中两个数a和b,得到一个新的数2*sqrt(a*b),然后再将这个新的个放回。一直这样下去,直到只剩下一个数。求剩下的这个数最小是多少。使用贪心策略,不断挑选两个最大的数组成一个新的数并放回原数列,再挑选最大的两个数……最到只乘一个数为止。 根据以上分析,知道使用C++STL中的priority_queue很简便。以下是代码:#in

2011-01-08 19:26:00 997

原创 POJ 2418 Hardwood Species 解题报告

同样是map的使用。map真是强大,看了discuss的代码后,才知道自己用了map后是多么的方便。#include #include #include using namespace std;int main(){ map species; int totalTrees = 0; string name; while(getline(cin, nam

2011-01-07 13:17:00 1199 2

原创 POJ 2403 Hay Points 解题报告

/*这道题主要练习了map的使用。 *使用map来操作,使得该题很简单。 */#include #include using namespace std;int main(){ map dic; //用来保存数据字典 map desc; //用来保存描述 typedef map::value_type valType; int m, n; ci

2011-01-07 12:13:00 1299

原创 POJ 3302 Subsequence 解题报告

一道水题,就是自己在输出时没有注意,将“YES”写成“Yes“,贡献了两次WA。 #include #include #include using namespace std;/*判断str2是否str1的字串*/bool isSubStr(string str1, string str2) { char c; string::size_type pos = 0;

2011-01-02 00:42:00 1098

原创 2909 Goldbach's Conjecture 解题报告

主要是注意优化,感觉下面的代码还不是最优的,运行时间还要几百ms. #include #include #define MAX_SIZE 32768int primeArr[MAX_SIZE];/*判断一个大于等于2的整数是否质数*/bool isPrime(int n) { /*注意结束条件*/ for(int i = 2; i <=sqrt(n); i+

2011-01-01 11:47:00 863

matlab中文帮助文档

matlab中文帮助文档,学习matlab的好帮手,各位有福啦。

2011-02-05

86版五笔字根表,经典,好用

86版五笔字根表,经典,好用,还包括了字根背诵口诀。

2011-02-05

01背包问题及变种详解

经典的背包问题九讲文档,包含了01背包及其变种的详细解释。

2011-01-28

POJ水题集--50道--增加自信

POJ水题集-----50道左右-----增加自信啊..

2010-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除