07 2016 档案

hdu 5442 Favorite Donut 最大表示法+kmp
摘要:题目链接 给你一个字符串, 然后把他想象成一个环。 从某一个地方断开,然后逆时针或顺时针, 都可以形成一个字符串, 求字典序最大的那种。 输出断开位置以及是顺时针还是逆时针。 如果两个一样, 输出位置靠前的一个, 如果位置也一样, 输出顺时针的那个。 显然是一个最大表示法。 麻烦的是逆时针的情况, 阅读全文

posted @ 2016-07-31 13:00 yohaha 阅读(172) 评论(0) 推荐(0)

hdu 5446 Unknown Treasure 中国剩余定理+lucas
摘要:题目链接 求C(n, m)%p的值, n, m<=1e18, p = p1*p2*...pk. pi是质数。 先求出C(n, m)%pi的值, 然后这就是一个同余的式子。 用中国剩余定理求解。 阅读全文

posted @ 2016-07-31 10:11 yohaha 阅读(158) 评论(0) 推荐(0)

hdu 5769 Substring 后缀数组
摘要:题目链接 给一个字符x, 一个串s。 问你s中不同的子串的数量有多少, 子串必须包含至少一个字符x。 官方题解: 其实大概想一下, n-nxt[sa[i]]其实就是当前这个后缀中, 包含字符x的后缀串的数量。 n-sa[i]-height[i]就是和上一个串不重复的后缀的数量。 阅读全文

posted @ 2016-07-29 12:28 yohaha 阅读(230) 评论(0) 推荐(0)

codevs 1913 数字梯形问题 费用流
摘要:题目链接 给你一个数字梯形, 最上面一层m个数字, 然后m+1,......m+n-1个。 n是层数。 在每个位置, 可以向左下或右下走。然后让你从最顶端的m个数字开始, 走出m条路径, 使得路过的数字总和最大。 给你三种规则, 第一种是,m条路径完全不能相交。 第二种是可以在数字处相交。 第三种是 阅读全文

posted @ 2016-07-28 11:07 yohaha 阅读(212) 评论(0) 推荐(0)

codevs 1922 骑士共存问题 网络流
摘要:题目链接 给一个n*n的棋盘, 上面有障碍物, 有障碍物的不能放东西。然后往上面放马, 马不能互相攻击, 问最多可以放多少个马。 按x+y的奇偶来划分, 如果两个格子可以互相攻击, 就连一条权值为1的边。 阅读全文

posted @ 2016-07-27 16:28 yohaha 阅读(173) 评论(0) 推荐(0)

hdu 5755 Gambler Bo 高斯消元
摘要:题目链接 给n*m的方格, 每个格子有值{0, 1, 2}。 然后可以对格子进行操作, 如果选择了一个格子, 那么这个格子的值+2, 这个格子上下左右的格子+1, 并且模3。 问你将所有格子变成0的操作方法。 其实就是一个模3的方程组, 高斯消元就可以了。 不知道为什么昨天比赛就是想不到...... 阅读全文

posted @ 2016-07-27 10:58 yohaha 阅读(508) 评论(0) 推荐(0)

hdu 2509 Be the Winner 博弈
摘要:题目链接 有n堆苹果, 对于其中的每一堆的x个苹果, 它是放在一条线上的。 你每次可以对一堆苹果进行操作, 可以取y个, 1<=y<=x。 然后如果你是取的一条线上中间的苹果, 那么这一堆苹果将会变成两堆。 问你先手是否必胜。 简单的打一个sg表就可以了。 注意特判全都是1的情况。 阅读全文

posted @ 2016-07-26 22:30 yohaha 阅读(160) 评论(0) 推荐(0)

hdu 2828 Lamp 重复覆盖
摘要:题目链接 给n个灯和m个开关, 每个灯可以由若干个开关控制, 每个开关也可以控制若干个灯, 问你能否找到一种开关的状态, 使得所有的灯都亮。 将灯作为列, 然后把每个开关拆成两行, 开是一行, 关是一行。 然后跑一下就可以。 输出路径的话, 就是用一个vis数组记录一下哪些行被访问过。 阅读全文

posted @ 2016-07-26 09:26 yohaha 阅读(157) 评论(0) 推荐(0)

