Acwing 周赛142 解题报告 | 珂学家 | BFS集合

2024-02-15 13:44

本文主要是介绍Acwing 周赛142 解题报告 | 珂学家 | BFS集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


前言


整体评价

VP了这场比赛,感觉T2挺有意思的,超级容易错,T3到时中规中矩,算Middle更合适。


A. 倒序排列

思路: 模拟

n = int(input())l = [i for i in range(n, 0, -1)]print (*l, sep=' ')

B. 最有价值字符串

思路: 思维

这题难在思维,容易错

这边有两个小难点

  • 如何评估得分

    • 分情况讨论

      • 最大频数非唯一
      • 所有数都相等
  • 最后结果判定

    • n-largest的方式
n = int(input())a, b, c = input(), input(), input()from collections import Counterdef evalute(s) -> int:cnt = Counter(s)t1 = max(cnt.values())t2 = len(s) - t1if t2 > 0:return t1 + min(t2, n)else:return t1 - (1 if n == 1 else 0)# 模拟n-largest操作
l = [(evalute(a), 'A'), (evalute(b), 'B'), (evalute(c), 'C')]
l.sort(key=lambda x: -x[0])# 判定第一个元素和第二个元素,值是否相等
if l[0][0] > l[1][0]:print (l[0][1])
else:print ('D')

C. 有效点对

思路: 两次bfs+容斥

分别从x,y两点出发做bfs,然后进行染色A,B

比如从x点出发,止于y这个阻塞点,其他点全遍历为s1,则y这个阻塞点覆盖点集 A = n - s1

反之亦然 B = n - s2

最后结果为

n ∗ ( n − 1 ) − A ∗ B n*(n-1) - A*B n(n1)AB

n, x, y = list(map(int, input().split()))g = [[] for _ in range(n + 1)]for i in range(n - 1):u, v = list(map(int, input().split()))g[u].append(v)g[v].append(u)from collections import dequedef bfs(u, v):vis = [1] * (n + 1)vis[0] = 0deq = deque()deq.append(u)vis[u] = 0while len(deq) > 0:cur = deq.popleft()for ver in g[cur]:if vis[ver] == 1 and ver != v:deq.append(ver)vis[ver] = 0return sum(vis)c1, c2 = bfs(x, y), bfs(y, x)print (n * (n - 1) - c1 * c2)

写在最后

在这里插入图片描述

这篇关于Acwing 周赛142 解题报告 | 珂学家 | BFS集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711546

相关文章

基于Redis有序集合实现滑动窗口限流的步骤

《基于Redis有序集合实现滑动窗口限流的步骤》滑动窗口算法是一种基于时间窗口的限流算法,通过动态地滑动窗口,可以动态调整限流的速率,Redis有序集合可以用来实现滑动窗口限流,本文介绍基于Redis... 滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间

hdu1254(嵌套bfs,两次bfs)

/*第一次做这种题感觉很有压力,思路还是有点混乱,总是wa,改了好多次才ac的思路:把箱子的移动当做第一层bfs,队列节点要用到当前箱子坐标(x,y),走的次数step,当前人的weizhi(man_x,man_y),要判断人能否将箱子推到某点时要嵌套第二层bfs(人的移动);代码如下:

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

POJ 3057 最大二分匹配+bfs + 二分

SampleInput35 5XXDXXX...XD...XX...DXXXXX5 12XXXXXXXXXXXXX..........DX.XXXXXXXXXXX..........XXXXXXXXXXXXX5 5XDXXXX.X.DXX.XXD.X.XXXXDXSampleOutput321impossible

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不