图算法--人肉搜索
来源:互联网 发布:日语语法新思维 知乎 编辑:程序博客网 时间:2024/06/09 17:23
XOJ:http://acm.xmu.edu.cn/problem.php?id=1078
人肉搜索与刺青、美白、护肤、减肥等直接在人肉上施行的种种行为无关。顾名思义,人肉搜索就是利用现代信息科技,变传统的网络信息搜索为人找人,人问人,人碰人,人挤人、人挨人的关系型网络社区活动,变枯燥乏味的查询过程为一人提问、八方回应,一石激起千层浪,一声呼唤惊醒万颗真心的人性化搜索体验。人肉搜索不仅可以在最短时间内揭露某某门背后的真相,为某三某七找到大众认可的道德定位,还可以在网络无法触及的地方,探寻并发现最美丽的丛林少女,最感人的高山牧民,最神秘的荒漠洞窟,最浪漫的终极邂逅…… 人肉搜索追求的最高目标是:不求最好,但求最肉。
--谷歌四月一日的愚人节笑话
人肉搜索之所以强大,其原因在于世界上任何两个人,要么他们是朋友,要么他们是朋友的朋友,要么他们是朋友的朋友的朋友,要么他们是朋友的朋友的朋友的朋友,要么他们是朋友的朋友的朋友的朋友的朋友。。。人肉搜索引擎正是利用了这一点,对于每个问题,人肉搜索开始M层的搜索,第一层是搜索我的朋友,第二层是搜索我朋友的朋友,第三层是使搜索我朋友的朋友的朋友。。。给一个人际关系表,问M至少要为多少才能保证所有人之间可以通过人肉搜索引擎搜索到。
输入的第一行包含一个正整数N(2 <= N <= 100),表示总的人数。
输入的第二行到第N+1行每行有N个整数,第i行第j列的数字Fij如果为1表示第i个人和第j个人是朋友,否则不是。保证Fij = Fji,Fii = 1。
输出这N个人中,保证人肉搜索引擎的正常工作(即所有人都能被搜索到)前提下,M的最小值。如果存在两个人他们不是朋友的朋友的朋友的。。。的朋友,则输出-1。
4
1 0 1 1
0 1 0 1
1 0 1 0
1 1 0 1
2
样例中,1和3是朋友,1和4是朋友,2和4是朋友。此时2和3之间间隔了1、4两个人的关系,所以结果为2。
#include<stdio.h>#define MAX 10002int isUnion[100];int w[100][100];int d[100], path[100];void shortestPath(int p[][100], int n, int d[], int path[], int s){for (int i = 0; i<n; ++i)if (p[s][i] != MAX)break;else if (i == n)return;for (int i = 0; i<n; ++i){d[i] = MAX;path[i] = -1;isUnion[i] = 0;}for (int i = 0; i<n; ++i){if (p[s][i] != MAX){d[i] = p[s][i];path[i] = s;}}isUnion[s] = 1;d[s] = 0;int min, t = s;for (int i = 1; i<n; ++i){min = MAX;for (int j = 0; j<n; ++j){if (isUnion[j] == 0 && d[j] < min){min = d[j];t = j;}}isUnion[t] = 1;for (int k = 0; k<n; ++k){if (p[t][k] != MAX)if (!isUnion[k] && d[k] > d[t] + p[t][k]){d[k] = d[t] + p[t][k];path[k] = t;}}}}int main(){int s, i, j, temp;FILE *file = freopen("in6.txt", "r", stdin);if (!file)return 1;scanf("%d", &s);if (s == 1){ printf("%d\n", 0); return 0; }for (i = 0; i<s; i++)for (j = 0; j<s; j++){scanf("%d", &temp);if (temp == 0)w[i][j] = MAX;else w[i][j] = temp;}temp = 0;for (j = 0; j<s; j++){shortestPath(w, s, d, path, j);for (i = 1; i<s; i++)if (d[i]>temp&&d[i] != MAX)temp = d[i];else if (d[i] == MAX){ printf("%d\n", -1); return 0; }}printf("%d\n", --temp);return 0;}
- 图算法--人肉搜索
- 人肉搜索、人肉语言及人肉程序设计
- 恐怖的人肉搜索
- “人肉搜索”名词解释
- 人肉搜索事件
- 人肉搜索的Ark
- 人肉搜索网上泄题者
- 从侵权看“人肉搜索”
- “人肉搜索”不为罪
- 人肉搜索引擎的探讨:从人肉搜索探讨个人隐私权
- 人肉搜索 - 一种搜索一个时代
- 深度剖析人肉搜索与威客
- 互联网十大著名人肉搜索事件
- 互联网十大著名人肉搜索事件
- 中国青年报:“人肉搜索”的罪与罚
- 人肉搜索,引导还是压制的思考
- 人肉搜索 你的隐私安全么
- 魏志刚-个人资料-个人简历-女友人肉搜索
- hdoj2563统计问题
- Ubuntu上配置nginx+php+fastcgi的流程
- eclipse在linux的安装以及在dash中的显示(c/c++版本)
- Python time时间模块学习
- 黑马程序员关于面象对象以及它的三大特性:封装 继承 多态
- 图算法--人肉搜索
- Android listview&gridview getview 方法多次调用问题解决方法--->导致gridview错位
- nginx配置location [=|~|~*|^~] /uri/ { … }用法
- VS2010平台下运行JM8.6
- SD上创建文件夹
- C#插件范例代码
- C语言学习
- UVA 10285
- 对C语言的学习感想