ural 1837 Isenbaev's Number
http://acm.timus.ru/problem.aspx?space=1&num=1837
#include <cstdio>
#include <cstring>
#include <vector>
#include <string>
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
vector<int>q[]; struct node
{
string s;
int num;
bool operator <(const node &a)const
{
return s<a.s;
}
} p1[*];
int t1; int getnum(string c)
{
for(int i=; i<t1; i++)
{
if(c==p1[i].s) return i;
}
p1[t1++].s=c;
return t1-;
} void bfs(int str)
{
queue<int>qq;
bool vis[];
memset(vis,false,sizeof(vis));
qq.push(str);
p1[str].num=;
vis[str]=true;
while(!qq.empty())
{
int m=qq.front();
qq.pop();
for(int j=; j<q[m].size(); j++)
{
int x=q[m][j];
vis[x]=true;
if(p1[x].num==-){
p1[x].num=p1[m].num+;
qq.push(x);
}
}
}
} int main()
{
int t;
scanf("%d",&t);
string s1,s2,s3;
t1=;
int k1,k2,k3;
for(int i=; i<=t; i++)
{
cin>>s1>>s2>>s3;
k1=getnum(s1);
k2=getnum(s2);
k3=getnum(s3);
q[k1].push_back(k2);
q[k1].push_back(k3);
q[k2].push_back(k1);
q[k2].push_back(k3);
q[k3].push_back(k1);
q[k3].push_back(k2);
}
for(int j=; j<t1; j++)
{
p1[j].num=-;
}
string s4="Isenbaev";
int num1;
bool flag=false;
for(int j=; j<t1; j++)
{
if(p1[j].s==s4)
{
flag=true;
num1=j;
break;
}
}
if(flag)
bfs(num1);
sort(p1,p1+t1);
for(int i=; i<t1; i++)
{
if(p1[i].num==-)
{
cout<<p1[i].s<<" "<<"undefined"<<endl;
}
else
cout<<p1[i].s<<" "<<p1[i].num<<endl;
}
return ;
}
ural 1837 Isenbaev's Number的更多相关文章
- ural 1837. Isenbaev's Number bfs
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1837 描述: Isenbaev是国外的一个大牛. 现在有许多人要参加ACM ICPC. ...
- URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
1837. Isenbaev's Number Time limit: 0.5 second Memory limit: 64 MB Vladislav Isenbaev is a two-time ...
- 1837. Isenbaev's Number(floyd)
1837 被数据结构部分打击的不行了 换地 刷点简单的 图论第一题 floyd水过 #include <iostream> #include<cstdio> #include& ...
- ural 1748 The Most Complex Number 和 丑数
题目:http://acm.timus.ru/problem.aspx?space=1&num=1748 题意:求n范围内约数个数最多的那个数. Roughly speaking, for a ...
- URAL 1748. The Most Complex Number(反素数)
题目链接 题意 :给你一个n,让你找出小于等于n的数中因子个数最多的那个数,并且输出因子个数,如果有多个答案,输出数最小的那个 思路 : 官方题解 : (1)此题最容易想到的是穷举,但是肯定超时. ( ...
- URAL 1748 The Most Complex Number
题目链接:https://vjudge.net/problem/11177 题目大意: 求小于等于 n 的最大反素数. 分析: n <= 10^18,而前20个素数的乘积早超过10^18,因此可 ...
- ural 2071. Juice Cocktails
2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...
- ural 2073. Log Files
2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...
- ural 2070. Interesting Numbers
2070. Interesting Numbers Time limit: 2.0 secondMemory limit: 64 MB Nikolay and Asya investigate int ...
随机推荐
- Java图像灰度化的实现过程解析
概要 本文主要介绍了灰度化的几种方法,以及如何使用Java实现灰度化.同时分析了网上一种常见却并不妥当的Java灰度化实现,以及证明了opencv的灰度化是使用“加权灰度化”法 24位彩色图与8位灰度 ...
- [转]百度地图点聚合MarkerClusterer移动地图时,Marker的Label丢失的问题
参考文献:http://www.cnblogs.com/jicheng1014/p/3143859.html 问题现象: 使用MarkerClusterer_min.js,可以实现点聚合,但是当将带有 ...
- Asp.Net Mvc使用Autofac实现依赖注入
在asp.net mvc控制器中使用Autofac来解析依赖 如下Controller中使用构造函数依赖注入接口IPeople : public class AutoFacController : C ...
- C# 自己定义 implicit和explicit转换
explicit 和 implicit 属于转换运算符,如用这两者能够让我们自己定义的类型支持相互交换explicti 表示显式转换.如从 A -> B 必须进行强制类型转换(B = (B)A) ...
- Robotium -- 使用JunitReport导出测试报告
使用Robotium进行测试的时候,要想可以导出明了的测试结果,可以使用junitreport来实现 junit-report下载地址:https://github.com/jsankey/andro ...
- UITableView的编辑(插入、删除、移动)
先说两个方法beginUpdates和endUpdates,几点注意事项: 一般我们把行.块的插入.删除.移动写在由这两个方法组成的函数块中.如果你不是在这两个函数组成的块中调用插入.删除.移动方法, ...
- vipw和vigr命令
Modifying the Configuration Files To add user accounts, it suffices that one line is added to /etc/p ...
- Could not reliably determine the server's fully qualified domain name
启动apache报错: [root@namenode1 ]# service httpd start Starting httpd: httpd: Could not reliably determi ...
- nginx 2.基本配置
死磕nginx 2.基本配置 鉴于深入浅出的原理,我们先从一个简单的配置了解nginx的配置 1.一个典型配置 nginx的配置文件默认在nginx安装目录的conf二级目录下面,主配置文件为 ngi ...
- gitHub项目框架使用排名
项目名称 项目简介 使用心得 1. react-native 这 个是 Facebook 在 React ...