• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 58 下一页
2017年8月4日
Z算法
摘要: z-algorithm是一种字符串匹配算法,能够实现功能:对字符串S,O(n)地求出S的全体后缀与S自身的最长公共前缀的长度,记录在数组z[]中(z[i]即suffix i与S的最长公共前缀的长度)。 一、算法原理与实现 约定: 字符串S的下标从0开始; S[i...j]代表字符串S[i]S[i+1 阅读全文
posted @ 2017-08-04 20:27 dwtfukgv 阅读(369) 评论(0) 推荐(0)
UVa 10245 The Closest Pair Problem (分治)
摘要: 题意:给定 n 个点,求最近两个点的距离。 析:直接求肯定要超时的,利用分治法,先把点分成两大类,答案要么在左边,要么在右边,要么一个点在左边一个点在右边,然后在左边或右边的好求,那么对于一个在左边一个在右边的,我们可以先求全在左边或右边的最小值,假设是d,那么一个点在左边,一个点在右边,那么横坐标 阅读全文
posted @ 2017-08-04 14:45 dwtfukgv 阅读(248) 评论(0) 推荐(0)
POJ 1741 Tree (树分治)
摘要: 题意:给定一棵树,然后给定每条边的权值,问你有多少个点对满足路径的权和小于等于m。 析:直接枚举是肯定不行的,会TLE,利用分治的思想,我们可以把树按重心分成几部分,那么答案就是所有子树的点对都经过重心的,对于所有的子树的重心也是这样,对于经过重心的,可以先求出每个点都重心的距离,再排序,利用单调性 阅读全文
posted @ 2017-08-04 14:08 dwtfukgv 阅读(122) 评论(0) 推荐(0)
2017年8月2日
HDU 3487 Play with Chain (Splay)
摘要: 题意:给定一个序列,1 2 3 ... n,然后有两种操作。 第一种是 CUT x y z ,把第 x 到 第 y 个数剪切下来,然后放到第 z 个后面。 第二种是 FLIP x y 把 第 x 到第 y 个反转。 最后输出序列。 析:几乎就是裸的Splay,就是两种操作,剪切和反转,用splay很 阅读全文
posted @ 2017-08-02 21:02 dwtfukgv 阅读(168) 评论(0) 推荐(0)
2017年8月1日
POJ 2828 Buy Tickets (线段树)
摘要: 题意:给定 n 个人,每次在第 pos 位置,插入一个人,然后后面的向后移动,问你最后的顺序是什么。 析:肯定不能模拟,要不然,肯定TLE,然后我们可以倒着考虑,最后一个人的位置是肯定能确定的,因为他就在最后才插入的,然后剩下的n-1个时,第n-1个人的相对位置也就确定了,依次,这样就可以用线段树来 阅读全文
posted @ 2017-08-01 09:23 dwtfukgv 阅读(138) 评论(0) 推荐(0)
HDU 3723 Delta Wave (高精度+calelan数)
摘要: 题意:给定一个图,问你只能向上向下,或者平着走,有多少种方法可以走到最后一个格。 析:首先先考虑,如果没有平的情况就是calelan数了,现在有平的情况,那么就枚举呗,因为数很大,所以要用高精度。 答案应该是sum(C(n, 2*i)*C(n, i)/(i+1)) = a1 + a2 + a3 + 阅读全文
posted @ 2017-08-01 00:25 dwtfukgv 阅读(231) 评论(0) 推荐(0)
2017年7月31日
UVa 1625 Color Length (DP)
摘要: 题意:给定两个序列,让你组成一个新的序列,让两个相同字符的位置最大差之和最小。组成方式只能从一个序列前部拿出一个字符放到新序列中。 析:这个题状态表示和转移很容易想到,主要是在处理上面,dp[i][j] 表示从第一序列中拿了 i 个字符,从第二序列中拿了 j 个字符的最小和是多少,这个要提前预处理每 阅读全文
posted @ 2017-07-31 15:27 dwtfukgv 阅读(162) 评论(0) 推荐(0)
2017年7月30日
HDU 3333 Turing Tree (主席树)
摘要: 题意:给定上一个序列,然后有一些询问,求区间 l - r 中有多少个不同的数的和。 析:和求区间不同数的方法是一样,只要用主席树维护就好。 代码如下: 阅读全文
posted @ 2017-07-30 20:56 dwtfukgv 阅读(304) 评论(0) 推荐(0)
SPOJ DQUERY D-query (主席树)
摘要: 题意:给定上一个序列,然后有一些询问,问你区间 l - r 中有多少个不同的数。 析:一个主席树入门题,首先是先进行处理,记录不同数出现的个数,如果相同的,先减去以前的,再加上这个最新的, 对于查询,处理好,每一部分。 代码如下: 阅读全文
posted @ 2017-07-30 16:37 dwtfukgv 阅读(180) 评论(0) 推荐(0)
POJ 2104 K-th Number (主席树)
摘要: 题意:给定一个序列,然后有 q 个询问,每次询问 l - r 区间内的第 k 大的值。 析:很明显的主席树,而且还是裸的主席树,先进行离散化,然后用主席树进行查询就好。 代码如下: 阅读全文
posted @ 2017-07-30 14:09 dwtfukgv 阅读(197) 评论(0) 推荐(0)
2017年7月29日
HDU 3724 Encoded Barcodes (Trie)
摘要: 题意:给n个字符串,给m个询问,每个询问给k个条形码。每个条形码由8个小码组成,每个小码有相应的宽度,已知一个条形码的宽度只有2种,宽的表示1,窄的表示0。并且宽的宽度是窄的宽度的2倍。由于扫描的时候有误差,每个小码的宽度为一个浮点型数据,保证每个数据的误差在5%内。所以一个条形码可以对应一个ASC 阅读全文
posted @ 2017-07-29 22:14 dwtfukgv 阅读(173) 评论(0) 推荐(0)
HDU 3729 I'm Telling the Truth (二分匹配)
摘要: 题意:给定 n 个人成绩排名区间,然后问你最多有多少人成绩是真实的。 析:真是没想到二分匹配,。。。。后来看到,一下子就明白了,原来是水题,二分匹配,只要把每个人和他对应的区间连起来就好,跑一次二分匹配,裸的。 代码如下: 阅读全文
posted @ 2017-07-29 20:51 dwtfukgv 阅读(201) 评论(0) 推荐(0)
2017年7月28日
HDU 4111 Alice and Bob (博弈+记忆化搜索)
摘要: 题意:给定 n 堆石头,然后有两种操作,一种是把从任意一堆拿走一个,另一种是把一个石子放到另一堆上。 析:整体看,这个题真是不好做,dp[a][b] 表示有 a 堆1个石子,b个操作,操作是指把其他的不是1的堆全部合并起来并全部拿完所以要的操作, 要注意的是 ,一共有这几种情况。 1.a 为0,说明 阅读全文
posted @ 2017-07-28 10:27 dwtfukgv 阅读(171) 评论(0) 推荐(0)
2017年7月27日
HDU 6055 Regular polygon (暴力)
摘要: 题意,二维平面上给N个整数点,问能构成多少个不同的正多边形。 析:容易得知只有正四边形可以使得所有的顶点为整数点。所以只要枚举两个点,然后去查找另外两个点就好。 代码如下: 阅读全文
posted @ 2017-07-27 18:39 dwtfukgv 阅读(297) 评论(0) 推荐(0)
HDU 6047 Maximum Sequence (贪心+单调队列)
摘要: 题意:给定一个序列,让你构造出一个序列,满足条件,且最大。条件是 选取一个ai <= max{a[b[j], j]-j} 析:贪心,贪心策略就是先尽量产生大的,所以就是对于B序列尽量从头开始,由于数据比较大,采用桶排序,然后维护一个单调队列,使得最头上最大。 代码如下: 阅读全文
posted @ 2017-07-27 18:32 dwtfukgv 阅读(410) 评论(0) 推荐(0)
UVa 11149 Power of Matrix (矩阵快速幂,倍增法或构造矩阵)
摘要: 题意:求A + A^2 + A^3 + ... + A^m。 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))(A + A^2 + A^3 + ... + A^(m/2)),然后依次计算下去,就可以分解,logn 阅读全文
posted @ 2017-07-27 11:44 dwtfukgv 阅读(214) 评论(0) 推荐(0)
2017年7月26日
HDU 4081 Peach Blossom Spring (最小生成树+dfs)
摘要: 题意:给定一个 n 个点和相应的权值,要求你用 n-1 条边连接起来,其中一条边是魔法边,不用任何费用,其他的边是长度,求该魔法边的两端的权值与其他边费用的尽量大。 析:先求出最小生成树,然后再枚举每一条边,求出最大值,任意两点之间的距离可以通过预处理来解决,最小生成树时,要用prime算法,要不然 阅读全文
posted @ 2017-07-26 19:27 dwtfukgv 阅读(190) 评论(0) 推荐(0)
2017年7月25日
HDU 6034 Balala Power! (贪心+坑题)
摘要: 题意:给定一个 n 个字符串,然后问你怎么给 a-z赋值0-25,使得给定的字符串看成26进制得到的和最大,并且不能出现前导0. 析:一个很恶心的题目,细节有点多,首先是思路,给定个字符一个权值,然后要注意的进位,然后排序,从大到小,给每个字符赋值,如果最后一个出现前导0,就得向前找一个最小的不在首 阅读全文
posted @ 2017-07-25 20:13 dwtfukgv 阅读(1342) 评论(0) 推荐(0)
HDU 4424 Conquer a New Region (并查集)
摘要: 题意:给定一棵树,让你选一个中心城市,问你中心城市到所有其他城市的权值和最小,每条路的权值是该边上和最小权值。 析:从大到小枚举边,然后用并查集进行维护,在合并两个集合时,要考虑两边集合加上该边的的最大的那一个,每次要取最大值。 代码如下: 阅读全文
posted @ 2017-07-25 10:49 dwtfukgv 阅读(185) 评论(0) 推荐(0)
HDU 4430 Yukari's Birthday (二分)
摘要: 题意:有 n 个蜡烛,让你插到蛋糕上,每一层要插 k^i个根,第0层可插可不插,插的层数是r,让 r * k 尽量小,再让 r 尽量小,求r 和 k。 析:首先先列出方程来,一个是不插的一个是插的,比如插的是 sigam(0, r, k^i) = n,然后 r 比较小,可以枚举 r,然后二分求 k。 阅读全文
posted @ 2017-07-25 09:20 dwtfukgv 阅读(210) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 58 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3