当前位置: 首页 > news >正文

宝石收集,tarjan

0宝石收集 - 蓝桥云课 (lanqiao.cn)

n=int(input())
s='0'+input()
m=int(input())
mp=[[] for i in range(n+1)]
for i in range(m):a,b=map(int,input().split())a+=1b+=1mp[a].append(b)import sys
sys.setrecursionlimit(100000000)
dfn=[0 for i in range(n+1)]
low=[0 for i in range(n+1)]
cnt=0stk=[]
instk=[0 for i in range(n+1)]p=0
scc=[0 for i in range(n+1)]def tarjan(x):global cnt,pcnt+=1dfn[x]=low[x]=cntstk.append(x)instk[x]=1for i in mp[x]:if dfn[i]==0:tarjan(i)low[x]=min(low[x],low[i])elif instk[i]:low[x]=min(low[x],dfn[i])if dfn[x]==low[x]:p+=1y=stk.pop()instk[y]=0scc[y]=pwhile x!=y:y = stk.pop()instk[y] = 0scc[y] = p
for i in range(1,n+1):if dfn[i]==0:tarjan(i)del instk,low,dfnru=[0 for i in range(p+1)]
h=[0 for i in range(p+1)]
l=[0 for i in range(p+1)]
nmp=[[] for i in range(p+1)]
for i in range(1,n+1):if s[i]=='0': h[scc[i]]+=1else : l[scc[i]]+=1for j in mp[i]:if scc[i]!=scc[j]:ru[scc[j]]+=1nmp[scc[i]].append(scc[j])
del mpdef dfs(x,a,b):ans=0vis=0for y in nmp[x]:ans=max(dfs(y,a+h[y],b+l[y]),ans)vis=1if vis==0:return min(a,b)else:return ans
ans=0
for i in range(1,p+1):if ru[i]==0:ans=max(ans,dfs(i,h[i],l[i]))
print(ans)

相关文章:

  • 佩戴安全头盔监测识别摄像机
  • 15 VUE学习:插槽slot
  • leetcode刷题
  • 数据库连接项目
  • 池的概念以及数据库连接池 Druid
  • 深入理解 Mysql 分层架构:从存储引擎到查询优化器的内部机制解析
  • 1738. 找出第 K 大的异或坐标值
  • 嵌入式进阶——舵机控制PWM
  • 辐射度技术在AI去衣中的魅力与科学
  • 基于长短期记忆网络 LSTM 的送餐时间预测
  • 1960-2022年世界银行WDI面板数据(1400+指标)
  • 论文阅读--ActionCLIP
  • Leetcode.560.和为k的子数组
  • python基础(1) -- 基本数据类型与变量
  • SQL Server--死锁
  • CentOS 7 修改主机名
  • HashMap剖析之内部结构
  • JavaScript对象详解
  • JavaScript学习总结——原型
  • java正则表式的使用
  • js ES6 求数组的交集,并集,还有差集
  • js学习笔记
  • Kibana配置logstash,报表一体化
  • Less 日常用法
  • magento 货币换算
  • Making An Indicator With Pure CSS
  • 从tcpdump抓包看TCP/IP协议
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 通过几道题目学习二叉搜索树
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 源码安装memcached和php memcache扩展
  • 《码出高效》学习笔记与书中错误记录
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # 数论-逆元
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #QT(QCharts绘制曲线)
  • (1)Hilt的基本概念和使用
  • (C#)获取字符编码的类
  • (C++)八皇后问题
  • (c语言)strcpy函数用法
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (十五)使用Nexus创建Maven私服
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)Linux+Windows下安装ffmpeg
  • (一)SpringBoot3---尚硅谷总结
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (自用)网络编程
  • .form文件_SSM框架文件上传篇
  • .net core Redis 使用有序集合实现延迟队列
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript