2143: 飞飞侠
来源:互联网 发布:淘宝保健食品类押金 编辑:程序博客网 时间:2024/04/27 23:24
Dijkstra跑了25S差点以为要炸,回头看了一下发现时限是50S。。。。。。。。
难得在BZOJ上找到这么水的题。
NOIP水平不多说了。
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const int inf=1e9;struct Heapnode{int x,y,d;bool operator<(const Heapnode &rhs)const{return d>rhs.d;}};int d[155][155],A[155][155],B[155][155],n,m;bool done[155][155];void dijkstra(int sx,int sy){priority_queue<Heapnode>q;memset(d,0x3f,sizeof(d));d[sx][sy]=0;memset(done,false,sizeof(done));q.push((Heapnode){sx,sy,0});while(!q.empty()){Heapnode tmp=q.top();q.pop();int x=tmp.x,y=tmp.y;if(done[x][y])continue;done[x][y]=true;int l=x-B[x][y],r=x+B[x][y];for(int i=1;i<=B[x][y];i++){if(y-i<1)break;int tmpl=l+i,tmpr=r-i;tmpl=max(tmpl,1);tmpr=min(tmpr,m);for(int j=tmpl;j<=tmpr;j++)if(d[j][y-i]>d[x][y]+A[x][y]){d[j][y-i]=d[x][y]+A[x][y];q.push((Heapnode){j,y-i,d[j][y-i]});}}for(int i=1;i<=B[x][y];i++){if(y+i>m)break;int tmpl=l+i,tmpr=r-i;tmpl=max(tmpl,1);tmpr=min(tmpr,m);for(int j=tmpl;j<=tmpr;j++)if(d[j][y+i]>d[x][y]+A[x][y]){d[j][y+i]=d[x][y]+A[x][y];q.push((Heapnode){j,y+i,d[j][y+i]});}}l=max(l,1);r=min(r,n);for(int i=l;i<=r;i++)if(d[i][y]>d[x][y]+A[x][y]){d[i][y]=d[x][y]+A[x][y];q.push((Heapnode){i,y,d[i][y]});}}}int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&B[i][j]);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&A[i][j]);int x[3],y[3],ans[3];for(int i=0;i<3;i++)scanf("%d%d",&x[i],&y[i]);memset(ans,0,sizeof(ans));for(int i=0;i<3;i++){dijkstra(x[i],y[i]);for(int j=0;j<3;j++)ans[j]+=d[x[j]][y[j]];}int res=1e9,p;for(int i=0;i<3;i++)if(ans[i]<res)res=ans[i],p=i;if(res>=inf){printf("NO");return 0;}switch(p){case 0:printf("X");break;case 1:printf("Y");break;case 2:printf("Z");break;}printf("\n%d",res);return 0;}
0 0
- 2143: 飞飞侠
- 2143: 飞飞侠
- 2143: 飞飞侠 最短路
- 飞飞侠
- bzoj 2143 飞飞侠【最短路】
- BZOJ 2143 飞飞侠 最短路
- [NOIP模拟]BZOJ 2143 飞飞侠
- bzoj2143 飞飞侠
- BZOJ 2143 飞飞侠 (最短路变形)
- [NOIP模拟][bzoj 2143][最短路]飞飞侠
- bzoj2143 飞飞侠 最短路
- BZOJ2143——飞飞侠
- [NOIP2017模拟][bzoj2143] 飞飞侠
- 堆优化dijkstra bzoj2143飞飞侠
- jzoj1916 [2011集训队出题] 飞飞侠 spfa
- 【Tsinsen】1228 飞飞侠【并查集优化最短路】
- NOIP模拟(10.31)T2 朋友 (bzoj2143 飞飞侠)
- NOIP模拟(20171031)T2 朋友(BZOJ2143 飞飞侠)
- java多线程之--多的生产者与多个消费者
- java libs调试
- PAT乙级 有理数四则运算(20)
- 依赖电脑生活的人如何更好的保护眼睛
- 配置局域网YUM源且制定某些IP才能使用该YUM源
- 2143: 飞飞侠
- iOS 内购( IAP)处理流程
- Spark1.6安装-Standalone
- http://blog.csdn.net/majiakun1/article/details/46530245
- Proxool多次调用打开连接报错记录
- git学习:git fetch & git pull 区别
- iOS读取本地相册
- HTTP POST请求报文格式分析与Java实现文件上传
- Rich Text Processing