知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完.. dp[1]=s[i] for i 2~n dp[i]=min(dp[i-1]+s[i],dp[i-2]+d[i]);
#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <algorithm>using namespace std;const int maxn=100000;int dp[maxn];int s[maxn];int dou[maxn];int main(){ int t; cin>>t; int n; while(t--) { memset(dp,0,sizeof(dp)); memset(s,0,sizeof(s)); memset(dou,0,sizeof(dou)); cin>>n; for(int i=0;i<n;i++) cin>>s[i]; for(int i=1;i<n;i++) cin>>dou[i]; dp[0]=s[0]; for(int i=1;i<n;i++) { dp[i]=min(dp[i-1]+s[i],dp[i-2]+dou[i]); } int tt=dp[n-1]; int hh=8+tt/3600; tt%=3600; int mm=tt/60; tt%=60; PRintf("%02d:%02d:%02d %s/n",hh,mm,tt,(hh>12)?"pm":"am" ); }}新闻热点
疑难解答