题意: 有 n 个团队和 m 艘船,每艘船的载客量为 k,每个团队的人数为ai+1 ,转载该团队可获利润 bi,要求每个团队的所有人必须在同一艘船上,

且团队优先级高的团队所在船编号不能大于优先级低的团队,求可以获得的最大利润。

题解:其实没什么,只需要01背包就可以了,只不过优先考虑团队优先级高的。
分析:dp[i] 表示获得 i 利润时需要的最少船位,且要保证优先级高的团队优先考虑。

 #include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring> #define INF 0x1f1f1f1f
#define v 10005 int min(int a,int b)
{
return a<b?a:b;
}
int dp[v+];
int n,m,k;
int cal(int num,int a)
{
int tot=(num+k-)/k;
if(num+a<=tot*k)
return num+a;
return tot*k+a;
}
int main()
{
int Cas;
scanf("%d",&Cas);
while(Cas--)
{
scanf("%d%d%d",&n,&m,&k);
memset(dp,INF,sizeof(dp));
int a,b;
dp[]=;
while(n--)
{
scanf("%d %d",&a, &b);
a++;
for(int i=v-; i>=b; i--)
if(dp[i-b]!=INF)
dp[i]=min(dp[i],cal(dp[i-b],a));
}
int i;
for(i=v; i>=; i--)
if(dp[i]<m*k) break;
printf("%d\n",i);
}
}

最新文章

  1. SQL Server常用的性能诊断语句
  2. Using MSBuild to publish a VS 2012 SSDT .sqlproj database project
  3. ListView中itemz中控件的点击事件和条目点击事件冲突
  4. js 实现各种排序
  5. 清空file input框
  6. iOS学习之Object-C语言集合遍历和数组排序
  7. BOM 之 screen history
  8. spring配置日志
  9. JavaScript特效制作经典精讲(案例入门详解、可直接粘贴拷贝运行、史上最牛案例)
  10. 编写自己的一个简单的web容器(二)
  11. lua中 table 元表中元方法的重构实现
  12. pl_sql develope连接远程数据库的方法
  13. UWP 创建动画的极简方式 — LottieUWP
  14. 自定义域名访问本地WEB应用
  15. 18-09-11 软件rpm yum rm卸载 和批量删除
  16. Sql Server 阻塞的常见原因和解决办法
  17. poj1753(位运算压缩状态+bfs)
  18. PHP程序后台自动运行
  19. [转帖] go的import 语法
  20. Java实现 简单聊天软件

热门文章

  1. 递归查找无效的符号链接 分类: linux c/c++ 2014-06-02 00:14 345人阅读 评论(0) 收藏
  2. web api 解决Ajax请求跨域问题
  3. jqueryUI插件
  4. js实现元素水平垂直居中
  5. oracle 创建表
  6. Objective-C Properties
  7. BotFramework学习-01
  8. Java SE、Java EE、Java ME 三者区别
  9. 前端工程化与webpack
  10. Poi 写入图片进入excel