Hdu 1260 【DP】.cpp
2013-06-05 14:39
295 查看
题意:
知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完..
输入:
给出T,表示有T组样例
给出n,表示有n个人买票..
给出n个数表示这个人单独买票会花的时间..
给出n-1个数,表示这个人和前面那个人一起买票会花的时间..
思路:
状态转移方程是:dp[i] = min(dp[i-1]+单独买花的时间, dp[i-2]+和前面那个人一起买花的时间)
初始状态是dp[1] = 第一个人单独买话的时间
Tips:
nothing..??!
Code:
View Code
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260
知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完..
输入:
给出T,表示有T组样例
给出n,表示有n个人买票..
给出n个数表示这个人单独买票会花的时间..
给出n-1个数,表示这个人和前面那个人一起买票会花的时间..
思路:
状态转移方程是:dp[i] = min(dp[i-1]+单独买花的时间, dp[i-2]+和前面那个人一起买花的时间)
初始状态是dp[1] = 第一个人单独买话的时间
Tips:
nothing..??!
Code:
#include <stdio.h> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 2010; int main() { int T, n; int d[MAXN], s[MAXN], dp[MAXN] = {0}; int hh, mm, ss; scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%d", &s[i]); for (int i = 2; i <= n; ++i) scanf("%d", &d[i]); dp[1] = s[1]; for (int i = 2; i <= n; ++i) dp[i] = min(dp[i-1]+s[i], dp[i-2]+d[i]); hh = dp /3600; mm = dp %3600/60; ss = dp %60; printf("%02d:%02d:%02d%s\n", (8+hh)%24, mm, ss, (hh+8)%24>12?" pm":" am"); } return 0; }
View Code
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260
相关文章推荐
- [dp专题]hdu 1260 tickets
- hdu 1260 Tickets(DP)
- HDU-1260-Tickets【DP】
- Hdu 4284 状态DP 能否走完所选城市.cpp
- HDU 1260 Tickets(基础DP)
- hdu 1260 Tickets(DP)
- hdu 1260 Tickets(dp)
- HDU 1260 Tickets(简单dp)
- HDU 1260 Tickets (很简单的基础DP题,找到状态转移方程就直接AC了)
- [DP] HDU 1260
- HDU 1260 Tickets 简单dp
- hdu 1260 Tickets 水题dp
- hdu 1260 Tickets(DP)
- HDU 1260 Tickets 简单DP
- hdu 1260 Tickets(dp)
- hdu 1260 Tickets(DP)
- hdu 1260 Tickets(dp)
- HDU 1260 Tickets(DP)
- HDU-1260 Tickets ( DP )
- HDU 1260 Tickets(DP)