hdu 5046 Airport 二分+重复覆盖
摘要:题目链接 给n个点, 定义两点之间距离为|x1-x2|+|y1-y2|。 然后要选出k个城市建机场, 每个机场可以覆盖一个半径的距离。 求在选出点数不大于k的情况下, 这个半径距离的最大值。 二分半径, 然后距离小于等于半径的就连边, 然后跑重复覆盖。 阅读全文

posted @ 2016-07-25 18:36 yohaha 阅读(181) 评论(0) 推荐(0)

cogs 577 . 蝗灾 cdq分治
摘要:题目链接 两种操作, 一种将x, y这个格子+w, 另一种给出左下和右上坐标, 问你这个矩形中值的和。 阅读全文

posted @ 2016-07-25 13:21 yohaha 阅读(262) 评论(0) 推荐(0)

acdream 1157Segments cdq分治
摘要:题目链接 阅读全文

posted @ 2016-07-24 22:57 yohaha 阅读(144) 评论(0) 推荐(0)

hdu 5730 Shell Necklace fft+cdq分治
摘要:题目链接 dp[n] = sigma(a[i]*dp[n-i]), 给出a1.....an, 求dp[n]。 n为1e5. 这个式子的形式显然是一个卷积, 所以可以用fft来优化一下, 但是这样也是会超时的。 所以可以用cdq分治来优化。 cdq分治就是处理(l, mid)的时候, 将dp[l].. 阅读全文

posted @ 2016-07-22 11:55 yohaha 阅读(373) 评论(0) 推荐(0)

hdu 5727 Necklace 二分图匹配
摘要:题目链接 给2*n个珠子, n<=9, n个阴n个阳。 然后将它们弄成一个环, 阴阳交替。现在给你m个关系, 每个关系给出a, b。 如果阳a和阴b挨着, 那么a就会变暗。 问你最小变暗几个阳。 我们求出阴的所有全排列, 是9!, 因为形成一个环。 所以可以想象成一个珠子是固定不变的, 剩下n-1个 阅读全文

posted @ 2016-07-22 11:34 yohaha 阅读(181) 评论(0) 推荐(0)

hdu 5724 Chess 博弈
摘要:题目链接 一个n行20列的棋盘。 每一行有若干个棋子。 两人轮流操作, 每人每次可以将一个棋子向右移动一个位置, 如果它右边有一个棋子, 就跳过这个棋子, 如果有若干个棋子, 就将这若干个都跳过。 但是棋子不能移出边界。 如果没有办法移动了, 就算输。 问你先走的能否赢。 只有20列, 所以预处理出 阅读全文

posted @ 2016-07-20 22:34 yohaha 阅读(232) 评论(0) 推荐(0)

hdu 5726 GCD 倍增+ 二分
摘要:题目链接 给n个数, 定义一个运算f[l,r] = gcd(al, al+1,....ar)。 然后给你m个询问, 每次询问给出l, r。 求出f[l, r]的值以及有多少对l', r' 使得f[l, r] = f[l', r']。 第一个很简单, 用倍增的思想就可以了。 然后是第二个, 我们枚举每 阅读全文

posted @ 2016-07-20 19:45 yohaha 阅读(344) 评论(0) 推荐(0)

uvalive 6888 Ricochet Robots bfs
摘要:题目链接 给一个n*m的图, 图上有n个标号, n<=4, 然后有墙, 还有一个终点x。 每一步, 只能走某一个标号, 可以向四个方向走, 然后必须要碰到墙或者图的边界或者另一个标号才能停下来。 问你在t步之内能否使第一个标号到达终点。 因为有一个上限t。 所以直接bfs就可以, 感觉思路不是很难, 阅读全文

posted @ 2016-07-19 00:28 yohaha 阅读(258) 评论(0) 推荐(0)

hdu 4676 Sum Of Gcd 莫队+数论
摘要:题目链接 给n个数, m个询问, 每个询问给出[l, r], 问你对于任意i, j。gcd(a[i], a[j]) L <= i < j <= R的和。 假设两个数的公约数有b1, b2, b2...bn, 那么这两个数的最大公约数就是phi[b1] + phi[b2] + phi[b3]...+p 阅读全文

posted @ 2016-07-18 21:13 yohaha 阅读(184) 评论(0) 推荐(0)

导航