自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 hihocoder #1096

递归暴搜,注意的是乘积用int要爆#include #include#include #include #include#include #include#includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i

2015-10-31 23:12:27 324

原创 poj 3080 后缀树应用

学习了o(n)后缀树后的应用,数据量太少,47ms比暴搜慢,然而掌握比解题重要,要快去除内存处理更快,但养成坏习惯不值得。代码量大#include #include#include #include #include#include #include#includeusing namespace std; #define lch(i) ((i)<<1)

2015-10-31 10:00:22 328

原创 建立O(n)的后缀树实现(修正版3)

学习后缀树,朴素的建立容易理解也容易实现,但时间复杂度高,而 Ukkonen算法实现了以O(n)时间复杂度建树。感谢该博主详尽的学习笔记http://www.cnblogs.com/snowberg/archive/2011/10/21/2468588.html朴素算法1、在str[0]~str[n-1]逐步建立str[0,i],i∈[0,n-1]的线段树2、每一步依次找到str[

2015-10-27 22:21:09 346

原创 poj 2002 hash

找到两个点,算出组成正方形的另外两个点,如果都存在就true;一直都是用这个n进制哈希方法,因为第一次遇见被它惊呆了。1032ms#include #include#include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) (

2015-10-24 20:10:45 222

原创 poj 2503 hash

一道练模板的题用stl就可以直接过,1500+ms自己写hash搜索,300+ms#include #include#include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(

2015-10-24 13:19:25 240

原创 hihocoder #1040 矩形判断

这题作为一个预热,用叉乘判平行,点乘判垂直写得比较乱 有待改进#include #include#include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-10-24 09:09:36 283

原创 poj 1840hash

a1+a2+a3+a4+a5=0;转化成a1+a2=-(a3+a4+a5);即先储存,后查找;#include #include#include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #defin

2015-10-23 15:10:39 196

原创 poj 2151 01背包

在别人列出的题目里面这道题是被归类到hash里面的,然而没有想到如何转化成hash搜索这道题就是求出   Π每队至少解出一道题= Π(1-每队解出0道题的概率)=P1, Π每队解出不多于n道题的概率 =P2注意的是P2 不包括解出0道的概率#include #include#include #include #include#include using name

2015-10-22 21:40:50 197

原创 poj 1743 hash

求差,不多说了一开始的思路是先找到4个相同的串,找出最长串。果断TLE然后瞄了解题报告,用二分加速http://www.mamicode.com/info-detail-252988.html自己的代码存在许多小问题,修改到崩溃#include #include#include #include #include#include usin

2015-10-22 12:27:39 270

原创 poj 1200 hash

瞄了别人的解法才会做 http://www.cnblogs.com/rainydays/archive/2011/06/23/2088081.htmlhash题要想出合适的hash方法也是一个关键。将字符串转变成数字串,如果知道了最多有n个字符串,就等于是数字最大不超过n,把字符串看做n进制,就可以每一个独一无二的数字串转变为一个独一无二的十进制数字。#include #inclu

2015-10-20 20:45:20 279

原创 POJ3274HASH

这道题是按官方解题报告做的。 bi[i][j]求出第i个数第j个feature的总数 所求为 所有(bi[i][k]-b[j][k],k∈(1,m))相等 转化为(bi[i][k]-bi[i][0])=(bi[j][k]-bi[j][0])k∈(1,m) 相等 即求bi[i]与b[j]这一串数相等时最大的j-i →→→ 即找相同的bi[i]. 然后将每一串b[i]hash提高查找

2015-10-20 13:37:34 262

原创 poj 3349 HASH

第一道题学习哈希。 原解博客http://blog.csdn.net/alongela/article/details/8245005 边看边思考,个人的理解是,哈希将一串数字的某种特征提取出来,比如本题,提取出的特征是和取模, 只有具有相同的和取模的字符串才进行比较,节省了大量无用的比较,如果暴力,那么每两个字符串都将比较一次,O(n^2)加上这么大的数据量是要TLE的。而哈希将比较缩短到一个

2015-10-19 20:52:40 257

原创 poj2299 分治

惨痛教训。。因为将l写成了1导致TLE十多次#include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i)) #define pii

2015-10-19 09:11:40 261

原创 poj 3260混合背包

这道题题目应该是写反了,货币的值应该在 1~10000,dp的时候一直wa也可能是多组数据,不过题目没有说明,将J改大了,再加个外循环检测EOF以后才AC不算很混的混合背包,因为完全背包和多重背包分离了背包问题暂告一段落#include #include #include #include #include #include#include #incl

2015-10-17 20:37:14 364

原创 poj 1276 多重背包+二进制解法

典型多重背包 #include #include #include #include #include #include#include #includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i)) #

