TYVJ1061 Mobile Service
P1061 Mobile Service
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数没有必要对称,但是c(p,p)=0。公司必须满足所有的请求。目标是最小化公司花费。
输入格式
第一行有两个整数L,N(3<=L<=200, 1<=N<=1000)。L是位置数;N是请求数。每个位置从1到L编号。下L行每行包含L个非负整数。第i+1行的第j个数表示c(i,j) ,并且它小于2000。最后一行包含N个数,是请求列表。一开始三个服务员分别在位置1,2,3。
输出格式
一个数M,表示最小服务花费。
测试样例1
输入
5 9
0 1 1 1 1
1 0 2 3 2
1 1 0 4 1
2 1 5 0 1
4 2 3 4 0
4 2 4 1 5 4 3 2 1
输出
5
dp[i][j][k]表示第i个请求,三个服务员分别处在j,k,p[i]位置的最小值。但发现如果开1000*200*200会MLE,所以将第一维开成滚动数组。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 201;
const int inf = 0x3f3f3f3f;
int c[maxn][maxn],l,n,dp[2][maxn][maxn],pos[1001],ans=0x7f7f7f7f,r;
int main() {
scanf("%d%d",&l,&n);
for(register int i=1; i<=l; i++)
for(register int j=1; j<=l; j++)
scanf("%d",&c[i][j]);
for(register int i=1; i<=n; i++)
scanf("%d",&pos[i]);
memset(dp,0x3f,sizeof(dp));
dp[0][1][2]=0;
dp[0][2][1]=0;
pos[0]=3;
for(register int i=0; i<n; i++) {
r^=1;
for(register int j=1; j<=l; j++)
for(register int k=1; k<=l; k++)
dp[r][j][k]=inf;
for(register int j=1; j<=l; j++)
for(register int k=1; k<=l; k++) {
dp[r][j][k]=min(dp[r][j][k],dp[r^1][j][k]+c[pos[i]][pos[i+1]]);
dp[r][j][pos[i]]=min(dp[r][j][pos[i]],dp[r^1][j][k]+c[k][pos[i+1]]);
dp[r][pos[i]][k]=min(dp[r][pos[i]][k],dp[r^1][j][k]+c[j][pos[i+1]]);
}
}
for(register int i=1; i<=l; i++)
for(register int j=1; j<=l; j++) {
ans=min(dp[r][i][j],ans);
}
printf("%d",ans);
}
TYVJ1061 Mobile Service的更多相关文章
- [tyvj-1061]Mobile Service 动态规划
滚动数组优化一波. 原设计状态:表示三个员工分别的位置和执行到的任务. 考虑到:执行完第i个任务,一定有员工在pos[i],那么就可以压一维,空间复杂度就算不滚动数组也可以了. (喜闻乐见,今天第一次 ...
- Unable to create Azure Mobile Service: Error 500
I had to go into my existing azure sql database server and under the configuration tab select " ...
- 如何使用新浪微博账户进行应用登录验证(基于Windows Azure Mobile Service 集成登录验证)
使用三方账号登录应用应该对大家来说已经不是什么新鲜事儿了,但是今天为什么还要在这里跟大家聊这个话题呢,原因很简单 Windows Azure Mobiles Service Authenticatio ...
- vs2015-Azure Mobile Service
/App_Data /App_Start/ WebApiConfig.cs using System; using System.Collections.Generic; using System.C ...
- windows phone开发-windows azure mobile service使用入门
在使用azure之前,我一直只能做本地app,或者使用第三方提供的api,尽管大多数情况下够用,但是仍不能随心所欲操纵数据,这种感觉不是特别好.于是在azure发布后,我就尝试使用azure来做为个人 ...
- CH5102 Mobile Service【线性dp】
5102 Mobile Service 0x50「动态规划」例题 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处.如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个 ...
- CH5102 Mobile Service
CH5102 Mobile Service 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处.如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去.某一时刻只有一 ...
- CH 5102 Mobile Service(线性DP)
CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...
- Windows Azure之Mobile Service
我建个android app和Windows Azure的Mobile Service配合,以实现会员注册的功能,实际十分简单,微软家的东西真心好用 首先新建个Mobile Service New-& ...
随机推荐
- 71 Serializable(序列化和反序列化)
对象的输出流:ObjectOutputStream 把对象输出到文件存储起来,我们称作为序列化对象的输入流:ObjectInputStream 把对象从文件中读取出来,我们称作为反序列化 Obj ...
- zabbix之自动注册,编写触发器:一定时间内超过某个负载值的时间
zabbix中添加主机很多时可以考虑自动注册来自动添加,下面按照图片顺序来看,zabbix版本:3.0.28 超过负载30%的持续时间 创建触发器:
- dubbo管理平台安装
dubbo-admin.war可在网上百度去下载,但是我下载了好几个,发布上去服务启动都报错,这个时候大概是我们系统的JDK和编译dubbo-admin.war的JDK版本不同导致的了,强烈建议自己下 ...
- 【leetcode】951. Flip Equivalent Binary Trees
题目如下: For a binary tree T, we can define a flip operation as follows: choose any node, and swap the ...
- 使用raise语句抛出异常
#_author:来童星#date:2019/12/18def division(): num1=int(input('请输入被除数:')) num2=int(input('请输入除数:')) if ...
- 远程仓库 GitHub
远程仓库 这里介绍的远程仓库指的是 GitHub, 在这个网站,所有非私有的的代码,都可以被其他人查看,所以,一些机密或者重要的文件千万不要上传到这里面,如果需要可以购买付费版本或自己公司搭建埃及的远 ...
- php linux下安装xml扩展
1.进入PHP安装源码包,找到ext下的ftp,进入 cd /home/local/php-5.6.25/ext/xml 2./usr/local/php/bin/phpize 3../configu ...
- docker安装(4)
centos6 docker安装 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo yum install -y ...
- hibernate使用手写sql以及对结果list的处理
Session sees=simpleDAO.getSessionFactory().openSession(); String sql = "select * from fhcb_08_t ...
- (转) C#中使用throw和throw ex抛出异常的区别
通常,我们使用try/catch/finally语句块来捕获异常,就像在这里说的.在抛出异常的时候,使用throw和throw ex有什么区别呢? 假设,按如下的方式调用几个方法: →在Main方法中 ...