PAT1076 Forwards on Weibo

PAT甲级 1076 Forwards on Weibo Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations. When a user makes a post on Weibo, all his/her followers can vi 阅读详情
题目链接:

http://www.nowcoder.com/pat/5/problem/4306

题目描述:

根据微博的关注链,求一条微博可能被转发的最大次数。
x在转发L层的范围内微博可以被转发多少次。

输入数据:
7 3
3 2 3 4
0
2 5 6
2 3 1
2 3 4
1 4
1 5
2 2 6

共有7个用户,L=3
3 2 3 4 代表用户1关注3个人2、3、4,换句话说2,3,4的微博1会转。
以此类推。
求在3层内的2,6的微博可以最大被转发多少次。

题目分析:

根据关注链建立有向图,其实就是记录层的BFS的改进。用了略挫的办法,用两个queue搞定分层的问题。

代码:
#include<iostream>
#include<queue>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
bool map[1005][1005];
bool vis[1005];
int N, L;
int query(int start)
{
    memset(vis,false,sizeof(vis));
    queue<int> q1;
    queue<int> q2;
    int level = 0;
    int cnt = 0;
    q1.push(start);
    vis[start] = true;
    while (level <= L){
        if (!q1.empty()){
            cnt += q1.size();
            while (!q1.empty()){
                int user = q1.front();
                q1.pop();
                for (int i = 1; i <= N; i++){
                    if (!vis[i] && map[user][i]){
                        q2.push(i);
                        vis[i] = true;
                    }
                }
            }
        }
        else if (!q2.empty()){
            cnt += q2.size();
            while (!q2.empty()){
                int user = q2.front();
                q2.pop();
                for (int i = 1; i <= N; i++){
                    if (!vis[i] && map[user][i]){
                        q1.push(i);
                        vis[i] = true;
                    }
                }
            }
        }
        level++;
    }
    return cnt-1;
}
int main()
{
    scanf("%d%d",&N,&L);
    memset(map,false,sizeof(map));
    for (int i = 1; i <= N; i++){
        int follows;
        int user;
        scanf("%d",&follows);
        while (follows--){
            scanf("%d",&user);
            map[user][i] = true;
        }
    }
    int k;
    scanf("%d",&k);
    for (int i = 0; i < k; i++){
        int start;
        scanf("%d",&start);
        printf("%d\n",query(start));
    }
    return 0;
}
2023东华大学OJ机试题22-70 东华大学计算机考研复试机试22 约瑟夫环223、整除的尾数24、回文质数25、汽水瓶26、阶乘最后的非0位27、算菜价28、 水果价格29、求奇数的乘积30、求最晚和最早日期31、素数32、计算e33 数字之和34 繁殖问题35 奇妙的数字36 整除的尾数37 黑色星期五38 树39 约瑟夫环40 最大与最小41 环42 求数列项43 最高频率44 三艘船45 回文数46 特殊四位数47 最大值48 数列149 修理牛棚50 按要求输出序列51 部落人乘法52 序列53 双重回文数54 等差数列55 人见人 阅读详情

相关推荐

在Ubuntu 20.04上,用EtherCAT Igh 1.6.2驱动高创BD3E伺服电机(附完整C代码)

本文详细介绍了在Ubuntu 20.04实时内核环境下,使用EtherCAT Igh 1.6.2主站驱动高创BD3E伺服电机的完整实现方案。从实时系统配置、伺服电机PDO映射到精确控制线程设计,提供了完整的C代码样例和实际项目中的调试技巧,帮助开发者实现工业自动化中的高精度运动控制。

weixin_30772105的博客 110

【PAT甲级 - C++题解】1076 Forwards on Weibo

📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!

Newin2020的博客 763

深入解析 ReDoc:从零构建高性能 API 文档的终极指南

