2016年1月1日

BZOJ 3224 普通平衡树 treap or vector

摘要: 很明显这是一道treap的题,但看了黄学长的博客后,也让我大开了眼界,没想到vector也能用那么短的编码量把这道题AC,着实令我敬佩。这也提醒了我 STL 的重要性。 的确, 对于C++ 选手来说,如果能灵活地使用 STL, 的确受益匪浅(虽然速度可能比其他的慢一点,但正确性和编程复杂度都比其... 阅读全文

posted @ 2016-01-01 13:05 83131 阅读(192) 评论(0) 推荐(0)

2015年12月31日

BZOJ 1015 星球大战 并查集+离线

摘要: 这道题说来真是艰辛,从一开始的RE,到RE,到刚刚的WA,再到AC。 这只能说明我进步的历程,还有我需要不断的加强努力。这道题思路不难,从很久前在黑书中并查集一节就能找到解题的踪影,因为并查集只能并,分不了,所以我们就得离线,倒过来写。只不过这道题真的得审好题目,它问的是剩下的星球中有多少个连通分... 阅读全文

posted @ 2015-12-31 23:11 83131 阅读(127) 评论(0) 推荐(0)

2015年12月29日

BZOJ 1787: [Ahoi2008]Meet 紧急集合

摘要: 这道题不难,就是3个点的lca。算法有点多,写成树链剖分的吧!跑完2400多毫秒。还好,挺顺利的,加油!努力啊!注意看数据范围!相信自己,能行的 1 #include 2 #include 3 #include 4 #define rep(i,j,k) for(int i = j; i = k;... 阅读全文

posted @ 2015-12-29 20:44 83131 阅读(178) 评论(0) 推荐(0)

BZOJ 1029 [JSOI2007]建筑抢修 贪心

摘要: 顺利,思路大概是是这样,按照任务截止的时间从小到大排序,如果任务截止的时间相同就按任务执行的时间从大到小排序(后面再说为什么),并存进一个队列里。然后依次把这些任务从队列中取出按顺序执行,如果某次发现不满足,那么就在之前处理过的任务中取出执行时间最长的减去。(所以我就把任务按执行时间从大到小排序了... 阅读全文

posted @ 2015-12-29 19:39 83131 阅读(149) 评论(0) 推荐(0)

BZOJ 2748 音量调节

摘要: 一看这是一道很简单的题,写了暴力,就走了,的确仅4毫秒就AC了。但后来我以为或许BFS会更快(加之,太久没写搜索了),就回来重写了一下,不写不知道一写吓一跳,MLE了。这才仔细一想,暴力的状态转移是 O(n^2)的,但暴力的搜索是O(2^n)的,把我吓死了。看来以后写算法一定得多想啊! dp的好处... 阅读全文

posted @ 2015-12-29 19:12 83131 阅读(162) 评论(0) 推荐(0)

BZOJ 3524: [Poi2014]Couriers 主席树

摘要: 这道题直接在我上一篇博客的代码的基础上改的。再一次地证明了 read() 读入是要比 scanf 快的事实,没加read(),跑了5400毫秒,加了之后,跑了4600毫秒,再加个 inline 又快了300毫秒。 最终4384毫秒跑完此题。加油。 (不过一开始因为是改的,RE了一次,以后要小心啊!... 阅读全文

posted @ 2015-12-29 14:24 83131 阅读(150) 评论(0) 推荐(0)

POJ 2104 第K大的数, 主席树,

摘要: 第一次接触这种神奇的数据结构,感觉不错。有学了个好东西,也不难。他主要应该是针对于数据统计的,例如本题的第k大的数。算法的主要思想是 先对给定的数离散化,然后在线段树中保存数字出现的次数(即叶子节点会存该节点所对应的数字出现的次数,非叶结点则保存子节点的数字之和)(这就与我们普通的线段树不同了)... 阅读全文

posted @ 2015-12-29 13:58 83131 阅读(222) 评论(0) 推荐(0)

2015年12月28日

BZOJ 3631: [JLOI2014]松鼠的新家

摘要: 太好了,第一次交就AC了,第一次这么顺利,这是一道树链剖分的题,比较容易吧!加油,相信自己,能行的。 不过还是有点慢,跑了1900多毫秒。 1 #include 2 #include 3 #define rep(i,j,k) for(int i = j; i to = x, pt->next... 阅读全文

posted @ 2015-12-28 14:18 83131 阅读(212) 评论(0) 推荐(0)

BZOJ 4300: 绝世好题 二进制

摘要: 这是道动规的题,还好。昨晚在睡前想了一下,结合了之前解题的经验,首先有关二进制运算的很多都是独立的,所以我们可以把这道题弄成这样,设 a[i] 为 如果 j 的二进制第 i 位为一所能取得的最大长度,然后在 j 的所有二进制为 1 的数中取 a[i] 最大的,并更新其他的二进制位。就这样了,加油啊... 阅读全文

posted @ 2015-12-28 13:30 83131 阅读(213) 评论(0) 推荐(0)

2015年12月27日

BZOJ 2761 不重复的数字 哈希 or set or 二叉搜索树

摘要: 这是我第一次写哈希,感觉还好。虽然这道题今天一直在想用什么方法最好,一开始想过用 unique 这个函数, 想过 map ,想过 set,(刚才看别人题解的过程中,也有用treap写的,其实就是二叉搜索树) 但是map 和 set 查询都是 log n的,太慢了点。而且,我一直想学哈希,之所以一直... 阅读全文

posted @ 2015-12-27 20:04 83131 阅读(225) 评论(0) 推荐(0)

导航