自定义博客皮肤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

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

原创 POJ-2352-Stars-树状数组

树状数组中,每个结点管辖了不同的原数组元素的和。令A[1...n]表示原数组,C[1...n]表示树状树组。观察图,可知:C1 = A1 C2 = A1 + A2 C3 = A3 C4 = A1 + A2 + A3 + A4 C5 = A5 C6 = A5 + A6 C7 = A7 C8 = A1 + A2 + A3 + A4 + A5 + A6 + A

2011-03-28 22:39:00 1195

原创 POJ-Anagrammatic Distance-字母距离

题意若两个单词所含的字母完全相同,则这两个单词可称为“anagrams”。给出两个单词,通过对单词中的字母进行删除,可以使用两个单词成为anagrams。Anagrammatic Distance被定义为需要进行删除的单词数量。分析一种解法是先对两个单词进行排序,然后求两个单词的LCS值,最求返回(单词1长度-LCS)+(单词2长度-LCS)即可。但这种解法显得比较麻烦了。另一种解

2011-03-25 12:06:00 1378

原创 POJ-1338-Ugly Numbers-丑数

去年十二月份就已经做过了这道题。当时只是做出来,还来还没有完全理解。这不,三个月后的今天,竟忘记了。这两天看到不少面试题都喜欢拿这道题提问,于是,我便重新看了以前写的代码。其实理解应该不算太难。就是一个数列,里面的数的因子只有2,3,5,并且这个数列按照从小到大的顺序排列。设ugly[]数组保存这个数列,这样,可以设三个指针p2,p3,p5,分别指向数列中的三个数(可以相同),取ugly[

2011-03-18 13:27:00 1954

原创 POJ-1887-Testing the CATCHER-最长递减子序列-DP动态规划

跟Longest Ordered Subsequence类似,只不过现在是递减的。再有就是要注意下输入如何进行处理。动态转移方程为:dp[i] = max(1, dp[j] + 1), 0 a[i]代码#include #include using namespace std;const int MAX_SIZE = 5005;int a[MAX_SIZE];int

2011-03-15 22:24:00 1439

原创 POJ-2533-Longest Ordered Subsequence-最长递增子序列-动态规划

题意就不说了,就是给出一数列,要求其最长递增子序列的长度。状态转移方程为:dp[i] = max(1, dp[j] + 1), 0 代码#include #include using namespace std;const int MAX_SIZE = 1005;int a[MAX_SIZE]; //存储输入int dp[MAX_SIZE]; //a[0..i]的最长

2011-03-15 22:16:00 2129

原创 POJ-1251-Jungle Roads-最小生成树-Kruskal算法

<br />题意<br />给定一个图,求其最小生成树。<br />解决<br />参考《算法导论》里面Kruskal算法的讲解,使用“并查集”这种数据结构,去生成最小生成树。<br />心得<br />这道题太爽了,一次就AC了。原因是由于之前在解题时写过并查集,现在直接套用却可,省了不少功夫。关于并查集,还可参考“POJ 1611 The Suspects 解题报告”。<br />代码<br />#include <algorithm>#include <iostream>using names

2011-03-15 16:42:00 927

原创 POJ-1250-Tanning Salon

题意参考了Discuss里面的。如:2 ABBAJJKZKZ2代表有俩个座位,第一个A代表A来了,第一个B代表B来了,第二个B代表B走了,第二个A代表A也走了。字母代表顾客,当字母第一次出现的时候代表这个顾客来了,第二次出现代表该顾客走了,如果顾客是在没接收salon的时候就走了,公司的损失数就加一。解决方法用了两个string存储“正在享受服务的人员”和“不能享受服务的人

2011-03-14 22:40:00 1532

原创 POJ-1002-487-3279-解题报告

很久之前就做过这道题了,只是当时一直TLE。其实当时也能得到正确答案,不过由于用了STL map这些东西,可能效率比较低导致TLE。今天彻底用C做出来了。#include #include #include const int MAX_CASE_SIZE = 100003;const int MAX_STD_PHONE_SIZE = 10;char phone[128]; //接

2011-03-11 20:42:00 1306

原创 POJ-2051-Argus-sort水过

用堆或者priority_queue应该更好。解决此题关键是要注意每次输出后各个query的period如何变化:输出的那个要恢复为原来的;其余的则减去已经逝去的时间。代码:#include #include #include #include using namespace std;const int MAX_SIZE = 1005;struct Query {

2011-03-09 16:41:00 1259 1

原创 POJ-2081-Recaman's Sequence-Hash思想解题

#include #include #include using namespace std;const int MAX_K = 500002;const int MOD_VAL = 499991;int a[MAX_K];vector hash[MOD_VAL]; //hash表项中存储的是一个实际的数bool isIn(int n) { int key = n %

2011-03-09 15:36:00 1611 3

原创 POJ-1503-大整数加法

用一个int数组存储大整数,运行小学生使用的竖式运算进行模拟。#include #include using namespace std;const int MAX_SIZE = 105;int digits1[MAX_SIZE]; //在digits1在存放结果int digits2[MAX_SIZE];int main(){ string s; cin >

2011-03-08 20:05:00 1865

原创 POJ-3672-Long Distance Racing-水题、%c输入要去除换行

没想到这道题自己贡献了4次TLE和1次的CE。分析了下原因,自己本想先用函数计算出总时间,但这会导致很多次的重复计算,效率超低。低效率代码:#include #define MAX_T 100002char cvec[MAX_T];int m, t, u, f, d;int get_total_time(int n_units) { int total_time =

2011-03-06 21:25:00 1754

原创 POJ-3624-Charm Bracelet-简单0/1背包、动态规划、DP

简单的0/1背包问题,用动态规划即可简单求解。以下一段话摘自Slyar.==========================================================Slyar:标准的01背包,动态转移方程如下。其中dp[i,j]表示的是前i个物品装入容量为j的背包里所能产生的最大价值,w[i]是第i个物品的重量,d[i]是第i个物品的价值。如果某物品超过背包容量

2011-03-06 19:42:00 2060

原创 POJ-3349-Snowflake Snow Snowflakes-hash

第一次用hash解题。这道题早就想A了,只是觉得挺难,便一直放下。今天本想下定决心自己做出来的,没想到自己写的代码一直WA,相当恼人。最后参考了网友的程序,虽要3454MS,但总算也过了。解决此题的关键有二:1. 构造hash表,应能想到hash表项存储的是雪花数组下标。其实hash表项设定为vector挺好用的,当hash表项存储的元素增加时,直接push_back即可,vector

2011-03-06 16:51:00 1377

原创 POJ-3096-Surprising Strings-解题报告

暴力求解的,什么也不说了,上代码。#include #include using namespace std;int main(){ string str; while(cin >> str, str != "*") { string::size_type len = str.length(); /*若字符串的长度为1或者2,则肯定是

2011-03-03 19:29:00 1284

原创 POJ-3070-Fibonacci-求Fibonacci的矩阵方法,O(log(n))

平时一般求Fibonacci数列都是用递归求的,没想到还可以利用矩阵的幂求,算是长见识了。为求A的n次幂,使用了分治法,复杂度为O(log(n))。#include using namespace std;/*2*2矩阵类*/class Matrix {public: /*构造函数*/ Matrix(__int64 a00 = 0, __int64 a01 =

2011-03-02 23:51:00 1306

原创 求最大最小值的O(3n/2)算法

《算法导论》上面第九章开章的算法,简单。貌似《编程之美》上面也有。#include #include //time(0)#include //rand()#include using namespace std;const int MAX_VECTOR_SIZE = 10;int main(){ vector iVec; /*生成随机的一组数*/

2011-03-02 16:42:00 2428

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关注的人

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