自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 问答 (1)
  • 收藏
  • 关注

原创 hdu5573 Binary Tree (构造)

题目:一棵二叉树,根节点是1,往后依次左节点是2*i, 右节点是2* i+1。现从根节点开始往下走,走k个节点,每个节点可取正数或负数,问能否求和凑出n? 1≤N≤1091 \leq N \leq 10^9 N≤2k≤260N \leq 2^k \leq 2^{60}分析:因为还要输出路径,和每个数取正还是取负,就感觉应该是个构造或找规律的题,否则不好记录路径。又有N≤2kN \leq 2^k,

2017-10-21 18:16:13 292

原创 hdu5898 odd-even number (数位DP)

题目:给出 [L, R] ,求出这个区间内有多少个数满足:按数位看,连续的奇数有偶数个,连续的偶数有奇数个。分析:典型的数位DP。 用 dp[pos][pre][jo] 表示后pos位,pre=0表示前一位是偶数,pre=1表示前一位是奇数,jo=0表示连续的与前一位同奇偶性的有偶数个,jo=1表示奇数个。 这道题更熟悉了数位DP的用法。数位DP其实就是用参数记录下来之前的状态,然后对当前位进行

2017-10-19 00:25:38 268

原创 hdu3333 Turing Tree(离线处理+线段树)

题目:给一个序列a,询问一个区间[l,r],输出区间内不同数字的和。 (1 ≤ N ≤ 30000,1 ≤ Q ≤ 100000)分析:这种题看出来是线段树做,但是线段树不能只加一个区间里不同的数字。从线段树入手是不可能了,所以想办法怎么能让一个区间内相同的数字只被计算一次。既然树不可更改,说明求和的时候相同的数只有一个在树里,想办法实现这个就可以了。核心就是从小区间往大区间一点一点扩展,这棵树肯

2017-10-14 03:27:32 324

原创 hdu5873 Football Games

题目:有 m 组球队, 每组有 b 支球队. 每组之间两两踢球, 赢得加2分, 平手各加1分, 输的不得分. 现在告诉你每组里面每只球队最后的分数, 问这个分数序列是否正确.分析:如果没有平手选项, 赢得加一分的话, 可以用Landau’s Theorem判定, 这题稍微修改下这个定理就好了. 令s1,s2,...,sns_1,s_2,...,s_n​​ 是他们的得分序列, 从小到大拍个序, 使得s

2017-10-11 00:35:14 184

原创 hdu5876 Sparse Graph(bfs最短路)

题目:给一个图 G,称 G 的补图为 H,给一个点 S ,求 H 中 S 与剩下 N - 1个点的最短路。分析:因为题目点数200000,而原图边数只有20000,所以补图的边会非常多,所以跑最短路是肯定不行的。 感觉补图是个重要条件,因为补图里会有一大部分点和s点直接相连,得利用这个条件。看题解用bfs,主要思想就是找出那些补图里可以直接相连的点。 bfs是每次用一个“当前点”往外扩展,每个点

2017-10-10 13:35:01 179

原创 hdu5877 Weak Pair(离散化+线段树+dfs)

题目:一棵有n个节点的树,每个点有一个权值。给出k,要求找出树上有多少个数对 (u,v) 满足如下条件:u是v的祖先。(u,v不同)au∗av≤ka_u*a_v\leq k 分析:利用dfs的过程,在dfs遍历一棵树的时候,若此时在v点,那么可以保证的是v点所有的祖先都已经被遍历了。所以,我们可以把v之前的点加入线段树,到v的时候直接查询出在祖先中有多少个≤av\leq a_v。但是,有一些点

2017-10-06 02:33:47 222

原创 hdu5534 Partial Tree (巧妙转为完全背包)

题目:一个树由 n 个点 n-1 条边构成,已知度数为 i 的点的权值是 f(i)。问,这棵树最大权值是多少。分析:很好的一道题。 一开始整个队伍一直在想贪心,如何往里一条一条加边使得符合要求。后来又想“如何将一个有k条边的满足要求的变成一个k+1边的”,看似正确,其实并没有最优子结构。其实这时就应该果断放弃贪心的想法,去从别的角度入手。可惜能力不够眼界不宽。这道题需要猜一个小结论:一个树总度数肯

2017-10-03 20:37:10 480

原创 hdu5536 Chip Factory (异或最大值)

题目:给 n 个数,从中选出sis_i, sjs_j, sks_k使得(si+sj)⊕sk(s_i + s_j)\oplus s_k最大,输出最大值。n≤1000,si≤109n \leq 1000,s_i \leq10^9分析:看见异或就换二进制。 枚举sis_i和sjs_j,对于每个和,都在字典树里逐位找使得异或结果最大的那个。找之前把si,sjs_i,s_j从树里删掉。注意字典树不一定非要对

2017-10-02 02:28:17 222

空空如也

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

TA关注的人

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