zoukankan      html  css  js  c++  java
  • UVA 12563 "Jin Ge Jin Qu hao" (背包)

    传送门

    debug了好一会,突然发现,输出错了,emmm.........

    明天再写debug历程;

    (PS:ipad debug是真的繁琐)

    题意:

      

    题解:

      尽管题干中给的 t 的范围很大,但是 t ≤ 50*180+678;

    1 int dp[maxn];///dp[i]:恰好唱i分钟时的最大曲目个数

    AC代码:

     1 #include<bits/stdc++.h>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 #define memF(a,b,n) for(int i=0;i <= n;a[i++]=b);
     6 const int maxn=1e5+50;
     7 
     8 int n,T;
     9 int t[60];
    10 int dp[maxn];
    11 
    12 void Solve()
    13 {
    14     memF(dp,-1,T);
    15     dp[0]=0;
    16     for(int i=1;i <= n;++i)
    17     {
    18         for(int j=T-1;j >= t[i];--j)
    19         {
    20             if(dp[j-t[i]] != -1)
    21                 dp[j]=max(dp[j],dp[j-t[i]]+1);
    22         }
    23     }
    24     int ans=*max_element(dp,dp+T-1);
    25     for(int i=T-1;i >= 0;--i)
    26         if(dp[i] == ans)///查找曲目数==ans的最长时间
    27         {
    28             printf("%d %d
    ",dp[i]+1,i+678);
    29             return ;
    30         }
    31 }
    32 int main()
    33 {
    34     int test;
    35     scanf("%d",&test);
    36     for(int kase=1;kase <= test;++kase)
    37     {
    38         scanf("%d%d",&n,&T);
    39         for(int i=1;i <= n;++i)
    40             scanf("%d",t+i);
    41 
    42         printf("Case %d: ",kase);
    43         Solve();
    44     }
    45     return 0;
    46 }
    View Code

    坑:注意读题,曲目数的优先级高于时间;

  • 相关阅读:
    hibernate缓存清除(转)
    hibernate缓存
    hibernate延迟加载
    session进行增删改查操作
    curl命令详解
    CURL 宏定义列表
    CURL常用命令---样例
    打印 上一主题 下一主题 利用cURL实现单个文件分多段同时下载,支持断点续传(修订版)
    curl断点续载
    CURL常用命令
  • 原文地址:https://www.cnblogs.com/violet-acmer/p/10961558.html
Copyright © 2011-2022 走看看