思路:

  这道题可以宽搜,深搜,最短路

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
queue<pair<int,int> > q;
int n,m,c[25],s;
long long f[25][1010],ans;
bool v[25][1010];
int Abs(int x)
{
return x >= 0 ? x : -x;
}
void bfs()
{
q.push(make_pair(s,1));
v[s][1] = 1; f[s][1] = 0;
while(!q.empty())
{
int x = q.front().first;
int y = q.front().second;
q.pop(); v[x][y] = 0;
for(int i = 1;i <= m;i ++)
{
int em = y + c[i];
if(em <= n && em >= 1)
{
if(f[i][em] > f[x][y] + Abs(i - x) + Abs(2 * c[i]))
{
f[i][em] = f[x][y] + Abs(i - x) + Abs(2 * c[i]);
if(!v[i][em]) q.push(make_pair(i,em)),v[i][em] = 1;
}
}
}
}
}
int main()
{
freopen("elevator.in","r",stdin);
freopen("elevator.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i = 1;i <= m;i ++)
{
scanf("%d",&c[i]);
if(c[i] == 0) s = i;
}
memset(f,0x3f,sizeof(f));
ans = f[0][0];
bfs();
for(int i = 1;i <= m;i ++) ans = min(ans,f[i][n]);
if(ans != f[0][0]) printf("%d\n",ans);
else printf("-1\n");
fclose(stdin);
fclose(stdout);
return 0;
}
/*
6 3
-1 0 2
*/

【csp模拟赛九】--dfs的更多相关文章

  1. 【csp模拟赛九】--dfs3

    这道题贪心错误:直接dfs就行,枚举新开一个还是往之前的里面塞 贪心代码(80): #include<cstdio> #include<algorithm> #include& ...

  2. 【csp模拟赛九】--dfs2

    dfs 代码: #include<algorithm> #include<iostream> #include<cstdio> using namespace st ...

  3. CSP模拟赛游记

    时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...

  4. 【CSP模拟赛】Freda的迷宫(桥)

    题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过.  黄昏 ...

  5. 模拟赛 T3 DFS序+树状数组+树链的并+点权/边权技巧

    题意:给定一颗树,有 $m$ 次操作. 操作 0 :向集合 $S$ 中加入一条路径 $(p,q)$,权值为 $v$ 操作 1 :给定一个点集 $T$,求 $T$ 的并集与 $S$ 中路径含交集的权和. ...

  6. 【csp模拟赛4】基站建设 (station.cpp)

    [题目描述] 小 Z 的爸爸是一位通信工程师,他所在的通信公司最近接到了一个新的通 信工程建设任务,他们需要在 C 城建设一批新的基站. C 城的城市规划做得非常好,整个城市被规整地划分为 8 行 8 ...

  7. 【CSP模拟赛】避难向导(倍增lca&树的直径)

    耐力OIer,一天7篇博客 题目描述 “特大新闻,特大新闻!全国爆发了一种极其可怕的病毒,已经开始在各个城市 中传播开来!全国陷入了巨大的危机!大量居民陷入恐慌,想要逃到其它城市以 避难!经调查显示, ...

  8. CSP模拟赛 Lost My Music(二分,可回退化栈)

    题面 题解 发现是斜率的形式,答案的相反数可以看做一条直线的斜率.那么我们要答案最小,斜率最大.维护下凸壳就行了. 考试时写了直接dfsdfsdfs+暴力弹栈拿了808080分(还以为自己是O(n)正 ...

  9. CSP模拟赛 Repulsed(树形DP)

    题面 ⼩ w ⼼⾥的⽕焰就要被熄灭了. 简便起⻅,假设⼩ w 的内⼼是⼀棵 n − 1 条边,n 个节点的树. 现在你要在每个节点⾥放⼀些个灭⽕器,每个节点可以放任意多个. 接下来每个节点都要被分配给 ...

随机推荐

  1. Java同C#的语法不同之处

    Java同C#的语法不同之处... [注:转载而来但原出处不详:若是您原创请联系我]1,命名空间与包 C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace) Java中与此对 ...

  2. Bad owner or permissions on .ssh/config win10问题解决

    最近向系统添加了新用户账号后出现了问题,尝试使用私钥登陆服务器,提示了 Bad owner or permissions on .ssh/config 这个报错,就是如题中的问题 修复 按照Windo ...

  3. 代码质量控制 & 编程注意项

    目录 代码质量控制 编程注意项 代码&功能优化 代码优化 功能&模块优化 其他 小技巧 调试 用于记录工作中出现的问题和编程时需要注意的重点,保证代码质量和编程效率     代码质量控 ...

  4. python练习:异常

    异常习题: 一 编写with操作类Fileinfo(),定义__enter__和__exit__方法.完成功能: 1.1 在__enter__方法里打开Fileinfo(filename),并且返回f ...

  5. 扩展 MongoDB.Driver 支持实体

    针对MongoDB的官方C#驱动进行扩展 一.安装 Install-Package Apteryx.MongoDB.Driver.Extend 移步我的项目https://github.com/cod ...

  6. UI5-技术篇-Navigation And Routing

    主要记录下Router设置过程中出现的几个问题 1.View 首页设置 controlId 2.Manifest设置 2.1设置启动页 2.2设置默认配置 2.3设置Targets 首页设置 子页设置 ...

  7. sql server 游标和with as使用

    ) --声明变量,需要读取的数据 DECLARE cur CURSOR --去掉STATIC关键字即可 FOR WITH Emp AS (SELECT acc.* FROM GXSpreadDB.db ...

  8. 【常用技巧】js开发的一些技巧

    1.console.log的特殊用法: 添加%c特殊符号即可打印出样式 console.log("%c djsakiasjdkasjdkjas","font-size:6 ...

  9. Linux命令——chkconfig

    拓展:如何增加一个系统服务service chkconfig本身用法不复杂,其作用是控制service是否开机启动. 对于CentOS而言,7.X版本已经不再使用SysV,SysV相关的命令基本上没有 ...

  10. Linux VPS搭建蚂蚁笔记Leanote私有云笔记存储平台

    一.基础环境LNMP 安装nginx: yum install epel-release -y yum install nginx -y # 启动 nginx systemctl start ngin ...