208UVA救火车
来源:互联网 发布:流程图软件visio下载 编辑:程序博客网 时间:2024/05/29 13:23
第一次TLE,看了http://blog.csdn.net/shuangde800/article/details/7750427 的博客才知道,要先排除那些不可能通往destination的路去掉!!!!
这里就是造成TLE 和 AC0.000的区别!!!
这道题udebug有很多测试数据
#include<queue>using namespace std;#include<stdio.h>#include<string.h>int gra[30][30];int vis[30];int route[30];int dest;int numnode;int way;void road(int cur,int node){if(node == dest){for(int i =0;i<cur;i++)printf("%d ",route[i]);printf("%d",node);putchar(10);way++;return;}route[cur]=node;vis[node]=1;for(int i=1;i <= numnode;i++){if(gra[node][i]==2&&!vis[i]){road(cur+1,i);}}vis[node]=0;}void bfs(int start){queue<int> que;que.push(start);while(!que.empty()){int s=que.front();que.pop();for(int i=1;i <=numnode;i++){if(gra[s][i]==1){que.push(i);gra[s][i]=gra[i][s]=2;}}}}int main(){//freopen("input.txt","r",stdin);freopen("out.txt","w",stdout);int numcase=1;while(scanf("%d",&dest)==1){int u,v;memset(gra,0,sizeof(gra));memset(vis,0,sizeof(vis));memset(route,0,sizeof(route));numnode=0;way=0;while(scanf("%d%d",&u,&v)==2){if(!u&&!v) break;gra[u][v]=gra[v][u]=1;numnode = numnode>u?numnode:u;numnode = numnode>v?numnode:v;}printf("CASE %d:\n",numcase++);bfs(dest);road(0,1);printf("There are %d routes from the firestation to streetcorner %d.\n",way,dest);}}
0 0
- UVA 208 救火车
- UVa 208 救火车
- 208UVA救火车
- uva_208-Firetruck(救火车)
- 【TLE剪枝】UVa208救火车
- uva 208
- uva 208
- uva 208
- UVA 208
- UVA 208
- uva 208 - Firetruck
- uva 208 - Firetruck
- uva 208 - Firetruck
- UVa 208 - Firetruck
- UVA 208 - Firetruck
- UVA 208 - Firetruck
- UVa 208 - Firetruck
- UVA 208 Firetruck
- Qt opencv cmake
- oj1971: 相加和最大值
- Python列表及简单操作
- Java语言基础(一)-java主类结构
- SyntaxError: Non-ASCII character '\xe5' in file H:\workspace\output\out\out.py on line 4, but no enc
- 208UVA救火车
- php框架
- Java LinkedList 源码小结
- uoj275. 【清华集训2016】组合数问题
- 495. Teemo Attacking
- Python的GIL是什么鬼,多线程性能究竟如何
- php基础知识
- 蛙人高频交易拆单策略—带手续费拆单策略及原理说明
- Caffe框架的理解(二):详解AlexNet