ReDoc 是一个强大的开源工具,用于将 OpenAPI 规范转换为高质量、响应式的 API 文档。本文详细介绍了如何使用 ReDoc 构建和自定义 API 文档,包括如何编写支持 OpenAPI 的 API 注解、配置 HTML 页面以加载文档,以及如何利用 ReDoc 的高级功能进行定制。通过实例代码,您将学会如何灵活地展示 API 文档,提升用户体验。无论是初学者还是经验丰富的开发者,都能从本文中获得实用的技巧与方案,帮助快速搭建符合需求的 API 文档界面。

楠搏万的博客 4623

PAT-甲级-1076 Forwards on Weibo (30 分)

1076Forwards on Weibo(30分) #include <iostream> #include <string> #include <vector> #include <map> #include <set> #include <algorithm> #include <queue> #d...

valcanoshan的博客 188

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3843

基于STM32F407VET6的智能巡检小车灰度循迹系统优化设计

本文详细介绍了基于STM32F407VET6主控芯片的智能巡检小车灰度循迹系统优化设计。通过将传感器输出从数字量升级为模拟量以获取更丰富的路面信息,并采用PD控制算法结合速度管理策略,有效提升了小车在复杂弯道上的循迹稳定性与适应性。文章分享了硬件电路抗干扰设计、软件滤波及实战调优经验,为嵌入式开发者提供了从“能跑”到“跑得稳”的系统性解决方案。

weixin_28273593的博客 443

[PAT A1076]Forwards on Weibo

[PAT A1076]Forwards on Weibo 题目描述 Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is form...

欢迎来到我的编程小屋 655

Android12 适配 usb 触屏

在 Android 系统中,输入设备 IDC(Input Device Configuration)设备描述文件(.idc)是用于配置和定义输入设备行为和属性的文本文件。 该文件通常在`/system/usr/idc/` 或 `/vendor/usr/idc/`,具体位置因芯片厂商SDK而异。一般情况此类文件是预置到系统,开发者 root 权限才能修改这些文件。输入设备 IDC 设备描述文件在 Android 系统中起到了识别、配置、映射和定制输入设备的作用,使得系统能够准确解析和处理各种输入设备的事件,提

weixin_35723192的博客 1231

PAT A1076 Forwards on Weibo

一、题目大意 PAT A1076 给出 n 个微博用户的关注情况以及一个转发层数上限 L,并给出最初发布消息的用户编号,求在转发层数上限内消息最多会被多少用户转发。 二、解题思路 很明显要用 BFS 模拟一层一层的转发过程,结点要存储结点编号以及层数。 这里使用邻接矩阵来存储有向图,某个结点的邻接表存储的是其粉丝的编号,处理数据时应当注意。参考代码如下。 三、参考代码 #include...

Armstrong的博客 239

学Simulink--基于多物理场耦合与系统集成的储能系统场景实例:压缩空气储能(CAES)系统的热力学建模与效率分析

本文提供了一个基于Simulink的压缩空气储能(CAES)系统热力学建模教程。通过多物理场耦合方法,详细演示了从系统架构设计到仿真测试的全过程,包括多级压缩机/膨胀机系统搭建、显热蓄热系统设计以及效率分析。文章重点强调了热管理对提升CAES效率的关键作用,并给出了68%电-电效率的优化案例。最后提出了变工况建模、不同蓄热介质对比等高级优化方向,为开发零碳大容量储能系统提供了实用工具和方法。

amy_mhd的博客 130

安卓刷Windows太难?这款手机平板双系统刷机工具,小白也能轻松拿捏!(小白福音!手机平板专用,一键搞定安卓刷 Windows 双系统!)

安卓刷Windows太难?这款手机平板双系统刷机工具,小白也能轻松拿捏!(小白福音!手机平板专用,一键搞定安卓刷 Windows 双系统!)

XiaoqiangClub的博客 4670

【PAT A1076】Forwards on Weibo

Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations. When a...

没有胡子的猫Asimov 211

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

PAT 甲级 1076 Forwards on Weibo(30)

PAT算法思路及笔记

ElvInR的博客 1256

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PAT 甲级 1076  Forwards on Weibo

1076 Forwards on Weibo (30 point(s)) Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is fo...

