zoukankan      html  css  js  c++  java
  • Tickets HDU

    HDU - 1260 

    现在有n个人要买电影票,如果知道每个人单独买票花费的时间,

    还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票。

    直接dp就行,注意下输出和初始化

    每次从dp[i-1]和dp[i-2]里面选一个就好

    #include <bits/stdc++.h>
    #define ll long long
    #define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
    #define pp pair<int,int>
    #define rep(ii,a,b) for(int ii=a;ii<=b;ii++)
    #define per(ii,a,b) for(int ii=a;ii>=b;ii--)
    #define show(x) cout<<#x<<"="<<x<<endl
    #define show2(x,y) cout<<#x<<"="<<x<<" "<<#y<<"="<<y<<endl
    #define show3(x,y,z) cout<<#x<<"="<<x<<" "<<#y<<"="<<y<<" "<<#z<<"="<<z<<endl
    #define showa(b,a) cout<<#a<<"["<<b<<"]="<<a[b]<<endl;
    using namespace std;
    const int maxn=1e5+10;
    const int maxm=1e6+10;
    const int INF=0x3f3f3f3f;
    int casn,n,m,k;
    int dp[maxn];
    int a[maxn],b[maxn];
    
    int main(){
    //#define test
    #ifdef test
        freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);
    #endif
      cin>>casn;
      while(casn--){
    	cin>>n;
    	memset(dp,0,sizeof dp);
    	rep(i,1,n) cin>>a[i];
    	rep(i,2,n) cin>>b[i];
    	dp[1]=a[1];
          rep(i,2,n) {
      	  dp[i]=min(dp[i-1]+a[i],dp[i-2]+b[i]);
          }
          int h=8+dp[n]/3600;
          int m=(dp[n]%3600)/60;
          int s=dp[n]%60;
    	printf("%02d:%02d:%02d %s
    ",h%12,m,s,h<12?"am":"pm");
      }
    #ifdef test
        fclose(stdin);fclose(stdout);system("gedit ./out.txt");
    #endif
        return 0;
    }
    

      

  • 相关阅读:
    平衡二叉树
    二叉树的深度
    数字在升序数组中出现的次数
    美国最受雇主欢迎的十大编程语言
    重学数据结构(五、串)
    重学数据结构(四、数组和广义表)
    100个高频Spring面试题
    重学数据结构(三、队列)
    重学数据结构(二、栈)
    Java学习之jackson篇
  • 原文地址:https://www.cnblogs.com/nervendnig/p/9053147.html
Copyright © 2011-2022 走看看