【Link】:

【Description】



KTV给你T秒的唱歌时间;

你有n首一定要唱的歌;

然后有一首很变态的歌有678s,你想在T秒结束之前唱一下这首歌;

因为这样的话,你能尽量晚地走出KTV(不会在你唱到一半的时候让你不唱了),即你最后的唱歌时间是可以超过T秒的;

告诉你n首歌的时间;

这n首歌里面任选几道唱,但必须要留一点时间唱那首变态的歌;

问你最多能唱多少首歌,然后在唱歌最多的基础上,问你最晚能什么时候走出KTV

【Solution】



如果∑a[i]<T的话,则直接输出答案n+1和∑a[i] + 678;

否则;

计算在T-1秒内,你最多能唱多少首歌(不包括那首变态的歌);

(即最少留一秒钟开始唱那首变态的歌);

即设f[i]表示花费恰好i秒,最多能唱多少首除了那首变态的歌之外的歌;

最后逆序从T-1到0里面找下标最大(即时间)的,且f值最大的f[idx]

,输出f[idx]+1,和idx+678即可;



【NumberOf WA】



1



【Reviw】



忘记处理∑a[i] < T的情况了;



【Code】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 50; int n,t;
int a[N+20],f[N*180+10]; int main(){
//Open();
//Close();
int T,kk = 0;
scanf("%d",&T);
while (T--){
kk++;
scanf("%d%d",&n,&t);
int sum = 0;
rep1(i,1,n){
scanf("%d",&a[i]);
sum+=a[i];
}
//f[i]代表花费时间为i,最多能唱多少首歌
f[0] = 0;
if (t > sum){
printf("Case %d: %d %d\n",kk,n+1,sum + 678);
continue;
}
rep1(i,1,t-1)
f[i] = -1;
rep1(i,1,n){
rep2(j,t-1,a[i])
if (f[j-a[i]]>=0)
f[j] = max(f[j],f[j-a[i]] + 1);
}
int ma = -1,idx;
rep2(i,t-1,0)
if (f[i]>ma){
ma = f[i],idx = i;
}
//678s
printf("Case %d: %d %d\n",kk,ma+1,idx + 678);
}
return 0;
}

最新文章

  1. 无法安装Windows Live“OnCatalogResult:0x80190194”错误的解决方法
  2. Object.observe将不加入到ES7
  3. inline-block元素间距
  4. Windows netstat 查看端口、进程占用
  5. nios II--实验5——定时器硬件部分
  6. android开发调用c++共享库so文件
  7. live 写博
  8. .net软件自动化测试笔记(API-2)
  9. make makefile
  10. JAVA内置的观察者模式样本
  11. SCALA中类的继承
  12. php学习笔记——语言切换
  13. Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例
  14. MongoDB 4.0.* 远程连接及用户名密码认证登陆配置——windows
  15. 【Java基础】【08面向对象_继承&amp;方法&amp;final】
  16. 微信小程序支付接入注意点
  17. C/C++ 多线程机制
  18. Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK - Android
  19. 【转】MySQL中information_schema是什么
  20. 1483. [HNOI2009]梦幻布丁【平衡树-splay】

热门文章

  1. HDU 1285 确定比赛名次【拓扑排序】
  2. Hdu 2586 树链剖分求LCA
  3. VC++ 借助 Win32 API 绘图实现基本的细胞自动机演示
  4. Promise语法
  5. &#39;Upgrade&#39; header is missing
  6. vue非父子组件间传参问题
  7. code vs 1245 最小的N个和
  8. Android源代码解析之(十三)--&amp;gt;apk安装流程
  9. [MST] Restore the Model Tree State using Hot Module Reloading when Model Definitions Change
  10. Java Bean 简单介绍及其应用