【状压DP】LOJ#6177. 「美团 CodeM 初赛 Round B」送外卖2
来源:互联网 发布:oracle查询不重复数据 编辑:程序博客网 时间:2024/06/05 05:16
题面在这里
其实很简单的DP……
定义
其中s是一个3进制数,每一位0/1/2表示该外卖没有接单/接单了未送达/已送达
然后轻松转移就好了
示例程序:
#include<cstdio>#include<cstring>#include<algorithm>#define cl(x,y) memset(x,y,sizeof(x))using namespace std;const int maxn=25,maxs=60005,INF=0x3f3f3f3f;int n,m,q,g[maxn][maxn],f[maxn][maxs],p3[maxn];int s[maxn],t[maxn],l[maxn],r[maxn],ans;int main(){ scanf("%d%d%d",&n,&m,&q); cl(g,63);for (int i=1;i<=n;i++) g[i][i]=0; for (int i=1,x,y,z;i<=m;i++) scanf("%d%d%d",&x,&y,&z),g[x][y]=min(g[x][y],z); for (int i=0;i<q;i++) scanf("%d%d%d%d",&s[i],&t[i],&l[i],&r[i]); for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (k!=i&&i!=j&&j!=k) g[i][j]=min(g[i][k]+g[k][j],g[i][j]); p3[0]=1;for (int i=1;i<=q;i++) p3[i]=p3[i-1]*3; cl(f,63); f[1][0]=0; for (int S=0;S<p3[q];S++) for (int i=1;i<=n;i++) if (f[i][S]!=INF){ int tot=0; for (int j=0;j<q;j++){ int T=S/p3[j]%3; if (T==0){ f[s[j]][S+p3[j]]=min(f[s[j]][S+p3[j]],max(f[i][S]+g[i][s[j]],l[j])); }else if (T==1){ if (f[i][S]+g[i][t[j]]<=r[j]) f[t[j]][S+p3[j]]=min(f[t[j]][S+p3[j]],f[i][S]+g[i][t[j]]); }else tot++; } ans=max(ans,tot); } printf("%d",ans); return 0;}
阅读全文
1 0
- 【状压DP】LOJ#6177. 「美团 CodeM 初赛 Round B」送外卖2
- [状压DP]LibreOJ #6177. 「美团 CodeM 初赛 Round B」送外卖2 题解
- 【LibreOJ】6177 「美团 CodeM 初赛 Round B」送外卖2 状压DP
- #6177. 「美团 CodeM 初赛 Round B」送外卖2
- LibreOJ6177(美团 CodeM 初赛 Round B)[送外卖2]--状压DP
- 【状压DP】LibreOJ6177(美团 CodeM 初赛 Round B)[送外卖2]题解
- 【期望DP】LOJ#6178. 「美团 CodeM 初赛 Round B」景区路线规划
- CodeM美团点评编程大赛初赛B轮 B.送外卖2【三进制状压Dp】
- CodeM美团点评编程大赛初赛B轮 B.送外卖2 三进制状压DP
- 「美团 CodeM 初赛 Round B」子串
- loj #6164. 「美团 CodeM 初赛 Round A」数列互质
- LOj #6164. 「美团 CodeM 初赛 Round A」数列互质 (莫队算法)
- loj #6164. 「美团 CodeM 初赛 Round A」数列互质(莫队 数据结构 链表hash)
- 美团codeM预赛B 送外卖2
- #6175. 「美团 CodeM 初赛 Round B」黑白树
- LibreOJ 6178「美团 CodeM 初赛 Round B」景区路线规划
- 「美团 CodeM 初赛 Round A」身体训练
- 「美团 CodeM 初赛 Round A」倒水
- C# 文件操作--代码演示
- CMOS版图分析(大量插图)
- Java面试题
- RISC和CISC区别
- hdu2476(区间dp)
- 【状压DP】LOJ#6177. 「美团 CodeM 初赛 Round B」送外卖2
- 方差、标准差、均方差、均方误差区别总结
- NDK 开发(一:基本流程入门了解)
- MySQL支持的数据类型
- 动态执行python代码
- DES详解
- 第5章设置开发板的IP地址
- 数值分析--线性多项以及多元最小二乘拟合python3实现并画图
- java 实现两个变量的互换(不借助第三个变量,即中间变量、临时变量)