// [题意]
// n辆车按顺序安排在一个渡口的左边或右边,不超过渡口长度最多放多少辆
// 相当于n个物品按顺序尽量多地放在两个相同容量的背包里
// 如果放不下后面的就不放了,题目还要求输出要放的车都放哪边?记录路径即可
// 由于是按顺序放,所以第i辆车放的话,i前面的车必然已经放好了,不可能不放
// [解题方法]
// dp[i][j]=1 表示左边车占了j长度时,可以放i辆车
// 设前i辆车总长度为sum[i],则:
// 对于dp[i][j]左边占了j长度,右边就必然占了sum[i]-j的长度了
// dp[i][j]=0 表示这种状态不可行
// 设V为公路长度,w[i]为第i辆车的长度,状态转移如下:(0<=j<=V)
// dp[i][j] = (j>=w[i]&&dp[i-1][j-w[i]]) || (sum[i]-j<=V&&dp[i-1][j])
// 放左边 放右边
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
#define LL long long
#define N 2005
#define M 10005
#define inf 0x3fffffff
int dp[N][M], w[N], sum[N];
int pre[N][M], ans[N];
int main()
{
int t, i, j, k, V, n, vj;
cin >> t;
while (t--)
{
cin >> V;
V *= 100;
memset (dp, 0, sizeof(dp));
dp[0][0] = 1;
n = 0;
sum[0] = 0;
while(cin >> k, k)
{
++n;
w[n] = k;
sum[n] = sum[n-1] + k;
}
vj = -1;
for (i = 1; i <= n; i++)
{
for (j = 0; j <= V; j++)
{
if (j >= w[i] && dp[i-1][j-w[i]]) {
k = i;
vj = j;
dp[i][j] = 1;
pre[i][j] = j-w[i];
} else if (sum[i]-j <= V && dp[i-1][j]) {
k = i; //更新最大能放的车辆数
vj = j;
dp[i][j] = 1;
pre[i][j] = j; //记录路径
}
}
}
i = k;
while (i--)
{
j = pre[i+1][vj];
if (j == vj) ans[i] = 1;
else ans[i] = 0;
vj = j;
}
cout << k << endl;
for (i = 0; i < k; i++)
{
if (ans[i]) puts ("starboard");
else puts ("port");
}
if (t) puts("");
}
return 0;
}
分享到:
相关推荐
开源软件ferry是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的...
【ferry工单系统 v1.0.zip】是一款基于计算机技术的工单管理系统,主要用于帮助企业或组织高效地处理日常工作中产生的各类工单。这个压缩包包含了一份完整的源代码,是进行毕业设计论文研究或者理解软件开发流程的一...
ferry工单系统文件2021.8.20
"前端开源库-vigour-ferry" 是一个专门为前端开发者设计的开源库,其核心功能是实现时间戳的推送,从而有效地通知应用程序进行更新。在现代Web开发中,实时性与用户体验息息相关,尤其是在动态数据更新频繁的应用...
Ruby Ferry 是一个专门为 Ruby 开发者设计的数据迁移和可视化工具,它作为一个命令行 Rubygem 提供服务。在软件开发过程中,特别是在数据库管理方面,数据迁移是必不可少的环节,它允许开发者在不同版本的数据库结构...
Ferry 是(又一个)REST API 框架。 用法 通常,在创建服务器实现时,需要 Ferry 作为依赖项。 请参阅。 引擎 引擎为渡轮提供动力; 它们是提供各种功能的第三方模块。 为了创建功能性 API,每种类型都需要一个引擎...
还不错的计算机图形学教程
一个简单的U盘摆渡代码,仅供学习参考,请勿用于其他用途
Ferry:使用 Docker 的大数据开发环境Ferry 可让您在 AWS、OpenStack 和本地机器上启动、运行和管理大数据集群。 它通过利用诸如类的技术来做到这一点。 渡轮目前支持: Hadoop/YARN(版本 2.5.1) 卡桑德拉(2.1.0 ...
Python库"Ferry"是用于构建分布式系统和微服务的开源工具,主要针对开发语言为Python的后端开发者。这个库的版本为0.2.4,以tar.gz格式压缩打包,意味着它是一个遵循POSIX标准的归档文件,通常包含了源代码和其他...
`ferry-0.1.22.tar.gz` 是一个针对Python的库,名为"Ferry"的特定版本(0.1.22)。这个库通常以压缩格式提供,`.tar.gz`是Unix/Linux系统中常用的归档和压缩方式,它结合了`tar`(用于打包多个文件和目录)和`gzip`...
基于Gin + Vue + Element UI前后端分离的工单系统 流程中心 通过灵活的配置流程、模版等数据,非常快速方便的生成工单流程,通过对流程进行任务绑定,实现流程中的钩子操作,目前支持绑定邮件来通知处理,当然为兼容...
渡船 耶鲁课程和评估数据的搜寻器。... /ferry/includes :整个Ferry使用的辅助功能。 /ferry/migration :我们用于将旧数据库(2020年夏季之前)迁移到当前数据库的脚本。 不再维护,但保留以防万一。
为更贴近机会网络的实际应用,...DF算法是通过调度所有ferry的运动来实现ferry之间的直接通信,从而实现网络的区间通信。通过DF算法和使用中继节点的ferry路由算法的对比,得出DF算法能够有效降低网络的平均传输时延。
migrate -source file://migrations -database " postgres://stefanchurch@localhost:5432/ferry-services?sslmode=disable " up 要进行向下迁移: migrate -source file://migrations -database " postgres://...
ferry-:公共github.io页面
《Korn Ferry:热忱铸就成功—员工敬业度如何推动企业成功》这份报告深入探讨了员工敬业度对企业成功的关键作用。在当前竞争激烈的商业环境中,企业的核心竞争力不再仅仅是产品或技术,而是其团队的凝聚力和员工的...
轮渡(工作进行中) 目标 提供管理实用程序以从FoundationDB导入和导出数据。 非目标 该实用程序并非旨在替代出色的fdbbackup工具。我们不尝试复制或遵循foundationdb突变日志。由于事务限制为5秒,因此我们也无法在...
Ferry 是一个可定制的源代码编辑组件; 主要特点: 100% Unicode 支持 - 处理 LTR、RTL(希伯来语、阿拉伯语)脚本; 语法高亮(使用外部引擎); 可变高度的文本行; 方便的API等
根据 Korn Ferry 的研究,到 2030 年,全球人才短缺可能会导致国家每年损失数万亿美元的收入。这种人才短缺将影响全球经济的发展,甚至可能改变全球经济的格局。 全球人才短缺的危机 研究发现,全球人才短缺的危机...