栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2862 Polymorphism

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2862 Polymorphism

#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<queue>#include<map>#include<algorithm>using namespace std;#define M 100000map<string, int> mp;map<int, string> mmp;int cnt;char str[1000], s1[1000], s2[1000];int vv[M<<1], nxt[M<<1], h[M], e, n;void add( int u, int v ){vv[e] = v, nxt[e] = h[u]; h[u] = e++;vv[e] = u, nxt[e] = h[v]; h[v] = e++;}int vis[M], pre[M];void dfs( int u, int fa ){if( vis[u] ) pre[u] = u;else pre[u] = pre[fa];for( int i = h[u]; i+1; i = nxt[i] ) if( vv[i] - fa ){dfs( vv[i], u );}}int main(){int cas = 0, n, u, v, m;while( scanf( "%s", str ) == 1 ){mp.clear(); cnt = 0;mmp.clear();scanf( "%d", &n );memset( h, -1, sizeof(h) ); e = 0;mp[str] = ++cnt;mmp[cnt] = str;for( int i = 0; i < n; ++i ){scanf( "%s%s", s1, s2 );if( !mp.count( s1 ) ) mp[s1] = ++cnt, mmp[cnt] = s1;if( !mp.count( s2 ) ) mp[s2] = ++cnt, mmp[cnt] = s2;add( mp[s1], mp[s2] );}scanf( "%d", &m );for( int i = 1; i <= cnt; ++i ) vis[i] = 0;for( int i = 0; i < m; ++i ){scanf( "%s", s1 );vis[mp[s1]] = 1;}pre[0] = pre[1] = 0;dfs( 1, 1 );scanf( "%d", &m );if( cas ) puts( "" );printf( "Function %dn", ++cas );for( int i = 0; i < m; ++i ){scanf( "%s", s1 );u = mp[s1];v = pre[u];if( v ) cout<<mmp[v]<<endl;else puts( "Exception" );}}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号