摘要:
题目链接:http://codeforces.com/contest/675/problem/E 你可以从第 i 个车站到 [i + 1, a[i]] 之间的车站花一张票。 p[i][j]表示从 i 到 j 最少花费多少张票,问你 ∑p[i][j] (1<=i<j<=n) 是多少。 设dp[i]表示 阅读全文
摘要:
题目链接:http://codeforces.com/problemset/problem/678/D 简单的矩阵快速幂模版题 矩阵是这样的: 阅读全文
摘要:
题目链接:http://codeforces.com/problemset/problem/455/A 给你n个数,要是其中取一个大小为x的数,那x+1和x-1都不能取了,问你最后取完最大的和是多少。 简单dp,dp[i]表示取i时zui最大和为多少,方程为dp[i] = max(dp[i - 1] 阅读全文
摘要:
题目链接:http://codeforces.com/problemset/problem/429/B 给你一个矩阵,一个人从(1, 1) ->(n, m),只能向下或者向右; 一个人从(n, 1) ->(1, m),只能向上或者向右。必须有一个相遇点, 相遇点的值不能被取到, 问两个人能得到的最大 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1988 有n个元素,开始每个元素自己 一栈,有两种操作,将含有元素x的栈放在含有y的栈的顶端,合并为一个栈。第二种操作是询问含有x元素下面有多少个元素。 经典的带权并查集,cnt表示包含这个元素的集合中所有元素个数,dis表示这个元素离 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 简单的最短路问题,这题听说有重边。我用spfa和dijkstra写了一遍,没判重边,速度都差不多。 dijkstra+优先队列: spfa: 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 老鼠初始时在n*n的矩阵的(0 , 0)位置,每次可以向垂直或水平的一个方向移动1到k格,每次移动过去的那个格子里面的数值必须比当前所在格子里面的大,求出路径上所有数值总和最大值。 直接上代码: 阅读全文
摘要:
题目链接: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个苹果 阅读全文
摘要:
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2243 树链剖分的点剖分+线段树。漏了一个小地方,调了一下午...... 还是要细心啊! 结构体里lc表示这个区间的最左端的颜色,rc表示这个区间的最右端的颜色,sum表示这个区间的颜色段数目 阅读全文
摘要:
题目链接:http://codeforces.com/problemset/problem/474/D 用RW组成字符串,要求w的个数要k个连续出现,R任意,问字符串长度为[a, b]时,字符串的种类有多少。 递推,dp[i]表示长度为i的种类有多少。当i < k的时候 dp[i] = 1 , 当i 阅读全文