UVA 507 - Jill Rides Again 动态规划】的更多相关文章

  Jill Rides Again  Jill likes to ride her bicycle, but since the pretty city of Greenhills where she lives has grown, Jill often uses the excellent public bus system for part of her journey. She has a folding bicycle which she carries with her when…
题目大意:最大和子序列问题.由于具有最大和的子序列具有一下性质:第一项不为负数,并且从第一项开始累加,中间不会有和出现负数,因为一旦有负数我们可以抛弃前边的部分以得到更大的子序列和,这将会产生矛盾. #include <cstdio> int main() { #ifdef LOCAL freopen("in", "r", stdin); #endif int T; scanf("%d", &T); ; kase <=…
CJOJ 1070 [Uva]嵌套矩形(动态规划 图论) Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, d) 中当且仅当 a<c, b<d,或者 b<c, a<d(相当于把矩形 X 旋转了 90°).例如 (1, 5) 可以嵌套在 (6, 2) 内,但不能嵌套在 (3, 4) 内. 你的任务是选出尽量多的矩形,使得除了最后一个之外,每一个矩形都可以嵌套在下一个矩形内. Input 第一…
CJOJ 1071 [Uva]硬币问题(动态规划) Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值. Input 第一行两个整数,n,S(1≤n≤100, 0≤S≤100000). 第二行n个整数vi-1...n(1≤vi≤S). Output 第一行两个整数,分别表示硬币数目的最小值 a 和最大值 b .无解则输出 -1 . 第二行 a 个整数分别表示使用的是第…
option=com_onlinejudge&Itemid=8&page=show_problem&problem=448">题目:uva507 - Jill Rides Again(最长连续和) 题目大意:给每两个站之间的惬意度,惬意的路线必须加起来的和不小于0.帮Jill找出她惬意的路线,要求是最长的,而且一样长的话取站相对靠前的. 代码: #include <stdio.h> #include <string.h> const int…
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=40  Arbitrage  Background The use of computers in the finance industry has been marked with controversy lately as programmed tr…
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1832 题意 n个数据,A,B两个玩家轮流从两端取1到多个数字,最终数字加和为分数,分数最大的获胜,A为先手,二者都很聪明,求A分数-B分数. 思路 如刘书, 区间DP,明显可以用a[i][j]记录区间[i,j)的先手最大分数. 感想 1. 要像刘一样,在能达到要求之后进一步思考如何减…
因为数的总和一定,所以用一个人得分越高,那么另一个人的得分越低. 用$dp[i][j]$表示从$[i, j]$开始游戏,先手能够取得的最高分. 转移通过枚举取的数的个数$k$来转移.因为你希望先手得分尽量高,所以另一个人的最高得分应尽量少. $dp[i][j] = sum[i][j] - \min \{dp[i + k][j],dp[i][j - k]\}$ 但是发现计算$dp[i + k][j],dp[i][j - k]$的最小值的地方很重复,所以用一个$f[i][j]$储存前者的最优值,$g…
讲一下题目大意,就是有两个长度为p + 1和q + 1的序列,求它们的LCS. 如果用O(pq)的算法对于这道题来说还是太慢了.所以要另外想一些方法.注意到序列中的所有元素都不相同,所以两个序列中数对应的位置都是唯一的,就用第一个序列的元素对第二个序列的元素进行重新编号,记录它们在第一个序列中出现的位置(如果不存在就随便记一个不能达到的值),不存在的话就说明它们对LCS没有贡献.那么看张图: 如果不能明白,那..看张有关不合法情况的图: 有没有发现LCS的长度就是第二个序列的LIS的长度? /*…
这道题目并不是很难理解,题目大意就是求从第一列到最后一列的一个字典序最小的最短路,要求不仅输出最短路长度,还要输出字典序最小的路径. 这道题可以利用动态规划求解.状态定义为: cost[i][j] = max{cost[i+1][j+k]+c[i][j]}(k=-1,0,1) 关于最短路长度的求法,我们可以通过上边的状态转移方程递推求解.cost代表从第i列到第c-1列的最短路,只要找出cost[0][j](j代表行号)中的最大值,我们得到的结果就是最短路. 我们已经得到了最短路的长度.下一步,…