L3-004. 肿瘤诊断
2016-05-31 18:05
344 查看
[b]L3-004. 肿瘤诊断[/b]
题目链接:https://www.patest.cn/contests/gplt/L3-004
BFS
之前尝试使用递归dfs,提交后发现有两个段错误,发现递归层数太多,然后改用bfs解决。
代码如下:
题目链接:https://www.patest.cn/contests/gplt/L3-004
BFS
之前尝试使用递归dfs,提交后发现有两个段错误,发现递归层数太多,然后改用bfs解决。
代码如下:
#include<cstdio> #include<stack> #define N 505 #define MAX 5000 using namespace std; int n,m,s,d; int pro ; int Map ; bool mark ; int sum ; int path ; int Distance ; int person ; int i,j; stack<int>st; int main(void){ freopen("in.txt","r",stdin); scanf("%d%d%d%d",&n,&m,&s,&d); for(i=0;i<n;++i)scanf("%d",&pro[i]); for(i=0;i<n;++i) for(j=0;j<n;++j)Map[i][j]=MAX; while(m--){ int len; scanf("%d%d%d",&i,&j,&len); if(Map[i][j]>len)Map[i][j]=Map[j][i]=len; } for(i=0;i<n;++i){ Distance[i]=MAX; sum[i]=1; person[i]=pro[s]; if(Map[s][i]<MAX){ Distance[i]=Map[s][i]; path[i]=s; person[i]+=pro[i]; } } mark[s]=1,Distance[s]=0; while(1){ int k,m=MAX; for(i=0;i<n;++i){ if(!mark[i]&&m>Distance[i]){ m=Distance[i]; k=i; } } if(m==MAX)break; mark[k]=1; for(i=0;i<n;++i){ if(!mark[i]){ if(Distance[i]>Distance[k]+Map[k][i]){ Distance[i]=Distance[k]+Map[k][i]; person[i]=person[k]+pro[i]; path[i]=k; sum[i]=sum[k];/**not 1**/ }else if(Distance[i]==Distance[k]+Map[k][i]){ sum[i]+=sum[k];/**not ++**/ if(person[i]<person[k]+pro[i]){ person[i]=person[k]+pro[i]; path[i]=k; } } } } } int temp=pro[d]; int k=d; while(k!=s){ st.push(k); k=path[k]; temp+=pro[k]; } printf("%d %d\n",sum[d],temp); printf("%d",s); while(!st.empty()){ printf(" %d",st.top()); st.pop(); } printf("\n"); return 0; }
相关文章推荐
- String 转换成JSONObject
- log4j:WARN No appenders could be found for logger (org.quartz.simpl.SimpleThreadPool)
- 【简介】利用Arduino和Coolpy设计网关 —— HTTP协议
- token是为了防止表单重复提交
- hdu 1245 Saving James Bond【floyd】
- 一个简单的词法分析器
- #pragma pack(push,1)与#pragma pack(1)的区别
- iOS的事件传递响应链
- Android第三方推送(基于JPush极光)
- 深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
- 【Linux运维入门】PSSH-轻量集群管理工具
- Android的ArrayAdapter
- Oracle EXP-00091解决方法
- 第14周实践项目1——排序函数模板
- 横、竖分割线
- hdu2648 shopping(map应用)
- docker 通过Dockerfile build image
- Fragment基本应用
- 冒泡排序算法及其优化
- 字符串函数原型