TYVJ P2032 「Poetize9」升降梯上 spfa最短路
其实我刚开始题读错了,才导致我写图论。。。
spfa跑最短路,开一个node记录状态(pair当然滋磁):所在楼层和槽的位置
以层数为1,槽在0的位置 为初始状态并进队,向每一个合法位置扩展,跑spfa,直到收敛。
#include<cstdio>
#include<iostream>
#include<queue>
#include<cstring>
#include<cmath>
#define R register int
using namespace std;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
struct node{
int u,pos;
node() {}
node(int uu,int ppos):u(uu),pos(ppos) {}
}e[];
queue<node>q;
bool vis[][];
int n,m,z,ans=0x3f3f3f3f,d[][],a[];
inline void spafa() {
memset(d,0x3f,sizeof(d));
q.push(node(,z)); vis[][z]=true,d[][z]=;
while(q.size()) {
R u=q.front().u,pos=q.front().pos; q.pop(); vis[u][pos]=false;
for(R i=;i<=m;++i) {
if(u+a[i]<=) continue; if(u+a[i]>n) break;
if(d[u+a[i]][i]>d[u][pos]+abs(i-pos)+abs(a[i])*) {
d[u+a[i]][i]=d[u][pos]+abs(i-pos)+abs(a[i])*;
if(vis[u+a[i]][i]) continue;
vis[u+a[i]][i]=true; q.push(node(u+a[i],i));
}
}
}
}
signed main() {
freopen("up.in","r",stdin);
freopen("up.out","w",stdout);
n=g(),m=g();
for(R i=;i<=m;++i) {a[i]=g(); if(!a[i]) z=i;}
spafa(); for(R i=;i<=m;++i) ans=min(ans,d[n][i]);
if(ans==0x3f3f3f3f) printf("-1\n");
else printf("%d",ans);
}
2019.04.11
TYVJ P2032 「Poetize9」升降梯上 spfa最短路的更多相关文章
- P2032 「Poetize9」升降梯上
描述 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道.一辆停在轨道底部的电梯.和电梯内一杆控制电梯升降的巨大手柄.Nescafe之塔一共有N层,升降 ...
- TYVJ2032 「Poetize9」升降梯上
P2032 「Poetize9」升降梯上 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道, ...
- 「Poetize9」升降梯口
3056: 升降梯口 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 43 Solved: 42[Submit][Status] Description ...
- 「BJOI2018」链上二次求和
「BJOI2018」链上二次求和 https://loj.ac/problem/2512 我说今天上午写博客吧.怕自己写一上午,就决定先写道题. 然后我就调了一上午线段树. 花了2h找到lazy标记没 ...
- tyvj P2018 「Nescafé26」小猫爬山 解题报告
P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...
- [Tyvj2032]升降梯上(最短路)
[Tyvj2032]升降梯上 Description 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道,映入眼帘的是一条直通塔顶的轨道.一辆停在轨道底部的电梯.和电梯内一杆控制电梯升 ...
- 2090. 「ZJOI2016」旅行者 分治,最短路
2090. 「ZJOI2016」旅行者 链接 loj 思路 \((l,mid)(mid+1,r)\).考虑跨过mid的贡献. 假设选的中间那条线的点为gzy,贡献为\(dis(x,gzy)+dis(g ...
- 「Poetize9」礼物运送
3055: 礼物运送 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 18 Solved: 12[Submit][Status] Description ...
- 【LOJ】#2512. 「BJOI2018」链上二次求和
题面 题解 转化一下可以变成所有小于等于r的减去小于等于l - 1的 然后我们求小于等于x的 显然是 \(\sum_{i = 1}^{n} \sum_{j = 1}^{min(i,x)} sum[i] ...
随机推荐
- java-03 方法
#############练习###################### 1.键盘录入乘法表 import java.util.Scanner; public class PrintNN { pub ...
- 抽屉header
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MQTT协议简介及协议原理
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建 ...
- requests模拟上传照片
博客园相册管理中有上传照片的功能 现在通过requests库模拟上传图片功能 先手动上传图片,用Fiddler转包,查看到上传图片接口请求格式, ------WebKitFormBoundarySKZ ...
- win7 64位搭建Mantis 缺陷管理系统(2)
建立Bug数据库 1. 右键Windows托盘的图标,选择“Local Web”,(或者在IE地址中输入“http://127.0.0.1/”)可看到如下页面: 2. 点击选择“mantis”,进入页 ...
- Arduino 元件
http://www.rs-online.com/designspark/electronics/
- JEECMS-新闻内容中遍历批量上传的图片
[#list content.pictures as p] <li value="${p_index+1}"> <img src="${p.imgPat ...
- JS Guid生成
function numToGuid(uid) { var str = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; var l = uid.to ...
- Visual Studio容器项目工程化心得
引言 关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程, 回想到开发过程中,鄙人有一些工程化心得, 分享给同学们. 项目工程化 因为本项目涉及单元测试Project.容器 ...
- android实现简单计算器
前台代码如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...