2017.5.9 寻找道路 思考记录
来源:互联网 发布:软件开发入门 编辑:程序博客网 时间:2024/06/09 22:25
一定认真读题,不然被坑死
注意是根据这个点的下一个点判断这个点、、
而且写代码一定注意每个语句的细节
码:
#include<iostream>#include<cstdio>using namespace std;#include<queue>#include<vector>#include<cstring>int st,nd,f[10050],s,t,n,m,i,x,y,j;bool zout[10050],keyi,dian[10050],vis[10050];queue<int> q;vector<int>v[10050],v2[10050];void dfs(int now){int i;for(i=0;i<v2[now].size();i++){if(zout[v2[now][i]])continue;zout[v2[now][i]]=1;dfs(v2[now][i]);}}int spfa(int now){int st,i,nd;memset(f,0x7f,sizeof(f));f[s]=0;q.push(s);while(!q.empty()){ st=q.front(); vis[st]=0; q.pop();for(i=0;i<v[st].size();i++){nd=v[st][i];if(dian[nd])continue; if(f[nd]>f[st]+1){f[nd]=f[st]+1;if(!vis[nd])vis[nd]=1,q.push(nd); }}}if(f[t]>1e7)return -1;else return f[t];}int main(){scanf("%d%d",&n,&m);for(i=1;i<=m;i++){scanf("%d%d",&x,&y);v[x].push_back(y);v2[y].push_back(x);}scanf("%d%d",&s,&t);zout[t]=1;dfs(t);for(i=1;i<=n;i++){keyi=1;for(j=0;j<v[i].size();j++){if(!zout[v[i][j]]){keyi=0;break;}}if(keyi==0)dian[i]=1;//else cout<<i<<" ";}dian[s]=1;cout<<spfa(s);}
0 0
- 2017.5.9 寻找道路 思考记录
- 2017.5.11 道路修建 思考记录
- 2017.4.27 道路游戏 思考记录
- 寻找道路
- 寻找道路
- 寻找道路
- 2017.9.21 道路修建(noi2011) 思考记录
- 寻找不同的道路
- Noip2014寻找道路题解
- NOIP2014 寻找道路
- [NOIP2014]寻找道路
- Vijos1909 寻找道路
- NOIP2014寻找道路
- codevs 寻找道路
- vijos1909【noip2014】寻找道路
- 【noip2014】寻找道路
- NOIP2014 寻找道路
- noip2014寻找道路
- Linux IO模式及 select、poll、epoll详解
- Linux内存使用调整
- html设置等宽字体效果
- Java泛型类型擦除机制
- Spring AOP的底层实现原理
- 2017.5.9 寻找道路 思考记录
- 理解I/O Completion Port
- hdu6029 Graph Theory (2017女生赛)
- TimePickerDialog使用
- 算法导论程序6--随机算法(Python)
- 每天一个Linux命令:mkdir
- Oracle日期查询:季度、月份、星期等时间信息
- 从965到996,传统IT业到互联网
- STM32F10x的启动汇编分析