zoukankan      html  css  js  c++  java
  • 生日劲歌会B905

    生日劲歌会B905
    难度级别:C;            运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B
    试题描述

    Davs到KTV唱歌庆祝生日,他妈妈给他买单的时间是n个单位时间,但KTV不会时间到就立刻鲁莽地把正在唱的歌切掉,而是等它放完,这样消费者就会多一些唱歌时间。例如,你在还有15秒时再唱一首3分钟的歌,你就会多唱165秒。现在KTV提供了Davs喜爱的n首歌,请你为Davs安排点歌的顺序,使得Davs尽可能唱更多曲目,而且离开歌厅的时间越晚越好。曲目不能重复。(中间不能空余时间)

    输入
    第一行包含一个正整数n,接下来的若干行,每行包含一个正整数,描述一首歌曲的时间。
    输出
    一行,包含两个数,依次为点播歌曲的总数目和播放歌曲的总时间
    输入示例
    350 120 80 79 300 75 66 84 45
    输出示例
    6 649
    其他说明
    n<=10000.数字个数<=5000个
     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 int v,n,w[30000],a[30000],b[30000];
     5 int main()
     6 {
     7     cin>>v;
     8     while(cin>>w[n])
     9         n++;       //输入,我就不多说了 
    10     v--;    //尽量留下一分钟给后面的最长的歌曲 
    11     sort(w,w+n);          //从小到大排序 
    12     for(int i=0;i<n-1;i++) 
    13     {
    14         for(int j=v;j>=w[i];j--)
    15         {
    16             if(b[j]<b[a[j-w[i]]]+1||(b[j]==b[a[j-w[i]]]+1&&a[j]<a[j-w[i]]+w[i]))
    17             {
    18                 a[j]=a[j-w[i]]+w[i];
    19                 b[j]=b[a[j-w[i]]]+1;
    20             }
    21         }
    22     }
    23     b[v]++;
    24     a[v]+=w[n-1];
    25     cout<<b[v]<<" "<<a[v];
    26 }
    歌曲
  • 相关阅读:
    图像识别模型
    W tensorflow/core/util/ctc/ctc_loss_calculator.cc:144] No valid path found 或 loss:inf的解决方案
    CF1240F Football
    loj6537. 毒瘤题加强版再加强版
    Codeforces Global Round 9题解
    CF356E Xenia and String Problem
    CF1185G2 Playlist for Polycarp
    CF914F Substrings in a String
    Python3.5学习之旅一
    python内置数据结构性能分析
  • 原文地址:https://www.cnblogs.com/LZHE/p/6572466.html
Copyright © 2011-2022 走看看