bzoj2346 [Baltic 2011]Lamp(建图spfa)
来源:互联网 发布:python crash course 编辑:程序博客网 时间:2024/06/06 23:53
对角线建边,以前有的边权为0,没有的边权为1,跑最短路。
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 510inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,h[N*N],num=0,d[N*N];bool inq[N*N];char s[N];struct edge{ int to,next,val;}data[N*N*4];inline void add1(int x,int y,int val){ data[++num].to=y;data[num].next=h[x];h[x]=num;data[num].val=val; data[++num].to=x;data[num].next=h[y];h[y]=num;data[num].val=val;}void spfa(){ deque<int>q;memset(d,0x3f,sizeof(d)); q.push_back(1);d[1]=0;inq[1]=1; while(!q.empty()){ int x=q.front();q.pop_front();inq[x]=0; for(int i=h[x];i;i=data[i].next){ int y=data[i].to; if(d[x]+data[i].val<d[y]){ d[y]=d[x]+data[i].val; if(!inq[y]){ inq[y]=1; if(!q.empty()&&d[y]<d[q.front()]) q.push_front(y); else q.push_back(y); } } } }}int main(){// freopen("a.in","r",stdin); n=read();m=read(); for(int i=1;i<=n;++i){ scanf("%s",s+1); for(int j=1;j<=m;++j) if(s[j]=='/'){ add1((m+1)*(i-1)+j,(m+1)*i+j+1,1); add1((m+1)*(i-1)+j+1,(m+1)*i+j,0); } else{ add1((m+1)*(i-1)+j,(m+1)*i+j+1,0); add1((m+1)*(i-1)+j+1,(m+1)*i+j,1); } } spfa(); if(d[(m+1)*(n+1)]==inf) puts("NO SOLUTION"); else printf("%d\n",d[(m+1)*(n+1)]); return 0;}
阅读全文
0 0
- bzoj2346 [Baltic 2011]Lamp(建图spfa)
- bzoj2346[Baltic 2011]Lamp
- 2346: [Baltic 2011]Lamp (SPFA+SLF优化)
- BZOJ 2346 Baltic 2011 Lamp SPFA
- bzoj 2346: [Baltic 2011]Lamp spfa
- 【BZOJ】【P2346】【Baltic 2011】【Lamp】【题解】【堆Dijkstra】
- BZOJ 2346 [Baltic 2011]Lamp dijkstra堆优化
- BZOJ2348 [Baltic 2011]Plagiarism
- 【BZOJ】【P2348】【Baltic 2011】【Plagiarism】【二分】
- BZOJ 2348 Baltic 2011 Plagiarism 排序
- bzoj2348: [Baltic 2011]Plagiarism(水题)
- 【BZOJ2348】[Baltic 2011]Plagiarism【二分】【或 Two Pointers】
- 建图spfa
- zoj3010The Lamp Game(状态压缩+SPFA求最大路)经典
- Baltic 2010 Candies
- Emptying the Baltic
- [Baltic 2001]Mars Maps
- poj2502(SPFA+建图)
- 美白图像算法
- 策划配置表的读取
- TomCat在MAC下的安装运行
- fragment的切换
- JavaScript DOM编程艺术(第二版) 第八章最终代码
- bzoj2346 [Baltic 2011]Lamp(建图spfa)
- 第2周项目3-体验复杂度
- 患癌父亲为省2元不吸氧:贫穷是你想象不到的绝望
- input框限制只输入数字
- ao-service-servlet-jsp构建简易web通讯录(三层开发)预备知识
- Pixhawk室内自动控制:参数设置
- hdu 5700 难度:一般
- Android系统源码分析--Context
- Git 提交代码