FZU Problem 2227 邮票 (离散化+map+dfs)
2016-04-19 11:53
197 查看
大意:给定n对点,每对是无向图。然后就是输出字典序最小的序列。点的范围为0~1e9.有10^5个。
思路:这题需要离散化加去重,我们可以把每个点的编号映射成1~n的编号。那么就需要用map1处理一下,然而需要讲点输出所以在用个map2从新编号映射到原来的节点号。
思路:这题需要离散化加去重,我们可以把每个点的编号映射成1~n的编号。那么就需要用map1处理一下,然而需要讲点输出所以在用个map2从新编号映射到原来的节点号。
#include<map> #include<queue> #include<cmath> #include<cstdio> #include<stack> #include<iostream> #include<cstring> #include<algorithm> #define ll long long #define inf 0x3f3f3f3f #define eps 1e-8 #include<vector> #define ls l,mid,rt<<1 #define rs mid+1,r,rt<<1|1 using namespace std; int cnt,sum,n; int du[100100]; int ans[100100]; bool vis[100010]; vector<int>arr[100010]; map<int,int>mp1; map<int,int>mp2; void dfs(int x){ if(sum == n+1) return ; int len = arr[x].size(); for(int i = 0;i < len ;++ i){ if( !vis[arr[x][i]] ){ vis[arr[x][i] ] = true; ans[sum++] = mp2[arr[x][i]]; dfs(arr[x][i]); if(sum==n+1) return ; } } } int main(){ int a,b,m,i,j,k; while(~scanf("%d",&n)){ cnt = 1;sum = 0; mp1.clear();mp2.clear(); for(i = 0;i < 100010;++i){ arr[i].clear(); du[i] = 0; } for(i = 0;i < n;++ i){ scanf("%d%d",&a,&b); if(!mp1[a]){ mp1[a] = cnt; mp2[cnt++] = a; } if(!mp1[b]){ mp1[b] = cnt; mp2[cnt++] = b; } arr[mp1[a] ].push_back(mp1[b]); arr[mp1[b] ].push_back(mp1[a]); du[mp1[a] ]++; du[mp1[b] ]++; } int star=inf; for(i = 1;i < cnt;++ i){ if( du[i]==1&& mp2[i]< star){ star = mp2[i]; } ///cout<<du[i]<<" "<<mp2[i]<<endl; } //cout<<mp1[star]<<endl; memset(vis,false,sizeof(vis)); ans[sum++] = star; vis[mp1[star] ] = true; dfs(mp1[star]); for(i = 0;i < sum;++ i){ printf(i==sum-1?"%d\n":"%d ",ans[i]); } } return 0; }
相关文章推荐
- android Google Map获取地理位置信息的方法
- Spark RDD API详解(一) Map和Reduce
- Python中map()函数浅析
- Android使用Google Map浅谈
- Erlang中的映射组Map详细介绍
- c++中map的基本用法和嵌套用法实例分析
- 百度地图给map添加右键菜单(判断是否为marker)
- JavaScript中实现Map的示例代码
- jquery中map函数与each函数的区别实例介绍
- jquery中map函数遍历数组用法实例
- jquery与google map api结合使用 控件,监听器
- jquery遍历数组与筛选数组的方法
- JavaScript中实现map功能代码分享
- 用json方式实现在 js 中建立一个map
- Android Map新用法:MapFragment应用介绍
- js Map List 遍历使用示例
- java实现遍历Map的方法
- velocity显示List与Map的方法详细解析
- Google Map Api和GOOGLE Search Api整合实现代码
- 关于STL中的map容器的一些总结