PAT甲级1076. Forwards on Weibo

题意:

微博被称为中文版的Twitter。微博上的一位用户可能会有很多关注者,也可能会跟随许多其他用户。因此,社会网络与追随者的关系形成。当用户在微博上发布帖子时,他/她的所有跟随者可以查看和转发他/她的帖子,然后可以由他们的追随者再次转发。

现在给出一个社交网络,假定只计算间接跟随者的L个级别,您应该计算任何特定用户的最大潜在潜在金额。

输入规格:

每个输入文件包含一个测试用例。对于每种情况,第一行包含2个正整数:N(<= 1000),用户数;

和L(<= 6),计数的间接追踪者的数量。因此,假设所有用户的编号从1到N.然后N行遵循,其格式如下:

M [i] user_list [i]

其中M [i](<= 100)是用户[i]遵循的总人数; user_list [i]是用户[i]遵循的M [i]个用户的列表。

保证没有人能跟随自己。所有的数字都被空格隔开。

然后最后给出肯定的K,然后是K UserID的查询。

输出规格:

对于每个UserID,您应该在一行中打印此用户可以转发的最大潜在数量,

假设每个可以查看初始帖子的人都会转发一次,只计算L个间接追踪者。

思路:

队列bfs或者Dijkstra

ac代码:

C++

// pat1076.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" #include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<queue>
#include<vector>
#include<cstring>
#include<stdio.h>
#include<map>
#include<cmath>
#include<unordered_map>
#include<unordered_set>
using namespace std;
//visit + dfs会使部分节点提前访问。并不是到源点的最短距离。使得其节点被提前visit,其孩子节点不被统计!!
//队列bfs或者Dijkstra int n, l;
int mymap[1001][1001];
int res; int Dijkstra(int x)
{
int count = -1;
int len[1001];
memset(len, -1, sizeof(len));
len[x] = 0;
int visit[1001] = { 0 };
int now;
while (1)
{
now = -1;
for (int i = 1; i <= n; i++)
{
if (!visit[i] && len[i] != -1 && (now == -1 || len[i] < len[now])) now = i;
}
if (len[now] > l || now == -1) break;
visit[now] = 1;
count++; for (int i = 1; i <= n; i++)
{
if (mymap[now][i] && !visit[i] && (len[now] + mymap[now][i] < len[i] || len[i] == -1))
{
len[i] = len[now] + mymap[now][i];
}
}
} return count;
} int main()
{
int m, tempfan;
scanf("%d %d", &n, &l);
memset(mymap, 0, sizeof(mymap));
for (int i = 1; i <= n; i++)
{
scanf("%d", &m);
while (m--)
{
scanf("%d", &tempfan);
mymap[tempfan][i] = 1;
}
} int query;
scanf("%d", &m);
for (int i = 0; i < m; i++)
{
scanf("%d", &query); int res = Dijkstra(query);
printf("%d\n", res); }
return 0;
}

PAT甲级1076. Forwards on Weibo的更多相关文章

  1. PAT 甲级 1076 Forwards on Weibo (30分)(bfs较简单)

    1076 Forwards on Weibo (30分)   Weibo is known as the Chinese version of Twitter. One user on Weibo m ...

  2. PAT甲级——A1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  3. PAT Advanced 1076 Forwards on Weibo (30) [图的遍历,BFS,DFS]

    题目 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and ...

  4. PAT 1076 Forwards on Weibo[BFS][一般]

    1076 Forwards on Weibo (30)(30 分) Weibo is known as the Chinese version of Twitter. One user on Weib ...

  5. 1076. Forwards on Weibo (30)【树+搜索】——PAT (Advanced Level) Practise

    题目信息 1076. Forwards on Weibo (30) 时间限制3000 ms 内存限制65536 kB 代码长度限制16000 B Weibo is known as the Chine ...

  6. 1076 Forwards on Weibo (30 分)

    1076 Forwards on Weibo (30 分) Weibo is known as the Chinese version of Twitter. One user on Weibo ma ...

  7. 【PAT甲级】1076 Forwards on Weibo (30 分)

    题意: 输入两个正整数N和L(N<=1000,L<=6),接着输入N行数据每行包括它关注人数(<=100)和关注的人的序号,接着输入一行包含一个正整数K和K个序号.输出每次询问的人发 ...

  8. PAT 1076. Forwards on Weibo (30)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  9. PAT (Advanced Level) 1076. Forwards on Weibo (30)

    最短路. 每次询问的点当做起点,然后算一下点到其余点的最短路.然后统计一下最短路小于等于L的点有几个. #include<cstdio> #include<cstring> # ...

随机推荐

  1. SPOJ DQUERY D-query (在线主席树/ 离线树状数组)

    版权声明:本文为博主原创文章,未经博主允许不得转载. SPOJ DQUERY 题意: 给出一串数,询问[L,R]区间中有多少个不同的数 . 解法: 关键是查询到某个右端点时,使其左边出现过的数都记录在 ...

  2. caffe Python API 之Solver定义

    from caffe.proto import caffe_pb2 s = caffe_pb2.SolverParameter() path='/home/xxx/data/' solver_file ...

  3. [ python ] 软件开发规范

    在python开发中,我们建议采用如下规范: soft/ ├── bin # 程序执行文件目录 │   ├── __init__.py │   └── start.py # 程序开始执行脚本文件 ├─ ...

  4. java版云笔记(一)

    云笔记项目 这个项目的sql文件,需求文档,需要的html文件,jar包都可以去下载,下载地址为:http://download.csdn.net/download/liveor_die/998584 ...

  5. MySQL 和 Oracle 主键自增长

    1.MySQL 1)建表 auto_increment:每插入一条数据,客户表(customers)的主键id就自动增1,如下所示 create table customers -- 创建客户表 ( ...

  6. POJ 3159 Candies(差分约束+spfa+链式前向星)

    题目链接:http://poj.org/problem?id=3159 题目大意:给n个人派糖果,给出m组数据,每组数据包含A,B,C三个数,意思是A的糖果数比B少的个数不多于C,即B的糖果数 - A ...

  7. HDU 2181 哈密顿绕行世界问题 (DFS)

    题目链接:https://vjudge.net/contest/185350#problem/C 题目大意:一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城 ...

  8. HDU 2112 Today(Dijkstra+map)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意: 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050 ...

  9. fastdfs5.10 centos6.9 安装配置

    下载相关软件 https://codeload.github.com/happyfish100/fastdfs/tar.gz/V5.10http://download.csdn.net/detail/ ...

  10. fastdfs5.x Java客户端简单例子

    下载源码, 使用maven编译并安装 https://github.com/happyfish100/fastdfs-client-java.git 新建maven工程,引入fastdfs-clien ...