洛谷 UVA12563 Jin Ge Jin Qu hao 题解
2024-10-21 15:57:10
这道题其实是一道01背包的变形题,主要思路如下:在不把剩余时间用光的前提下(剩余时间>0),尽可能的多唱歌。于是我们可以用dp[i]表示的是到当前i秒时,最多可以唱多少歌。
状态转换方程:dp[k]=max(dp[k],dp[k-yy]+1);最后输出可以唱多少歌。
#include<bits/stdc++.h>
using namespace std;
int n,t,m,yy;
int dp[];
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
memset(dp,0x8f,sizeof(dp));
cin>>m>>t;
dp[]=;
for(int j=;j<=m;j++)
{
cin>>yy;
for(int k=t-;k>=yy;k--)
{
dp[k]=max(dp[k],dp[k-yy]+);
}
}
int ans;
for(int j=ans=t-;j>=;j--)
{
if(dp[j]>dp[ans])ans=j;
}
cout<<"Case"<<" "<<i<<":"<<" "<<dp[ans]+<<" "<<ans+<<endl;
}
return ;
}
请各位大佬斧正(反正我不认识斧正是什么意思)
最新文章
- win7安装oracle 时容易出的问题
- 使用GDB调试程序
- MongoDB使用小结:一些常用操作分享
- rabbitmq使用心得
- delphi实现的RTMP播放
- 从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路
- Python 练习册
- 114. Flatten Binary Tree to Linked List
- SE 2014年4月8日
- [妙味JS基础]第四课:JS数据类型、类型转换
- adb.exe 已停止工作解决办法
- Python学习计划
- 13、spark-submit
- 小项目分析之C++ 实现模拟银行排队
- GBT27930-2015电动汽车非车载传导式充电机与电池管理系统之间的通信协议
- MMCM与PLL
- 选择当天一周一月导出excel表格
- 官方推荐的MySQL参数设置值
- week3b:个人博客作业
- Flume1.5.0入门:安装、部署、及flume的案例