HDU 4308 Contest 1
纯BFS+优先队列扩展。
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <string.h>
- #include <queue>
- using namespace std;
- bool vis[5100];
- char str[5100];
- struct point{
- int x,y;
- int cost;
- bool operator < (const point &a)const{
- return cost>a.cost;
- }
- }st,en,passort[550],tmp,pushed;
- int pp;
- priority_queue<point>que;
- int dir[4][2]={
- {0,1},{0,-1},{1,0},{-1,0}
- };
- int work(int r,int c,int cost){
- memset(vis,false,sizeof(vis));
- int x,y;
- st.cost=0;
- que.push(st);
- vis[st.x*c+st.y]=true;
- while(!que.empty()){
- tmp=que.top();
- que.pop();
- for(int i=0;i<4;i++){
- x=tmp.x+dir[i][0],y=tmp.y+dir[i][1];
- if(x>=0&&x<r&&y>=0&&y<c){
- if(str[x*c+y]!='#'&&!vis[x*c+y]){
- if(str[x*c+y]=='*'){
- pushed.x=x;
- pushed.y=y;
- pushed.cost=tmp.cost+cost;
- que.push(pushed);
- vis[x*c+y]=true;
- }
- else if(str[x*c+y]=='P'){
- for(int ps=0;ps<pp;ps++){
- pushed.x=passort[ps].x;
- pushed.y=passort[ps].y;
- pushed.cost=tmp.cost;
- que.push(pushed);
- vis[x*c+y]=true;
- }
- }
- else if(str[x*c+y]=='C')
- return tmp.cost;
- }
- }
- }
- }
- return -1;
- }
- int main(){
- int r,c,cost;
- while(scanf("%d%d%d",&r,&c,&cost)!=EOF){
- getchar();
- int beg=0;
- pp=0;
- for(int i=0;i<r;i++){
- gets(str+beg);
- for(int k=beg;k<beg+c;k++)
- if(str[k]=='Y'){
- st.x=i;
- st.y=k-beg;
- }
- else if(str[k]=='C'){
- en.x=i;
- en.y=k-beg;
- }
- else if(str[k]=='P'){
- passort[pp].x=i;
- passort[pp].y=k-beg;
- pp++;
- }
- beg+=c;
- }
- int ans=work(r,c,cost);
- if(ans==-1) printf("Damn teoy!\n");
- else
- printf("%d\n",ans);
- while(!que.empty())
- que.pop();
- }
- return 0;
- }
HDU 4308 Contest 1的更多相关文章
- HDU 4308 BFS Saving Princess claire_
原题直通车:HDU 4308 Saving Princess claire_ 分析: 两次BFS分别找出‘Y’.‘C’到达最近的‘P’的最小消耗.再算出‘Y’到‘C’的最小消耗,比较出最小值 代码: ...
- hdu 4308 Saving Princess claire_
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4308 Saving Princess claire_ Description Princess cla ...
- Saving Princess claire_(hdu 4308 bfs模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=4308 Saving Princess claire_ Time Limit: 2000/1000 MS (Jav ...
- HDU 5045 Contest(状压DP)
Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...
- hdu - 5045 - Contest(国家压缩dp)
意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...
- [ACM] hdu 5045 Contest (减少国家Dp)
Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...
- HDU–5988-Coding Contest(最小费用最大流变形)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- hdu 4308 Saving Princess claire_ BFS
为了准备算法考试刷的,想明确一点即可,全部的传送门相当于一个点,当遇到一个传送门的时候,把全部的传送门都压入队列进行搜索 贴代码: #include <iostream> #include ...
- hdu 5045 Contest(状态压缩DP)
题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...
随机推荐
- BA-siemens-点位类型表
X(超级点) 输入 0-10v 4-20ma(不可用) Ni 1000 Pt 1000 10k & 100k 热敏电阻 数字输入 脉冲计数输入 输出 0-10v 4-20ma(不可用) 数字 ...
- failed to sync branch You might need to open a shell and debug the state of this repo.
failed to sync branch You might need to open a shell and debug the state of this repo. i made some c ...
- 压力工具代码及epoll使用
服务器编程 P347的压力工具代码不错,对于epoll用的好,可以看.
- ASP.NET—011:JavaScript报错常见问题
相信大家都写过JavaScript.JS由于语法以及自己须要实现的业务的原因,可能在一个页面上要写长篇大论.或者单独写js文件写了好几百K.JS不可否认给Web编程带了很多的方便. 可是假设JS发生了 ...
- 金蝶KIS标准版与金蝶K3的差别
一.数据库 金蝶KIS标准版使用MS Access数据库.该数据库适用于小规模的数据处理,是比較经济的数据库解决方式,但当单个表的数据记录超过5万条时.执行的速度和稳定性都将受到一定程序的影响. K ...
- robot framework环境配置
1.Robot framework的安装 作用:web自动化测试框架. RF框架是基于python 的,所以一定要有python环境.网上可以自行查找. 下载地址:https://pypi.pytho ...
- redis.conf 配置项说明
redis.conf 配置项说明如下: Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 当Redis以守护进程方式运行时,Redis ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- c++面向对象程序设计 谭浩强 第二章答案
类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...
- 求包含每个有序数组(共k个)至少一个元素的最小区间
title: 求包含每个有序数组(共k个)至少一个元素的最小区间 toc: false date: 2018-09-22 21:03:22 categories: OJ tags: 归并 给定k个有序 ...