SP703 SERVICE - Mobile Service
思路:DP
提交:1次
题解:
我们把处理到的要求作为阶段。
\(f[i][x][y][z]\)表示第 \(i\) 个要求,三个人分别的位置。
发现这样有很多无用状态,因为显然在第 \(i\) 个要求后,总有一个人在 \(pos[i]\)
所以我们省掉一维。
注意第一维要滚动。
代码:
#include<bits/stdc++.h>
#define R register int
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=201,M=1001;
int T,n,m,a[M];
int c[N][N],f[2][N][N];
inline void main() {
T=g(); while(T--) {
n=g(),m=g(); for(R i=1;i<=n;++i) for(R j=1;j<=n;++j) c[i][j]=g();
for(R i=1;i<=m;++i) a[i]=g();
memset(f[0],0x3f,sizeof f[0]); f[0][1][2]=0,a[0]=3; R p=0,l=1;
for(R i=1;i<=m;++i) { p^=1,l^=1,memset(f[p],0x3f,sizeof f[p]);
for(R j=1;j<=n;++j) if(j!=a[i-1]) for(R k=1;k<=n;++k) if(j!=k&&k!=a[i-1]) {
f[p][j][k]=min(f[p][j][k],f[l][j][k]+c[a[i-1]][a[i]]);
f[p][j][a[i-1]]=min(f[p][j][a[i-1]],f[l][j][k]+c[k][a[i]]);
f[p][a[i-1]][k]=min(f[p][a[i-1]][k],f[l][j][k]+c[j][a[i]]);
}
} R ans=1e9;
for(R i=1;i<=n;++i) for(R j=1;j<=n;++j)
if(i!=j&&i!=a[m]&&j!=a[m]) ans=min(ans,f[p][i][j]);
printf("%d\n",ans);
}
}
} signed main() {Luitaryi::main(); return 0;}
2019.09.18
58
SP703 SERVICE - Mobile Service的更多相关文章
- SP703 SERVICE - Mobile Service[DP]
题意翻译 Description 一个公司有三个移动服务员.如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动.只有被请求后,他才能移动,不允许在同 ...
- SPOJ 703 SERVICE - Mobile Service 题解
题面 好题啊!~ 设f[i][j][k][l]表示已经处理完前i个请求后,a在j,b在k,c在l的最小值是多少: 那么f[i][p[i]][k][l]=min(f[i][p[i]][k][l],f[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,但是这一题的状态不是很好设,因为数据范围有 ...
随机推荐
- (一)HTTP协议的一些知识点(来自那些年的笔记)
目录 http协议1.0.1.1两个版本的区别 访问几次服务器? Http请求行和请求方式详解 可以在超链接上传一些数据 HTTP请求头各个头字段的详解 HTTP响应和响应行状态详解 断点下载 HTT ...
- git 显示文件改动,但无具体改动信息
事件: 同步代码,进行了换行符替换 过程 : 同步代码,在正式服务器的 git 分支基础上创建新的分支,按照同步代码流程,将对方代码换行符转换(对方mac,我方windows) 替换需 ...
- python 正则 re模块(详细版)
正则表达式 什么是正则表达式? 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合 ...
- 【闭包】Pants On Fire
Pants On Fire 题目描述 Donald and Mike are the leaders of the free world and haven’t yet (after half a y ...
- SAS学习笔记40 SAS程序运行过程
当我们提交运行一个DATA步程序后,具体发生了什么事情. SAS程序与其他程序一样,在运行时都要经过两个阶段:编译(Compilation).执行(Execution) 程序首先经过编译阶段,该阶段主 ...
- 数据校验-hibernate-validator
数据校验 在web开发时,对于请求参数,一般上都需要进行参数合法性校验的,原先的写法时一个个字段一个个去判断,这种方式太不通用了,所以java的JSR 303: Bean Validation规范就是 ...
- SQL 不同服务器数据库操作
https://www.cnblogs.com/lusunqing/p/3660190.html --创建远程链接服务器 execute sys.sp_addlinkedserver @server= ...
- C#基础--Ref与Out区别
两者都是按地址传递的,使用后都将改变原来参数的数值. class Program { static void Main(string[] args) { int num = 1; Method(ref ...
- JVM学习笔记——类加载过程
JVM学习笔记——类加载过程 类加载模型——双亲委派模型(Parents Delegation Model)也可称为“溯源委派加载模型” Java的类加载器是一个运行时核心基础设施模块,主要是启动之初 ...
- VBA连接操作符
VBA支持以下连接运算符. 假设变量A=5,变量B=10,则 - 运算符 描述 示例 + 将两个值添加为变量,其值是数字 A + B = 15 & 连接两个值 A & B = 510 ...