bfs优化
层次单调性
走地图
双重bfs
1.模块性
2.方案:外层bfs逆推,内层bfs重新跑
A.每次代价0/1:双端队列bfs
B.每次代价任意数值:优先队列bfs(dijikstra)、迭代(SPFA)
UVA11367 Full Tank?
https://www.luogu.org/problemnew/show/UVA11367
1 const int N=1010,M=10010,C=105,INF=99999999;
2 struct node
3 {
4 int u,cc,co;
5 node(int U,int CC,int CO){u=U;cc=CC;co=CO;}
6 };
7 bool operator < (node x,node y){return x.co>y.co;}
8 int f[N][C];
9 int pr[N],u[M<<1],v[M<<1],w[M<<1],fir[N],nxt[M<<1];
10 int n,m,tot,c,s,e;
11 priority_queue<node> q;
12
13 void bfs()
14 {
15 while(!q.empty()) q.pop();
16 q.push(node(s,0,0));
17 f[s][0]=0;
18 while(!q.empty())
19 {
20 node p=q.top();q.pop();
21 //cout<<p.u<<" "<<p.cc<<" "<<p.co<<endl;
22 if(p.u==e) {cout<<p.co<<endl;return;}
23 if(p.cc<c && p.co+pr[p.u]<f[p.u][p.cc+1])
24 {
25 f[p.u][p.cc+1]=p.co+pr[p.u];
26 q.push(node(p.u,p.cc+1,p.co+pr[p.u]));
27 }
28 qxx(i,p.u)
29 {
30 if(p.cc>=w[i] && f[v[i]][p.cc-w[i]]>=p.co)
31 {
32 f[v[i]][p.cc-w[i]]=p.co;
33 q.push(node(v[i],p.cc-w[i],p.co));
34 }
35 }
36 }
37 cout<<"impossible"<<endl;
38 }
39
40 int main()
41 {
42 n=rd(),m=rd();
43 FOR(i,1,n) pr[i]=rd();
44 while(tot<(m<<1))
45 {
46 u[++tot]=rd(),v[tot]=rd(),w[tot]=rd();
47 ++u[tot],++v[tot];
48 nxt[tot]=fir[u[tot]],fir[u[tot]]=tot;
49 ++tot;u[tot]=v[tot-1],v[tot]=u[tot-1],w[tot]=w[tot-1];
50 nxt[tot]=fir[u[tot]],fir[u[tot]]=tot;
51 }
52 int qq=rd();
53 FOR(i,1,qq)
54 {
55 memset(f,8,sizeof(f));
56 c=rd(),s=rd(),e=rd();
57 ++s,++e;
58 bfs();
59 }
60 return 0;
61 }
A*
带估价函数的bfs
一定有f[i]<=g[i]
越接近效率越高
康托展开
排列->序数
∑(i=1->n) i后面比i小的数 * (n-i)!
bfs优化的更多相关文章
- 2013年第四届蓝桥杯国赛 九宫重排(HashMap+双BFS优化)
九宫重排 时间限制:1.0s 内存限制:256.0MB 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干 ...
- 最少步数(dfs + bfs +bfs优化)
最少步数 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 ...
- 洛谷 2831 (NOIp2016) 愤怒的小鸟——仅+1所以bfs优化
题目:https://www.luogu.org/problemnew/show/P2831 状压dp.跑得很慢.(n^2*2^n) 注意只打一只猪的情况. #include<iostream& ...
- POJ2308连连看dfs+bfs+优化
DFS+BFS+MAP+剪枝 题意: 就是给你一个10*10的连连看状态,然后问你最后能不能全部消没? 思路: 首先要明确这是一个搜索题目,还有就是关键的一点就是连连看这个游戏是 ...
- hdu-1728(bfs+优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728 注意:1.先输入起点(y1,x1)和终点(y2,x2): 2.如果一个一个遍历会超时. 思路:每 ...
- USACO4.4 Shuttle Puzzle【bfs+优化】
直接上$bfs$,每一个状态记录下当前字符串的样子,空格的位置,和走到这个状态的答案. 用空格的位置转移,只有$50pts$ 考虑到题目一个性质:$W$只往右走,$B$只往左走,就可以过了. #inc ...
- POJ 1426 Find The Multiple --- BFS || DFS
POJ 1426 Find The Multiple 题意:给定一个整数n,求n的一个倍数,要求这个倍数只含0和1 参考博客:点我 解法一:普通的BFS(用G++能过但C++会超时) 从小到大搜索直至 ...
- nyoj三个水杯(bfs)
三个水杯 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互 ...
- hdu 3247 AC自动+状压dp+bfs处理
Resource Archiver Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Ot ...
- NOIP2002-字串变换【双向BFS】
NOIP2002-字串变换 Description 已知有两个字串A,BA,B及一组字串变换的规则(至多66个规则): A_1A1 ->B_1B1 A_2A2 -> B_2B2 规 ...
随机推荐
- 修改Git Commit提交记录的用户名Name和邮箱Email
修改Git 本次Commit提交记录的用户名Name和邮箱Email git commit --amend --author="new-name <xxx@new.com>&qu ...
- 手机护眼概论及OLED屏幕降低频闪原理介绍
影响护眼的因素 蓝光 目前手机大多已经实现硬件低蓝光,而且蓝光也可以通过护眼模式轻易克服. 偏振光 偏振光指振动方向与传播方向不对称的光,主要分为圆偏振光与线偏振光两种. 线偏振光测试方法为:透过偏振 ...
- k8s livenessprobe和readinessprobe详解
一.为什么需要容器探针 如何保持Pod健康 只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容器, ...
- 全国产!全志T3+Logos FPGA核心板(4核ARM Cortex-A7)规格书
核心板简介 创龙科技SOM-TLT3F是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板,ARM C ...
- 国产化率100%!全志科技A40i工业核心板规格书资料分享
1.核心板简介 创龙科技SOM-TLA40i是一款基于全志科技A40i处理器设计的4核ARM Cortex-A7国产工业核心板,每核主频高达1.2GHz. 核心板通过邮票孔连接方式引出CSI.TVIN ...
- CF1137C 题解
考虑把每个点进行拆成 \(d\) 个点表示星期几走到这个点,那么原图上的边 \((u,v)\) 就被拆成\((pos_{u,i},pos_{v,i+1})\) 表示星期的变化. 然后考虑进行缩点,在一 ...
- 记一次 .NET某上位视觉程序 离奇崩溃分析
一:背景 1. 讲故事 前段时间有位朋友找到我,说他们有一个崩溃的dump让我帮忙看下怎么回事,确实有太多的人在网上找各种故障分析最后联系到了我,还好我一直都是免费分析,不收取任何费用,造福社区. 话 ...
- 内网穿透的高性能的反向代理应用FRP-自定义404错误页【实践可行版】
frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. 为什 ...
- ECMA标准ECMAScript(JavaScript的一个标准)和C#
2024 年 6 月 26 日,第 127 届 ECMA 大会正式批准了 ECMAScript 2024 语言规范,这意味着它现在正式成为最新 ECMAScript 标准.ECMAScript是ECM ...
- manim边学边做--Matrix
在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块,专门用于在动画中显示矩阵格式的数据.关于矩阵的类主要有4个: Matrix:通用的矩阵 IntegerMatr ...