上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 39 下一页
摘要: 题目大意:给定一段区间 [l,r] ,N 条线段,求至少用多少条线段能够覆盖整个区间,不能覆盖输出 1。 题解:每次在起点小于当前位置的线段集合中选择有端点最大的位置作为下一个位置,并更新答案,如果当前位置无法被更新,输出 1。 比较坑的一点是,输入数据会有 r using namespace st 阅读全文
posted @ 2018-11-23 21:34 shellpicker 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个数字三角形,求从 (1,1) 到第 N 行的路径经过的权值之和加上该路径上任意一个点的权值之和的最大值。 题解:任意加一条路径上的某个值,可以看成是 多了一次选择的权利 ,即:在每次经过一个点时,若没使用过权利,可以选择使用或者不使用,若已经使用过,则不能再使用。因此有状态 $dp 阅读全文
posted @ 2018-11-21 13:10 shellpicker 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个数字三角形,求从 (1,1) 走到最后一行的路径和对 100 取余数的最大值。 题解:由于最优解涉及到取余数的操作,因此按照原先的状态设计并不符合最优子结构性质,即:两个最大数相加取模并不能得到一个最优解。因此将其转化为可行性问题,即:再开一个维度记录下每个位置可能的模值,最后取第 阅读全文
posted @ 2018-11-21 11:59 shellpicker 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 定义一个串:只含有 '( )','[ ]','{ }',3种(6个)字符。 定义 SS 串: 1. 空串是SS表达式。 2. 若A是SS表达式,且A串中不含有中括号和大括号,则(A)是SS表达式。 3. 若A是SS表达式,且A串中不含有大括号,则[A]是SS表达式。 4. 若A是SS表达 阅读全文
posted @ 2018-11-20 18:52 shellpicker 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一棵 N 个点的无向树,边有边权,求树上任意两点间的距离和,答案对 1e9+7 取模。 题解:依题可知,这道题所求即:$\Sigma_{i=1}^{n 1}\Sigma_{j=i+1}^{n} dist(i,j)$,枚举树上任意两点并计算距离的复杂度要达到 $O(n^2logn)$,时间难 阅读全文
posted @ 2018-11-20 11:27 shellpicker 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个顶点的邻接矩阵、起点顶点、终点顶点,求至少经过 K 条边(边可以重复)从起点到终点的最短路长度,若不能到达,输出 1。 题解:至少经过 K 条边和恰好经过 K 条边的初始条件不同,因为至少经过 1 条边的任意两点最短路就是通过 Floyd 算法算出的矩阵,而恰好经过 K 条 阅读全文
posted @ 2018-11-19 22:50 shellpicker 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定两个有 N 个数的序列 A,B,每个点有一个对应的权值,现需要计算答案的贡献:$B[i] min\{A[j]+s (i j),j\in[1,i] \}$ 的最小值。 题解:由于 B 序列是固定的,因此可以考虑最优化与 B 对应项相乘的值即可。 可以划分子问题,即:用 $dp[i]$ 表 阅读全文
posted @ 2018-11-19 13:50 shellpicker 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个点,M 条边的无向无权图,求从 1 号点出发到其他每个点最短路的条数。 题解:在跑 dij 时顺便维护 cnt[ ] 数组,用来记录到每个点的最短路条数。 代码如下 cpp include using namespace std; typedef pair P; const 阅读全文
posted @ 2018-11-19 11:08 shellpicker 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个 N 个顶点,M 条边的无向图,求从起点到终点恰好经过 K 个点的最短路。 题解:设 $d[1][i][j]$ 表示恰好经过一条边 i,j 两点的最短路,那么有 $d[r+m][i][j]=min\{d[r][i][k]+d[m][k][j] \}$,等价于矩阵乘法。 这道题 K 阅读全文
posted @ 2018-11-18 21:31 shellpicker 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 维护一个长度为 N 的序列,支持区间加和、区间乘积、查询区间和操作。 代码如下 cpp include using namespace std; const int maxn=1e5+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar( 阅读全文
posted @ 2018-11-18 15:36 shellpicker 阅读(249) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 39 下一页