【HDOJ】1260 Tickets
2014-03-23 22:52
190 查看
水DP,不过这道题目的数据好像有问题。24时制可表示范围是0~23,12时制可表示范围应为1~12。也就是说24点(即0点)其实表示为12:00:00am,而中午12:00:00其实表示为12:00:00pm,而且从12:00:00~12:59:59都是12:xx:xx pm,而13点开始则应该表示为01:xx:xx pm。题目数据比较小,虽然貌似不考虑这个也可以ac。但是,我个人是按规范做的。
#include <stdio.h> #define MAXNUM 2005 int times[MAXNUM]; int adjacent[MAXNUM]; int dp[MAXNUM]; int mymin(int a, int b) { return a<b ? a:b; } void test(int *sec, int *min, int *hour) { *sec = 0; *min = 0; *hour = 1; } int main() { int case_n, n; int i, sec, min, hour; char str[3]; scanf("%d", &case_n); str[2] = '\0'; while (case_n--) { scanf("%d", &n); for (i=1; i<=n; ++i) scanf("%d", ×[i]); for (i=1; i<n; ++i) scanf("%d", &adjacent[i]); dp[0] = 0; dp[1] = times[1]; for (i=2; i<=n; ++i) dp[i] = mymin(dp[i-1]+times[i], dp[i-2]+adjacent[i-1]); sec = dp ; hour = 8; min = sec / 60; sec = sec % 60; hour += min / 60; min = min%60; //test(&sec, &min, &hour); if (hour >= 24) hour = hour%24; if (hour>=12) { if (hour > 12) hour -= 12; printf("%02d:%02d:%02d pm\n", hour, min, sec); } else { if (hour == 0) hour = 12; printf("%02d:%02d:%02d am\n", hour, min, sec); } } return 0; }
相关文章推荐
- hdoj 1260 Tickets
- HDOJ -- 1260 Tickets
- HDU/HDOJ 1260 Tickets(卖票问题,DP)
- hdoj 1260 Tickets【dp】
- hdoj 1260 Tickets 【动态规划】
- hdoj--1260--Tickets(简单dp)
- hdoj--1260--Tickets(简单dp)
- hdoj 1260 Tickets 【简单DP】
- HDOJ 题目1260 Tickets(动态规划)
- HDU 1260 Tickets 简单DP
- hdu 1260 Tickets(DP)
- HDU 1260 Tickets(DP)
- hdu 1260 Tickets
- hdu 1260 Tickets
- hdu 1260 Tickets
- 杭电-1260 Tickets
- HDU 1260 —— Tickets
- hdu 1260 Tickets(DP)
- [hdu 1260] Tickets [DP]
- HDU 1260 Tickets