loj #6177. 「美团 CodeM 初赛 Round B」送外卖2 状压dp floyd
LINK:#6177.美团 送外卖2
一道比较传统的状压dp题目.
完成任务 需要知道自己在哪 已经完成的任务集合 自己已经接到的任务集合。
考虑这个dp记录什么 由于存在时间的限制 考虑记录最短时间 因为时间越短 对于任务来说越优。
考虑设f[i][j][k]表示已经做完的任务为i接受的任务为j上次做的任务为k.
虽然看起来状态数为\(2^q\cdot 2^q\cdot q\)但是考虑j枚举的只是i的补集的子集 所以这样做状态数为\(3^q\cdot q\)
复杂度需要多乘一个q枚举决策 \(3^q\cdot q^2\)
看起来能过的样子 但是空间爆了 原因是空间复杂度是上述的分析.
考虑hash发现很难hash的不重复 这个时候考虑三进制状压因为一个任务有三种状态 所以三进制状压是一种很好的hash.
这样优化过空间之后就能过了.
const int MAXN=11,maxn=21;
int n,m,Q,ans;
int a[maxn][maxn],v[60010];
int f[60010][MAXN],bas[maxn];
struct wy{int s,t,l,r;}t[maxn];
int main()
{
//freopen("1.in","r",stdin);
get(n);get(m);get(Q);
memset(a,0x3f,sizeof(a));
memset(f,0x3f,sizeof(f));
rep(1,m,i)
{
int x,y,z;
get(x);get(y);get(z);
a[x][y]=min(a[x][y],z);
}
bas[0]=1;
rep(1,n,i)a[i][i]=0;
rep(1,n,k)rep(1,n,i)rep(1,n,j)a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
rep(1,Q,i)
{
int get(s1);int get(s2);
int get(s3);int get(s4);
t[i]=(wy){s1,s2,s3,s4};
bas[i]=bas[i-1]*3;
}
rep(1,Q,i)f[bas[i-1]][i]=max(a[1][t[i].s],t[i].l);
rep(1,bas[Q]-1,i)
{
v[i]=v[i/3]+(i%3==2);
rep(1,Q,j)
{
if(f[i][j]>INF)continue;
int st;ans=max(ans,v[i]);
if(i/bas[j-1]%3==1)st=t[j].s;
else st=t[j].t;
rep(1,Q,k)
{
if(i/bas[k-1]%3==0)
{
int ss=i+bas[k-1];
if(f[i][j]+a[st][t[k].s]<=t[k].r)f[ss][k]=min(f[ss][k],max(f[i][j]+a[st][t[k].s],t[k].l));
}
if(i/bas[k-1]%3==1)
{
int ss=i+bas[k-1];
if(f[i][j]+a[st][t[k].t]<=t[k].r)f[ss][k]=min(f[ss][k],f[i][j]+a[st][t[k].t]);
}
}
}
//puts("");
}
put(ans);
return 0;
}
loj #6177. 「美团 CodeM 初赛 Round B」送外卖2 状压dp floyd的更多相关文章
- loj6177 「美团 CodeM 初赛 Round B」送外卖2 最短路+状压dp
题目传送门 https://loj.ac/problem/6177 题解 一直不知道允不允许这样的情况:取了第一的任务的货物后前往配送的时候,顺路取了第二个货物. 然后发现如果不可以这样的话,那么原题 ...
- 【loj6177】「美团 CodeM 初赛 Round B」送外卖2 Floyd+状压dp
题目描述 一张$n$个点$m$条边的有向图,通过每条边需要消耗时间,初始为$0$时刻,可以在某个点停留.有$q$个任务,每个任务要求在$l_i$或以后时刻到$s_i$接受任务,并在$r_i$或以前时刻 ...
- Loj #6164. 「美团 CodeM 初赛 Round A」数列互质
link : https://loj.ac/problem/6164 莫队傻题,直接容斥做. #include<bits/stdc++.h> #define maxn 100005 #de ...
- #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队
#6164. 「美团 CodeM 初赛 Round A」数列互质 思路 : 对这个题来言,莫队可以 n*根号n 离线处理出各个数出现个的次数 ,同时可以得到每个次数出现的次数 , 但是还要处理有多少 ...
- 「美团 CodeM 初赛 Round A」最长树链
题目描述 Mr. Walker 最近在研究树,尤其是最长树链问题.现在树中的每个点都有一个值,他想在树中找出最长的链,使得这条链上对应点的值的最大公约数不等于1.请求出这条最长的树链的长度. 输入格式 ...
- 【填坑】loj6159. 「美团 CodeM 初赛 Round A」最长树链
水一水 枚举各个质数,把是这个数倍数的点留下,跑直径,没了 #include <bits/stdc++.h> using namespace std; int h,t,n,p,q,M,N; ...
- LiberOJ#6178. 「美团 CodeM 初赛 Round B」景区路线规划 概率DP
题意 游乐园被描述成一张 n 个点,m 条边的无向图(无重边,无自环).每个点代表一个娱乐项目,第 i 个娱乐项目需要耗费 ci 分钟的时间,会让小 y 和妹子的开心度分别增加 h1i ,h2i ,他 ...
- 「美团 CodeM 初赛 Round A」试题泛做
最长树链 树形DP.我们发现gcd是多少其实并不重要,只要不是1就好了,此外只要有一个公共的质数就好了.计f[i][j]表示i子树内含有j因子的最长链是多少.因为一个数的不同的质因子个数是log级别的 ...
- [LOJ 6213]「美团 CodeM 决赛」radar
[LOJ 6213]「美团 CodeM 决赛」radar 题意 给定 \(n\) 个横坐标 \(x_i\) , 为它们选择一个不超过 \(y_i\) 的纵坐标 \(h_i\), 产生 \(c_ih_i ...
随机推荐
- 有点愧疚,今天把unity官方骗了...
今天下午2点,突然给我发了一封邮件说我违规: Unity Technologies Hello, Your Account: *@*.net has been suspended and you ca ...
- centos7 安装部署 Jenkins
Jenkins 安装部署 1. 安装资源下载 Jenkin镜像地址: http://mirrors.jenkins-ci.org/status.html 选择清华大学镜像地址下载rpm https:/ ...
- Scala 基础(五):Scala变量 (二) 数据类型
1 scala数据类型介绍 Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型 Scala数据类型分为两大类 AnyVal(值类型) ...
- 数据分析04 /基于pandas的DateFrame进行股票分析、双均线策略制定
数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 目录 数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 需求1:对茅台股票分析 需求2 ...
- Atlassian Confluence 5.1.2 破解版部署
Atlassian Confluence(简称Confluence)是一个专业的wiki程序.它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享.Confluence 不是一个开源软件 ...
- 从一次故障聊聊前端 UI 自动化测试
背景 事件的起因在于老板最近的两次"故障",一次去年的,一次最近.共同原因都是脚手架在发布平台发布打包时出错,导致线上应用白屏不可用. 最神奇的是,事后多次 Code Review ...
- vue : 检测用户上传的图片的宽高
需求: 用户可上传3-6张图片(第 1 2 3 张必须传),上传的图片必须是540 * 330 像素. 第一步,获取上传的图片的宽高. 初始化一个对象数组,宽高均设为0. 如果用户上传的图片没有上限, ...
- 利用updatexml()报错注入mysql
基本介绍一下updatexml() updatexml(XML_document, XPath_string, new_value) XML_document是文档对象的名称 XPath_string ...
- Jarvisoj-web Login
题目入口: http://web.jarvisoj.com:32772/ 有个登陆框,随便提交参数然后bp抓包 get到了一个Hint,给了sql查询的语句 select * from `admin` ...
- ~~网络编程(八):UDP~~
进击のpython ***** 网络编程--UDP 那现在看到这里的 这就是网络编程的最后一讲了 上面讲的都是关于TCP的编程方法 还记得TCP和UDP传输的区别吗? UDP简单就简单到它可以不借助管 ...