2015-10-16 14:31:12 223

原创 poj2392 1742多重背包

多重背包就是每组物品只能取有限多个所以dp是要根据情况加一个if判断首先按最大高度进行升序排序另外加一个num 记录该数值已经取了多少个当前类型的block#include #include #include #include #include #include#include #includeusing namespace std; #defi

2015-10-16 13:12:46 214

原创 poj1384 完全背包

比较裸的完全背包都可以套模板,数据量小直接ACTLE了就改就地滚动+优化,此题就属于数据量相对较大#include #include #include #include #include #include#include #includeusing namespace std; #define lch(i) ((i)<<1) #define

2015-10-15 20:24:47 369

原创 poj1252 BFS

搜完全背包题时翻到的。。BFS比背包高效简单多了。。#include #include #include #include #include #include#include #includeusing namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define

2015-10-15 17:34:42 239

原创 poj 2063 完全背包

可以看做分组背包,每i组为买i基金钱  c[i]*1,c[i]*2.........c[i]*k,然后套dp模板,dp[i][j],第i组已购j元基金另外不需要每年都dp一遍,直接dp到最高金额从评论区别人代码学习了就地滚动的方法,每次用dp[i-1][j-k]更新d[i][j]时 j>=j-k,就可以把更新完一遍的dp数组看作上一轮的dp[i-1],按j从高到低更新,高位j的更新不影响低

2015-10-15 12:12:08 331

原创 poj 3046 分组背包

分组背包问题在于如何将问题看作分组。一旦弄清了 分组 和 背包 就可以直接套模板第一个循环 分组循环第二个循环 背包循环第三个循环 分组内循环#include #include #include #include #include #include#include using namespace std; #define lch(i

2015-10-14 21:46:41 435

原创 poj 1837分组背包

参考了别人的思路  点击打开链接N种距离钩子,m个重量,每个重量放不同的钩子就是一个分组分组背包:#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i)

2015-10-13 19:57:34 389

原创 poj 1976 01背包

一开始当成分组背包做,POJ也果断给了个TLE到底还是对背包理解不够深入只要将小火车头载客量当成一个背包就行了#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i

2015-10-13 12:36:28 267

原创 poj 3624

经典的01背包,做完hihocoder那道题后开始啃背包。。。#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i

2015-10-12 16:19:19 299

原创 hihocoder #1091

虽然一看就是dp 然并卵还是看了提示,学习了背包的几种变化记录一下#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr

2015-10-11 21:58:06 338

原创 poj2367 拓扑排序

用的是1094几乎一样的方法和思路,不多写了#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i

2015-10-10 16:29:21 350

原创 poj 1094

这题数据量较小,用了比较暴力的方法A当路径数满足 n*(n-1)/2是得出拓扑结构#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|

2015-10-10 13:34:15 238

原创 poj 1001

点击打开链接 大数乘法,看过一遍别人的再写出来,用的是模仿乘法笔算的方法WA 了N遍,发现手残点去了别的题目。我。。。#include #include #include #include #include #include#include using namespace std; #define lch(i) ((i)<<1) #define rch

2015-10-08 20:48:35 384

原创 poj1789 2485 1258

典型的prim算法,以每两个string之间转换的代价作为边的权值一开始用邻接表一直RE,忘记将储存边的记录清0.。。最后结果1500ms然后直接换了数组,结果300+ms我。。。#include #include #include #include #include #include#include using namespace std; #d

2015-10-08 15:45:55 271

原创 poj 1328

贪心,以岛屿为圆心判断雷达范围minum[n]为前n个岛屿最少雷达数,当第n+1个岛屿能被前面雷达探测到,minum[n+1]=minum[n],缩小雷达区间 范围,否则加1,更新雷达区间#include #include #include #include #include #include#include using namespace std; #d

2015-10-07 19:40:29 236

原创 poj2965

这题和1753差不多,多了一个数位压缩状态,记录翻了的点#include #include #include #include #include #include using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i))

2015-10-06 00:37:14 240

原创 poj 1753

每个位置翻转2次相当于没翻,另外每个位置翻转的时机不影响最终结果,所以枚举每个位置的状态翻还是没翻,一共2^16次递归#include#include #include#include#include#includeusing namespace std;#define lch(i) ((i)<<1)#define rch(i) ((i)<<1|1)#define

2015-10-05 22:13:12 294

原创 poj3728

u->v最优解=极大卖出-极小买入,记最近公共祖先r,穷举三种情况:u->v最优解=u->r最优解u->v最优解=r->v最优解u->v最优解=r->v极大卖出-u->r极小买入#include#include #include#include#include#includeusing namespace std;#define lch(i) ((i)<<1)#def

2015-10-04 21:27:35 425

空空如也

空空如也

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

TA关注的人

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