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,但是这一题的状态不是很好设,因为数据范围有 ... 
随机推荐
- vector简单常用用法
			Vector是什么? vector翻译为向量,从某种角度来说就是一个可以变长的数组,它会根据需要自动扩充数组的容量,除此之外其是一个STL中的模板类,其 还具有一些内部的方法. Vector的使用方法 ... 
- LIUNX随堂学习-3 权限
			1.权限分为三类:读r,写w,执行x 2.读r:可以ls改目录下的子文件名,子目录名 写w:可以在该目录下创建.删除.重命名 执行x:可以cd到该目录下 3. ll (ls -l) 下详细信息的意义 ... 
- Destination高级特性
			一.组合队列 Composite Destinations 组合队列允许用一个虚拟的destination代表多个destinations.这样就可以通过composite destinations在 ... 
- js 中的 深拷贝与浅拷贝
			js在平时的项目中,赋值操作是最多的:比如说: var person1 = { name:"张三", age:18, sex:"male", height:18 ... 
- Senparc.Weixin+nginx配置之坑 ‘10003 redirect_uri域名与后台不一致’
			微信公众号扫一扫功能提示:10003 redirect_uri域名与后台不一致 Senparc.Weixin组件很好用,但一个坑,不知道这和个是否有关.. 先说明下环境,centos+.net cor ... 
- 转:让PIP源使用国内镜像,提升下载速度和安装成功率
			转载,自己记录使用,原文http://www.cnblogs.com/microman/p/6107879.html 对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太 ... 
- gitea configure
			gitea configure app.ini APP_NAME = Gitea: Git with a cup of tea RUN_USER = LSGX RUN_MODE = prod [oau ... 
- Windows群集之NLB【转】
			本文转自:http://www.talkwithtrend.com/Article/31746 网络负载平衡群集(Network Load balancing) 在Internet快速发展的今天,为了 ... 
- Nginx从安装到简单使用
			一.什么是Nginx: Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. 二.Nginx作用: 反向代理,集群,虚拟服务器,负载均衡,动静分离,解决跨域问题等 ... 
- 6.Java集合-LinkedList实现原理及源码分析
			Java中LinkedList的部分源码(本文针对1.7的源码) LinkedList的基本结构 jdk1.7之后,node节点取代了 entry ,带来的变化是,将1.6中的环形结构优化为了直线型链 ... 
