05 2016 档案

摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 老鼠初始时在n*n的矩阵的(0 , 0)位置,每次可以向垂直或水平的一个方向移动1到k格,每次移动过去的那个格子里面的数值必须比当前所在格子里面的大,求出路径上所有数值总和最大值。 直接上代码: 阅读全文
posted @ 2016-05-31 14:25 Recoder 阅读(132) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=1664 dp[i][j]表示i个盘放j个苹果的方案数,dp[i][j] 可以由 dp[i - 1][j] 和 dp[i][j - i] 递推而来。 当盘子的个数大于等于苹果的个数: dp[i - 1][j] :i - 1个盘子放j个苹果 阅读全文
posted @ 2016-05-30 20:39 Recoder 阅读(397) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2243 树链剖分的点剖分+线段树。漏了一个小地方,调了一下午...... 还是要细心啊! 结构体里lc表示这个区间的最左端的颜色,rc表示这个区间的最右端的颜色,sum表示这个区间的颜色段数目 阅读全文
posted @ 2016-05-30 16:48 Recoder 阅读(164) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/474/D 用RW组成字符串,要求w的个数要k个连续出现,R任意,问字符串长度为[a, b]时,字符串的种类有多少。 递推,dp[i]表示长度为i的种类有多少。当i < k的时候 dp[i] = 1 , 当i 阅读全文
posted @ 2016-05-30 11:33 Recoder 阅读(204) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308 题目很好懂,就是单点更新,然后求区间的最长上升子序列。 线段树区间合并问题,注意合并的条件是a[mid + 1] > a[mid],写的细心点就好了。 阅读全文
posted @ 2016-05-28 22:28 Recoder 阅读(159) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3911 给你n个数0和1,m个操作: 0操作 输出l到r之间最长的连续1的个数 1操作 将l到r之间的0变1,1变0 区间合并的模版题,结构体中的lsum1表示从此区间最左端开始连续1的个数,rsum1表 阅读全文
posted @ 2016-05-27 14:02 Recoder 阅读(297) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3667 最初给你n间空房,m个操作: 操作1 a 表示检查是否有连续的a间空房,输出最左边的空房编号,并入住a间房间。 操作2 a b 表示将编号为a之后的b间房间清空。 典型的区间合并问题,这位大牛讲的更清楚:http://www.c 阅读全文
posted @ 2016-05-26 22:31 Recoder 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/609/problem/E 给你n个点,m条边。 问枚举每条边,问你加这条边的前提下组成生成树的权值最小的树的权值和是多少。 先求出最小生成树,树链剖分一下最小生成树。然后枚举m条边中的每条边,要是这条边是最小生成树的其中一边,则 阅读全文
posted @ 2016-05-26 13:59 Recoder 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=1064 有n条绳子,长度分别是Li。问你要是从中切出m条长度相同的绳子,问你这m条绳子每条最长是多少。 二分答案,尤其注意精度问题。我觉得关于浮点数的二分for循环比while循环更好一点。注意最后要用到floor 保证最后答案不会四舍 阅读全文
posted @ 2016-05-24 13:17 Recoder 阅读(158) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512 阅读全文
posted @ 2016-05-23 20:55 Recoder 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=3237 一棵有边权的树,有3种操作。 树链剖分+线段树lazy标记。lazy为0表示没更新区间或者区间更新了2的倍数次,1表示为更新,每次更新异或1就可以。 熟悉线段树成段更新就很简单了,最初姿势不对一直wa,还是没有彻底理解lazy标 阅读全文
posted @ 2016-05-23 19:49 Recoder 阅读(318) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=2763 n个节点的树上知道了每条边权,然后有两种操作:0操作是输出 当前节点到 x节点的最短距离,并移动到 x 节点位置;1操作是第i条边的边权变成x。 树链边权剖分的模版题,修改单边权和求和。 阅读全文
posted @ 2016-05-23 13:14 Recoder 阅读(180) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 树链剖分的模版,成段更新单点查询。熟悉线段树的成段更新的话就小case啦。 阅读全文
posted @ 2016-05-22 22:39 Recoder 阅读(164) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1036 树链剖分模版题,打的时候注意点就行。做这题的时候,真的傻了,单词拼错检查了一个多小时... 代码如下: 阅读全文
posted @ 2016-05-22 22:17 Recoder 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.fzu.edu.cn/problem.php?pid=2082 树链剖分模版题,求和,修改单边权。 阅读全文
posted @ 2016-05-22 19:48 Recoder 阅读(207) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#problem/I 给你一棵有边权的树,有两个操作:一个操作是输出l到r点之间的最大的边权,另一个操作是修改某条边的权值。 这题是树链剖分的简单模版题,代码如下: 阅读全文
posted @ 2016-05-21 20:45 Recoder 阅读(267) 评论(0) 推荐(0) 编辑
摘要:我学的学习资料:http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html 和 ppt 树链剖分可以解决很多问题,辅助一些线段树之类的数据结构可以解决一些树上修改的问题。还可以求LCA,不过复杂度比RMQ实现的LCA多一个log。 下面是树链剖分实现的L 阅读全文
posted @ 2016-05-20 20:44 Recoder 阅读(452) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 LCA模版题。 RMQ+LCA: 树链剖分的LCA: 阅读全文
posted @ 2016-05-20 20:36 Recoder 阅读(178) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/675/problem/C 给你n个bank,1~n形成一个环,每个bank有一个值,但是保证所有值的和为0。有一个操作是每个相邻的bank之间可以转钱,让你用最少的操作使每个bank的值为0。 一开始没什么思路,看了一下别人的题 阅读全文
posted @ 2016-05-17 20:08 Recoder 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/675/D 给你一个如题的二叉树,让你求出每个节点的父节点是多少。 用set来存储每个数,遍历到a[i]的时候查找比a[i]大的数的位置,然后插入,而父亲就是刚好比a[i]小的数或刚好大的数。 然后讨论是哪一 阅读全文
posted @ 2016-05-17 17:53 Recoder 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/672/problem/D 有n个人,k个操作,每个人有a[i]个物品,每次操作把最富的人那里拿一个物品给最穷的人,问你最后贫富差距有多少。 先sort一下,最富的人很明显不会低于sum(a1 ~ an) / n , 所以二分一下 阅读全文
posted @ 2016-05-16 15:27 Recoder 阅读(175) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hzau.edu.cn/problem.php?id=18 题意是给你两个长度为n的数组,a数组相当于1到n的物品的数量,b数组相当于物品价值,而真正的价值表示是b[i]*k*k(k表示取的数量),给你m表示最少取m个物品。然后让你求取m个的最小的价值和。 一个物品的 阅读全文
posted @ 2016-05-15 21:11 Recoder 阅读(215) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5266 题目就是让你求LCA,模版题。注意dfs会栈溢出,所以要扩栈,或者用bfs写。 阅读全文
posted @ 2016-05-11 16:23 Recoder 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/670/problem/E 给你n长度的括号字符,m个操作,光标初始位置是p,'D'操作表示删除当前光标所在的字符对应的括号字符以内的所有字符(比如'(()())'),'R'操作表示右移光标,'L'操作表示左移光标。删除操作后光标 阅读全文
posted @ 2016-05-07 19:39 Recoder 阅读(282) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/problemset/problem/7/C 给你一个直线方程,有整数解输出答案,否则输出-1。 扩欧模版题。这里有讲解:http://www.cnblogs.com/Recoder/p/5459812.html (很久没写exgcd,都不会写了 阅读全文
posted @ 2016-05-04 21:27 Recoder 阅读(187) 评论(0) 推荐(0) 编辑
摘要:扩展欧几里德算法 要是 a*x + b*y = gcd(a,b) ,则一定存在整数对(x0 , y0)使其有解 则 x = x0 + (b/gcd)*t , y = y0 - (a/gcd)*t 是不定方程的通解 因为 a*x + b*y = gcd(a , b); 又因为 gcd(a , b) = 阅读全文
posted @ 2016-05-04 21:20 Recoder 阅读(277) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://codeforces.com/contest/667/problem/D 给你一个有向图,dis[i][j]表示i到j的最短路,让你求dis[u][i] + dis[i][j] + dis[j][v]的最大值,其中u i j v互不相同。 先用优先队列的dijkstra预处理 阅读全文
posted @ 2016-05-04 20:19 Recoder 阅读(220) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4052 初始给你w*h的矩阵,给你n个矩形(互不相交),按这些矩形尺寸把初始的矩形扣掉,形成一个新的'矩形'。然后给你1*m大小的矩形,问这个矩形在新'矩形'中有多少种放法。 一开始没想法==,然后看了看 阅读全文
posted @ 2016-05-03 16:14 Recoder 阅读(348) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示