漫浸天空的雨色的备忘录~ 621

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【PAT】A1076 Forwards on Weibo【BFS】

Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations. When a ...

elegant coder 991

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

1076 Forwards on Weibo——PAT甲级(DFS做法)

原本卡了两小时不知道哪里错了,听他一讲醍醐灌顶。为了防止诸如A->B,B->C,A->C的情况,就是用最短路径mindis代替vis数组以此判断该结点是否被访问过,如果当前路径更短说明当然可访问的路径有不经过中继点的路线,有了更多可以连接的结点。

flyidj的博客 1046

PAT 甲级 A1076 Forwards on Weibo

一个微博里面有n(7)个用户,每个用户可以相互关注,用户关注列表里面的人转发说说,用户可以接收得到(有向图,被关注(发说说)->关注者),给出转发层次L(3),转发的层次不能超过L,然后下列给出第i个人的关注列表(依据这个可以建造图),最后一行给出k个人,这k个人是编写说说的人,求在不超过转发层次的情况下,转发的人数有多少(给出连通块内的一个元素求连通块内元素个数)。①题目给出的是用户i的关注列表,关注表内的用户发信息,用户i是接收方,②每个连通块应该做到互不影响。因此是被关注->关注。...

m0_51711089的博客 255

PAT 1076 Forwards on Weibo

给出每个微博用户关注的人的数量和下标,求一个用户发微博,最多会有多少个人转发(他粉丝会转发,他粉丝的粉丝会转发他粉丝),计算前L层的人数。 这一题用广度优先搜索就可以做,难点是要把握住层数。 我一开始以为用深度优先搜索也可以做出来,写好一提交有两个测试点没有过去,看一下别人基本都是用广度优先搜索做出来的,用深度优先搜索的基本会有错误。后来尝试多次后,发现用深度优先搜索可能不能做出来,因为会出现跟路径有关的问题,如果存在路径中存在环(即互粉现象),先遍历长路径后,可能遍历不了短路径。改成用set存储路径中的节

Genius_J的博客 341

PAT A 1076 Forwards on Weibo

题目要求计算微博用户在限定转发层数内的最大潜在转发量。给定用户之间的关注关系,当某用户发微博时,其直接和间接关注者(不超过L层)会转发,需统计符合条件的转发总数。 方法:使用广度优先搜索(BFS)遍历用户网络。从查询用户出发,逐层扩展,记录每个用户的转发层数,统计不超过L层的用户数量。每次查询前重置访问状态和层数记录。 输入:用户数N和转发层数L,接着N行每行描述用户的关注列表,最后是查询列表。 输出:每个查询用户的最大转发量。 示例: 输入中的用户2在最多3层转发时有4人转发,用户6有5人转发。代码通过B

whdehcy的博客 663

PAT (Advanced Level) 1076. Forwards on Weibo (30) 微博转发 BFS

Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations. When a

兔子哥哥的博客 522

PAT-ADVANCED1076——Forwards on Weibo

我的PAT-ADVANCED代码仓:https://github.com/617076674/PAT-ADVANCED 原题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805392092020736 题目描述: 题目翻译: 1076 微博转发 众所周知,微博是中国版的推特。微博上的一个用户可能有很多...

清风阁 331

PAT 1076. Forwards on Weibo

题目:http://pat.zju.edu.cn/contests/pat-a-practise/1076 题解: 共有n个微博号,第i行表明有k个人关注i,问x再转发m层的范围内可以转发多少人的微博(同1个人的微博算1个)。 依照输入建图。 对每个账号进行BFS。 代码: #include #include #include #include #include #include #i

Ted's 游乐园 3058

PAT-1076. Forwards on Weibo (30)

消失了好久。。我又回来了...

very_caiing 1639

【PAT A1076】 Forwards on Weibo

Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may follow many other users as well. Hence a social network is formed with followers relations. When a user makes a post on Weibo, all his/her followers can vi

zxc0074869的博客 145
上一篇: LeetCode63. Unique Paths II
下一篇: LeetCode205. Isomorphic Strings
_IanXiao
博客等级 码龄12年 84粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值