uva 10044 Erdös Numbers
来源:互联网 发布:台湾生活 知乎 编辑:程序博客网 时间:2024/06/06 06:49
题意:有一个数学家名字是Erdos P. 与他一起发表过论文的人的Erdös Number 是 1 与Erdös Number是1的人发表过论文的是2 依次类推 木有Erdös Number数的输出
infinity
注意测试数据很强也很大
连接点击打开链接
#include <stdio.h>#include <string.h>#define MAX 0x3fffffff#define Max 5000struct list{char name[1000];int num;}s[Max];bool visit[Max][Max];void initialize ( ){int i, j;for ( i = 0; i < Max; i++ )for ( j = 0; j < Max; j++ )visit[i][j] = false;strcpy ( s[0].name, "Erdos, P." );s[0].num = 0;for ( i = 1; i < Max; i++ )s[i].num = MAX;}void solve ( int n, int m ){int sum = 1, i, j, k;char str[100000];initialize ( );for ( i = 0; i < n; i++ ){gets ( str );char ch[1000];bool flag[Max] = { false };int x = 0, len = strlen ( str );for ( j = 0; j < len; j++ ){if ( x != 0 || str[j] != ' ' )ch[x++] = str[j];if ( ( j - 1 > 0 && str[j] == ',' && str[j-1] == '.' ) || str[j] == ':' ){x--;ch[x] = '\0';bool find = false;for ( k = 0; k < sum; k++ )if ( !strcmp ( ch, s[k].name ) ){find = true;x = k;break;}if ( !find ){strcpy ( s[sum].name, ch );x = sum;sum++;}flag[x] = true;x = 0;if ( str[j] == ':' )break;}}for ( j = 0; j < sum; j++ )if ( flag[j] )for ( k = 0; k < sum; k++ )if ( flag[k] && k != j )visit[j][k] = true;}for ( i = 0; i < sum; i++ )for ( j = 0; j < sum; j++ )if ( s[j].num == i ){for ( k = 0; k < sum; k++ )if ( visit[j][k] ){if ( s[k].num > i + 1 )s[k].num = i + 1;}}for ( i = 0; i < m; i++ ){gets ( str );for ( j = 0; j < sum; j++ )if ( !strcmp ( str, s[j].name ) )break;printf ( "%s ", str );if ( s[j].num == MAX )puts ( "infinity" );elseprintf ( "%d\n", s[j].num );}}int main ( ){int n, m, t;scanf ( "%d", &t );for ( int i = 1; i <= t; i++ ){printf ( "Scenario %d\n", i );scanf ( "%d%d\n", &n, &m );solve ( n, m );}return 0;}
- uva 10044 Erdös Numbers
- 110206 Erdös Numbers ( Erdos Numbers )
- programming-challenges Erdös Numbers (110206) 题解
- 1003. Erdős Number
- UVa 10044 Erdos Numbers
- UVa 10044 - Erdos Numbers
- Random Graph: Erdős–Rényi model
- UVa OJ 10044 - Erdos Numbers
- 各行业ERD
- Chen ERD
- uva-10202-Pairsumonious Numbers
- UVa 10006 Carmichael Numbers
- uva 10006 - Carmichael Numbers
- uva 138 - Street Numbers
- uva 138 street numbers
- uva 10202 parsumonious numbers
- uva 10042 smith numbers
- UVA 138 Street Numbers
- 在ASP.NET中使用Session常见问题集锦
- android dialog禁用back
- 带宽 含义 -----计算机网络
- 验证大全
- Sencha Touch中 xclass和xtype区别
- uva 10044 Erdös Numbers
- Android的十六进制颜色值
- 自定义View中自定义属性
- Nginx+PHP+MySQL双机互备、全自动切换方案
- Zencart: Data too long...(Zencar目录名/文件名太长)的解决方法
- oracle数据库的备份与还原(本地及远程操作)
- C#注册表编程
- VMware Linux使用Xshell登陆
- 开源网络备份软件bacula(功能特点与原理)