前言

这道题连着踩了两个坑,一个是不支持numpy,另一个是matlab的矩阵计算较为耗时,发出来供大家避免这种错误。

题目

链接:https://www.nowcoder.com/questionTerminal/1fe6c3136d2a45fa8ef555b459b6dd26
来源:牛客网

小A参加了一个n人的活动,每个人都有一个唯一编号i(i>=0 & i<n),其中m对相互认识,在活动中两个人可以通过互相都认识的一个人介绍认识。现在问活动结束后,小A最多会认识多少人?

输入描述:

第一行聚会的人数:n(n>=3 & n<10000);
第二行小A的编号: ai(ai >= 0 & ai < n);
第三互相认识的数目:
m(m>=1 & m < n(n-1)/2);
第4到m+3行为互相认识的对,以’,'分割的编号。

输出描述:

输出小A最多会新认识的多少人?

示例1
输入

7
5
6
1,0
3,1
4,1
5,3
6,1
6,5

输出

3

分析

显然可以转化为图的连通问题,判断某点与其他点之间的可达性,所以用矩阵的幂求可达性矩阵,然后用可达性矩阵与原矩阵相减就可以得到结果了。

代码

python

提交的时候才发现牛客网的系统不支持numpy,要真是在笔试的时候才发现这得多难受啊。

import numpy as np
n=int(input())
ai=int(input())
m=int(input())
A = np.identity(n)
for i in range(0, m):line = input()strs = line.split(",")x=int(strs[0])y=int(strs[1])A[x, y]=1A[y, x]=1
# A = A + A.T - np.diag(A.diagonal()) # 对称阵,也可以
P = A
item = A
for i in range(2, A.shape[0]+1):item = item.dot(A)P = P + item  # 这里不可用P += item
res = np.sign(P)[ai, :].sum()-A[ai, :].sum() # 最后总共认识的人数减去原来认识的人数
print(int(res))

不过本地还是能运行的

matlab

修改修改原来的python程序,matlab的就写好了,虽然能够运行但是还是输给了时间。

n=input('');
ai=input('');
m=input('');
A=eye(n);
for i = 1:mline=input('','s');strs = strsplit(line, ',');x = str2num(strs{1});y = str2num(strs{2});A(x+1,y+1)=1;A(y+1,x+1)=1;
end
item=A;
R=A;
for j = 2:length(A)item = item*A;R=R+item;
end
P=sign(R);
res=sum(P(ai+1,:))-sum(A(ai+1,:));
disp(res);

仅仅是示例1的计算就用了139ms

所以提交无法通过所有测试案例

B站笔试真题之[编程题]小A最多会新认识的多少人相关推荐

  1. c语言二级编程题库,二级C语言题库-编程题.doc

    二级C语言题库-编程题 第 PAGE \* Arabic \* MERGEFORMAT 27 页第 PAGE \* Arabic \* MERGEFORMAT 27 页 1.请编写函数fun,其功能是 ...

  2. python少儿编程讲师笔试题_小码王教育儿童编程教师面试:做笔试题(填空题和编程题,填空题 - 职朋职业圈...

    为了帮助职业圈网友能够及时了解小码王教育的面试流程以及面试过程所涉及的面试问题,职业圈小编把刚获得的小码王教育面试经验马上编辑好,快速提供给大家,以便能够尽快帮助到有需要的人.这次面试总共花了1天.面 ...

  3. 浙江大学pta答案python第四章_浙大PTA-Python题库 编程题第一章(1-1~1-3)题解

    其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...

  4. 浙大PTA-Python题库 编程题第五章(5-1~5-11)题解

    其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...

  5. 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解

    其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...

  6. 笔试常见的“阶乘”编程题,你写对了么?

    在笔试中,我想很多人都会遇到阶乘的编程题.今天突然想起自己的第一次笔试,就遇到了这样的题,还没在电脑上敲过.就随便来写一下,不知道大家在笔试的时候都写对了么? 很多人可能都会用int ,double之 ...

  7. java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...

    一.根据题意,填写出空格中的内容 Java平台包括三个技术方向,其中J2ME代表____________.J2SE代表___________.J2EE代表____________.2.面向对象的四大概 ...

  8. python编程题-python编程题库

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 上期题目连接:1000道python题库系列分享十一(9道)上期题目答案:? 本期 ...

  9. java 字符串编程题_Java编程题——在一个字符串中查找第一个非重复的字符

    编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题.面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串, ...

最新文章

  1. halcon与QT联合:(5.3)瓶盖检测以及QT界面搭建
  2. input 的read only 和 disable的区别
  3. java io流(字符流) 文件打开、读取文件、关闭文件
  4. java前端长连接框架_Java如何实现长连接
  5. 使用aop解决事务问题(xml版)
  6. 串口服务器应用领域及应用方案详解
  7. 真正中文攻略之ef - the first tale(含下载和汉化)
  8. 息中间件kafka与activeMQ、rabbitMQ、zeroMQ、rocketMQ的比较
  9. Myeclipse里出现两个tomcat,一个是默认的,一个是我增加的,应该用哪个呢?
  10. 第四章 生命周期函数--36 结合Node手写JSONP服务器剖析JSONP原理
  11. 大厂技术文档:Python 基础+爬虫+数据分析+面试经精选
  12. 关于更新win10 1903后VM ware无法启动的解决方法
  13. 从0开始学java-day08:eclipse的使用和超市管理系统案例
  14. 针对于Vins-Mono中的评价工具evo中的评价参数的理解
  15. tegra3 CPU auto hotplug和Big/little switch工作的基本原理
  16. 鸡兔同笼问题。上有头30个,下有脚90只,问鸡兔各有多少只。
  17. java爬虫京东商品,Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup
  18. STM32F411核心板固件库开发(三) 按键检测
  19. 若依前后端分离框架——初始化参数功能源码学习
  20. 服务器系统进不了系统错误代码,重启服务器进入点晴OA的Email模块时提示子系统密码错误,错误代码2027:800403e9,如何解决?...

热门文章

  1. 74160ENT引脚设计法+同步置数法接成60进制加法计数电路
  2. mysql 分表后查询_Mysql分表后怎么查询效率高?
  3. 如何使用iTunes 10制作iPhone手机铃声?
  4. 小Q书桌 - 最完美纯净的任务栏Bins
  5. 易语言保存txt记录至c盘,易语言超级列表框导入TXT文本后修改保存和新增记录...
  6. 京东面试题(JAVA)
  7. php class 混合,extend/Extend/Library/ORG/Util/String.class.php at master · liu21st/extend · GitHub...
  8. Hive启动和简单指令总结
  9. 基于AI的4G/5G基站节能的智能解决方案
  10. 中南大学计算机工程制图考试题库,中南大学-工程制图试题及答案和习题集答案 cad...