水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。但是,我个人是按规范做的。
1 #include2 3 #define MAXNUM 2005 4 5 int times[MAXNUM]; 6 int adjacent[MAXNUM]; 7 int dp[MAXNUM]; 8 9 int mymin(int a, int b) {10 return a = 24)43 hour = hour%24;44 if (hour>=12) {45 if (hour > 12)46 hour -= 12;47 printf("%02d:%02d:%02d pm\n", hour, min, sec);48 } else {49 if (hour == 0)50 hour = 12;51 printf("%02d:%02d:%02d am\n", hour, min, sec);52 }53 }54 55 return 0;56 }