codeforces 29C Mail Stamps(dfs)
来源:互联网 发布:微信怎么推广淘宝店 编辑:程序博客网 时间:2024/05/22 23:07
思路:因为这些数字大到可以达到10的九次方,但个数却不多,因此可以用map容器存储各个数字对应的位置,然后再用数组f[i]储存每个位置对应的数,用vector容器储存图的邻接表,方便访问。注意深搜时找到一条能够遍历到所有点的路径再输出,要用到回溯。
代码如下:
#include<cstdio>#include<iostream>#include<cstring>#include<map>#include<vector>using namespace std;map<int,int>m;//起到去重作用,并且解决了数组无法开大的问题,m[a]=pos。储存每个数在数组中的位置 vector<int>graph[100005];//相当于无向图的邻接表 int f[100005];//第i个数的值 bool vis[100005];int n;int dfs(int cur,int dep){if(dep==n+1){//如果这条路走得通,能够通过这条路访问到每一个数,就开始回溯输出 cout<<f[cur];return 1;}for(int i=0;i<graph[cur].size();i++){//尝试访问该点的每一个未被访问的邻接点 if(vis[graph[cur][i]]==0){vis[graph[cur][i]]=1;if(dfs(graph[cur][i],dep+1)){cout<<" "<<f[cur];return 1; }}vis[graph[cur][i]]=0;//回溯 }}int main(){int i,j,a,b,pos;memset(vis,0,sizeof(vis));cin>>n;pos=0;for(i=0;i<n;i++){cin>>a>>b;if(m[a]==0){m[a]=++pos;f[pos]=a;}if(m[b]==0){m[b]=++pos;f[pos]=b;}graph[m[a]].push_back(m[b]);graph[m[b]].push_back(m[a]);}int start=1;for(i=1;i<=n+1;i++){if(graph[i].size()==1){start=i;break;}}//找到一个起点 vis[start]=1;dfs(start,1);//深搜 cout<<endl;return 0;}
1 0
- codeforces 29C Mail Stamps(dfs)
- Codeforces 29C Mail Stamps 【离散化 + DFS】
- Codeforces 29C:Mail Stamps(STL的应用+DFS)
- Codeforces 29C Mail Stamps【离散化+DFS】
- Codeforces #29 C. Mail Stamps
- codeforces C. Mail Stamps
- 【codeforces】29C—Mail Stamps
- CF-29C - Mail Stamps(DFS+离散化)
- codeforces-29C-Mail Stamps【离散化】【STLmap】
- Codeforces 29C Mail Stamps(离散化 && map初探)
- Codeforces Beta Round #29 (Div. 2, Codeforces format), problem: (C) Mail Stamps 图论
- cf29C. Mail Stamps
- 165 - Stamps(dfs)
- POJ1010 STAMPS(DFS+剪枝)
- 【DFS】Poj1010 STAMPS
- POJ 1010 STAMPS(DFS)
- UVa 165 Stamps 【DFS】
- Codeforces 744C【DFS】
- git常用命令
- matlab实现unix时间戳到标准时间的转换
- myeclipse部署maven项目到tomcat,src/main/resources里面配置文件部署不到webapp下classes
- 演示volatile 关键字作用的一段C代码
- 在web.config中 连接数据库的代码
- codeforces 29C Mail Stamps(dfs)
- 百度地图SDK在Android Studio中报错(添加 jniLibs.srcDir 'libs')
- Java获取当前时间的年月日时分秒方法
- Redis 集群
- “埋怨” 和 “抱怨”
- Android验证码倒计时功能实现
- CentOS-6.5-64位下搭建jdk7 + mysql5.5 + tomcat7 + nginx
- 在写一个iOS应用之前必须做的7件事(附相关资源)
- apktool 反编译 遇到文件解决