题解:

比较容易想到二分答案+时间逆流

这样就变成了经典的路灯问题 f[a][b][0/1]

其实可以不用二分答案

根据倒着考虑我们会发现一定是先走旁边的再走中间的

计算到当前点+下课时间所需的最小时间

代码:

神奇的wa了一个点 对拍并不能拍出来

#include <bits/stdc++.h>
using namespace std;
#define rint int
#define IL inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
#define me(x) memset(x,0,sizeof(x))
#define ll long long
const int N=;
const int INF=1e9;
int n,m,k;
int f[N],g[N][N][],maxa,p[N];
IL void minn(rint& x,rint y)
{
if (x>y) x=y;
}
struct re{
int a,b;
}a[N];
IL bool cmp(re x,re y)
{
return x.a<y.a;
}
int main()
{
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m>>k;
int maxa=;
rep(i,,m)
{
cin>>a[i].a>>a[i].b;
}
sort(a+,a+m+,cmp);
a[].a=INF;
int cnt=;
rep(i,,m)
{
if (a[i].a!=a[i-].a) cnt++;
f[cnt]=max(f[cnt],a[i].b);
p[cnt]=a[i].a;
}
maxa=cnt+; p[maxa]=p[maxa-];
rep(i,,N-)
rep(j,,N-) g[i][j][]=g[i][j][]=INF;
g[][maxa][]=;
dep(i,maxa,)
rep(j,,maxa-i)
{
rint k=j+i;
if (g[j][k][]!=INF)
minn(g[j+][k][],max(g[j][k][]+p[j+]-p[j],f[j+])),
minn(g[j][k-][],max(g[j][k][]+p[k-]-p[j],f[k-]));
if (g[j][k][]!=INF )
minn(g[j][k-][],max(g[j][k][]+p[k]-p[k-],f[k-])),
minn(g[j+][k][],max(g[j][k][]+p[k]-p[j+],f[j+]));
}
int ans=INF;
rep(i,,maxa)
ans=min(ans,abs(p[i]-k)+min(g[i][i][],g[i][i][]));
cout<<ans<<endl;
return ;
}

最新文章

  1. 未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项
  2. JavaScript分离代码理解
  3. PDO多种方式取得查询结果
  4. hiho_100_八数码
  5. Matlab单一变量曲线拟合-cftool
  6. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
  7. navicat 或者workbench 无法连接127.0.0.1(61)的解决方法
  8. java运用FFMPEG视频转码技术
  9. PPI_network&amp;calc_ppi
  10. APK签名原理
  11. Effective C++笔记(一)——条款26-29
  12. .net程序开发人员必看的变量的命名规则
  13. linux ln 命令(转载)
  14. Restful随笔
  15. iOS &quot;此证书由未知颁发机构签名&quot;此问题的解决方法
  16. struts2框架学习笔记3:获取servletAPI
  17. DOS批量拷贝本地目录到远程主机(定时执行)
  18. Python seek和tell
  19. 数据库--oracle图形化管理工具和新增自定义用户
  20. scriptlet

热门文章

  1. Git学习笔记02-创建版本库
  2. 64位程序,利用ADO连接Oracle数据库
  3. URLConnection和HttpURLConnection
  4. (转!)Pyinstaller 打包发布经验总结
  5. 关于flock
  6. 运维与自动化系列③自动化部署基础与shell脚本实现
  7. MySQL数据库的一些方法使用
  8. linux 提高代码质量的工具
  9. Spring Cloud源码分析(四)Zuul:核心过滤器
  10. JS读取.properties文件的方法