hdu 4308 Saving Princess claire_ 广搜 多校联合赛第七题
来源:互联网 发布:淘宝是如何盈利的 编辑:程序博客网 时间:2024/06/05 17:21
一个广搜题,就多了一个p点的处理,我们在以起点为开始广搜 遇见第一个p时(这个p一定是理起点最近的点)再将多有的p点都爆搜出来,压入队列,然后正常广搜就ok啦!!
5000*10000貌似没有超int啊!!wa了一次,改成longlong过了,测试数据有问题???
#include<iostream>#include<cstdio>#include<queue>using namespace std;char a[5005][5005];long long map[5005][5005];int r,c,t,sx,sy,ex,ey,sum,sign;int dir[4][2]={1,0,0,1,-1,0,0,-1};void bfs(int x,int y){ queue<int> q; q.push(x); q.push(y); while(!q.empty()){ int m=q.front();q.pop(); int n=q.front();q.pop(); for(int i=0;i<4;i++){ int mm=m+dir[i][1]; int nn=n+dir[i][0]; if(mm>=0&&mm<r&&nn>=0&&nn<c&&a[mm][nn]!='#'&&map[mm][nn]==0){ if(a[mm][nn]!='P'){ if(a[mm][nn]=='*'){ map[mm][nn]=map[m][n]+t; q.push(mm); q.push(nn); } if(a[mm][nn]=='C'){ sign=1;//标记是否找到终点 map[mm][nn]=map[m][n]; return ; } } else if(a[mm][nn]=='P'){ for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ if(i==mm&&j==nn) continue; if(a[i][j]=='P'){//搜索所有p点,加入队列, a[i][j]='!';//防止第二次又搜到p点 q.push(i); q.push(j); map[i][j]=map[m][n]; } } } } } } }}int main(){ while(~scanf("%d%d%d",&r,&c,&t)){ for(int i=0;i<r;i++) scanf("%s",a[i]); for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ map[i][j]=0; if(a[i][j]=='Y'){ sx=i;sy=j; } if(a[i][j]=='C'){ ex=i;ey=j; } } } sign=0; sum=0; bfs(sx,sy); if(sign==0) printf("Damn teoy!\n"); else cout<<map[ex][ey]<<endl; }}
- hdu 4308 Saving Princess claire_ 广搜 多校联合赛第七题
- hdu 4308 Saving Princess claire_ (多校联合1)
- hdu 4308 Saving Princess claire_
- HDU 4308 Saving Princess claire_
- HDU 4308 - Saving Princess claire_
- HDU 4308 Saving Princess claire_
- HDU 4308 Saving Princess claire_
- hdu 4308 - Saving Princess claire_
- HDU 4308 Saving Princess claire_
- HDU 4308 Saving Princess claire_
- hdu 4308 Saving Princess claire_
- HDU/HDOJ----4308 Saving Princess claire_
- hdu 4308 Saving Princess claire_(bfs)
- 【BFS】 HDU 4308 Saving Princess claire_
- hdu 4308 Saving Princess claire_(BFS)
- hdu 4308 Saving Princess claire_ BFS
- hdu 4308 Saving Princess claire_(bfs,4级)
- hdu 4308 Saving Princess claire_(BFS+优先队列)
- T-SQL 计算固定资产折旧(双倍余额法)
- mongodb集群搭建
- eclipse3.7安装maven插件失败问题解决
- postfix sasl身份验证
- Cyrus-SASL 安装
- hdu 4308 Saving Princess claire_ 广搜 多校联合赛第七题
- linux中如何重新获取丢失的密码
- POJ-2823单调队列
- CentOS下搭建DNS详细版
- 初学汇编之CPU类型识别
- 什么是SMTP协议?SMTP端口号是多少?什么是SMTP服务器?免费smtp服务器?
- 前端 _本地存储问题
- Oracle中关于查看角色与角色间权限的差异的SQL语句
- listview android:cacheColorHint,android:listSelector属性作用 .