【ybt】【图论 强连通 课过 例4】恒星的亮度

Python自然语言处理 NLTK 库用法入门教程【经典】 @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? ... 阅读详情

恒星的亮度

题目链接:恒星的亮度


题目描述

在这里插入图片描述

解题思路

我们可以先从小向大建边,然后缩点。

如果缩点后同一集合内有两个点是小于的关系,那么不符合题意,无解。

再用贪心的思想拓扑,累加答案即可。

code

#include<iostream>
#include<cstdio>
#include<queue>
#define int long long
using namespace std;

queue<int> q;

int n,m;
int tm,tt,ans;
int v[1000010];
int ru[1000010];
int az[1000010];
int dfn[1000010];
int low[1000010];
int num[1000010];
int dis[1000010];
int dui[1000010],top;
int hd[1000010],tot;
int hd1[1000010],tot1;

struct abc{
	int to,nxt,w;
}b[1000010],b1[1000010];

void add(int x,int y,int z)
{
	b[++tot]=(abc){y,hd[x],z};
	hd[x]=tot;
}

void add1(int x,int y,int z)
{
	b1[++tot1]=(abc){y,hd1[x],z};
	hd1[x]=tot1;
}

void tarjan(int x)
{
	dfn[x]=low[x]=++tm;
	dui[++top]=x;
	az[x]=1;
	for(int i=hd[x];i;i=b[i].nxt)
	{
		int y=b[i].to;
		if(!dfn[y])
		{
			tarjan(y);
			low[x]=min(low[x],low[y]);
		}
		else if(az[y])
			low[x]=min(low[x],dfn[y]);
	}
	if(dfn[x]==low[x])
	{
		v[x]=++tt;
		num[tt]++;
		az[x]=0;
		while(dui[top]!=x)
		{
			v[dui[top]]=tt;
			az[dui[top]]=0;
			num[tt]++;
			top--;
		}
		top--;
	}
}

signed main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int t,a,b;
		scanf("%lld%lld%lld",&t,&a,&b);
		if(t==1)
			add(a,b,0),add(b,a,0);
		if(t==2)
			add(a,b,1);
		if(t==3)
			add(b,a,0);
		if(t==4)
			add(b,a,1);
		if(t==5)
			add(a,b,0);
	}
	for(int i=1;i<=n;i++)
		if(!dfn[i])
			tarjan(i);
	for(int i=1;i<=n;i++)
		for(int j=hd[i];j;j=b[j].nxt)
		{
			int y=b[j].to;
			if(v[i]!=v[y])
				add1(v[i],v[y],b[j].w),ru[v[y]]++;
			else if(b[j].w==1)
			{
				printf("-1");
				return 0;
			}
		}
	for(int i=1;i<=tt;i++)
	{
		dis[i]=1;
		if(!ru[i])
			q.push(i);
	}
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		ans+=dis[x]*num[x];
		for(int i=hd1[x];i;i=b1[i].nxt)
		{
			int y=b1[i].to;
			ru[y]--;
			dis[y]=max(dis[y],dis[x]+b1[i].w);
			if(!ru[y])
				q.push(y);
		}
	}
	cout<<ans<<endl;
}
plotly包安装_Plotly(一)安装指南 plotly,是一个快速完善并崛起的交互式的、开源的绘图库库,Python库则是它的一个重要分支。现已支持超过40种独特的图表类型,涵盖了广泛的统计、金融、地理、科学和三维用例。Plotly 通过JavaScript构建,能基于Web显示实现交互式的可视化效果(Plotly最强大之处之一)。所以它的图形呈现可以方便的显示于Jupyter notebook(基于html)、独立的html中(直接显示... 阅读详情

相关推荐

SAP FICO CK40N批量发布标准价:常见报错排查与实战解决指南

本文详细解析了SAP FICO模块中CK40N批量发布标准价的常见报错及解决方案。从物料选择、成本核算到最终发布的全流程,提供了针对'已有标准成本估算记号'等典型报错的实战处理技巧,并分享了预防性维护与批量处理的高效方法,帮助财务人员提升工作效率。

weixin_29234509的博客 304

【Ybtoj 第15章例4】恒星的亮度【强连通分量】【Tarjan缩点】

解题思路 把“A不小于B”和“A 不大于B”转换变成“A大于等于B”和“A小于等于B ” 那如果A<BA<BA<B那么B可以为A+1A+1A+1,如果有等于,那就B=A。B<AB=A。B<AB=A。B<A 和B小于等于A 的关系同理。 我们发现会有环所以用TarjanTarjanTarjan缩点,把A<BA<BA<B或A<=BA<=BA<=B连一条A到B的有向边,然后缩点缩在一起,(就是亮度相同)。 但一个环中如果有小于,那...

在人间贩卖声音 197

Petalinux 2021.1 + Vivado 2021 实战:手把手教你为Zynq板卡移植Linux并搞定AXI DMA驱动

本文详细介绍了基于Petalinux 2021.1和Vivado 2021工具链,为Zynq开发板移植Linux系统并开发AXI DMA驱动的全流程。从环境配置、硬件设计到驱动适配与性能优化,提供了实战避坑技巧和版本特异性问题的解决方案,帮助开发者快速构建高速数据传输系统。

weixin_42641741的博客 386

【Ybt OJ】[图论 第4章] 强连通分量 [后半章]

「「「图论」」」第444章 强连通分量(((后222题))) 目录: C.最大半联通子图 D.恒星的亮度 C.C.C. 例题111 最大半联通子图 洛谷linklinklink 分析:

绫 232

iOS反编译-hook微信之艾特所有人

all。

2501_90243249的博客 759

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1639

「图论」第4章 强连通分量课堂过关

文章目录A. 【例题1】有向图缩点题目代码B. 【例题2】受欢迎的牛题目思路代码D. 【例题4】恒星的亮度题目思路代码 「图论」第4章 强连通分量课堂过关 A. 【例题1】有向图缩点 题目 代码 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; #define N 10010 #define M 100010 int r

weixin_46304837的博客 317

Vue3 - Element Plus 组件库 Tabs 标签页右侧区域插入按钮,<el-tabs> / <el-tab-pane> 选项卡组件右侧自定义插槽内容教程(右边区域添加自定义按钮功能区)

vue3,elementplus,tabs选项卡如何在插槽按钮,tabs标签页组件怎么自定义右侧内容,vue3elementplustabs组件右侧插槽按钮,element-plus在el-tabs组件的最右侧添加按钮,如何在选项卡右边加入按钮搜索框等内容,哪个属性能在tab选项卡右侧插入自定义按钮,在el-tabs组件最右侧添加按钮,vue3el-tabs组件怎么自定义右侧插槽内容,Tabs标签页右侧自定义插槽,ElementPlusTab右边加按钮,el-tabs组件自定义右侧按钮,在E

🏆 前端领域优质创作者 7016

《ybtoj高效进阶》第三部分第四章例题4 恒星的亮度

题目大意 给n个点,点权为>=1的整数,给m个关系,形如c x y,表示点x与点y的关系(c=1为相等,c=2为>,c=3为<=,c=4为<,c=5为>=),求最小点和 思路 差分约束系统建图: for (long long i=1;i<=m;i++) { cin>>yyyyy>>x>>y; if (yyyyy==1) add(x,y,0),add(y,x,0); if (yyyyy==2) add(x,y,1);

SSL_WCR 228

华为OD机考真题 新系统 - 小菊的寻宝之旅(Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【小菊的寻宝之旅】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小菊的寻宝之旅】多语言题解。

qq_45776114的博客 621

Autosar入门_OS_5

os hook函数说明

u012406840的博客 398

YBT3.4.4 洛谷P3275 糖果_恒星的亮度

YBT3.4.4 洛谷P3275 糖果_恒星的亮度 Title 思路 建图: 1 A<=B,B<=A A->B B->A 边权0 2 A+1<=B A->B 边权1 3 B<=A B->A 边权0 4 B+1<=A B->A 边权1 5 A<=B A->B 边权0 Tanjan缩点 拓扑DP 入度0的点f=1 f[v]=max(f[u]+w,f[v]); w为该边边权 ans=∑i=1总点数f[i]∗s[i]\sum _{i=1}^{总

weixin_46975572的博客 241

YOLO11 改进、魔改|分组残差自注意力GRSA,通过分组残差优化 QKV 计算、指数空间映射优化位置偏差,在大幅降低自注意力模块参数和计算量的同时,增强特征关系与位置信息的表征能力

【摘要】研究人员提出GRSA(分组残差自注意力)机制,解决Transformer在图像超分辨率任务中效率与性能难以兼顾的问题。GRSA通过分组残差层减少自注意力参数冗余,同时采用指数空间相对位置偏差优化位置信息表征。实验表明,GRSA在降低50%参数量的同时保持模型性能,适用于目标检测和图像分割任务。在YOLO系列模型中集成GRSA可提升小目标检测精度,代码实现已开源,详细部署教程见相关视频与GitHub资源。该机制为轻量化Transformer模型提供了高效解决方案。

qq_64693987的博客 798

【ybt2021.11.12】T2 字典之序

T2 字典之序 link 解题思路 考虑贪心。 在选每个字母的时候要保证它的后面有所有没有出现过的字母。 每次从后往前找到直到每个未出现过字母都存在,记录下标。 在上一次操作的下标后一位到找到的下标之间取最小的字母。 可以保证这样找到的字符串字典序最小。 code #include<iostream> #include<cstring> #include<cstdio> #include<string> using namespace std; stri

你...你不要过来啊!!! 780

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【ybt】【树形DP】【例题2】结点覆盖

结点覆盖 LinkLinkLink 解题思路 这是一道树形DP。 设 fi,0f_{i,0}fi,0​ 表示以 iii 为根的子树全部被覆盖,iii 的父亲被选的最小值。 fi,1f_{i,1}fi,1​ 表示 iii 被选的最小值。 fi,2f_{i,2}fi,2​ 表示 iii 的儿子被选在最小值。 code #include<iostream> #include<cstdio> using namespace std; int n; int a[2010]; int f[

你...你不要过来啊!!! 543

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【ybt】【数据结构 RMQ 课过 例3】与众不同

与众不同 题目链接:YbtOJ 解题思路 设 lastilast_ilasti​ 表示 iii 上一次出现的位置。 设 preipre_iprei​ 表示以 iii 结尾的最长完美序列的启示位置,显然 prei=max⁡(prei−1,lastai)pre_i=\max(pre_{i-1},last_{a_i})prei​=max(prei−1​,lastai​​) 。 我们先处理出 lastlastlast 和 preprepre ,然后二分出一个 lenlenlen,lenlenlen 的左边可以直

你...你不要过来啊!!! 517

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

【冲刺 NOIP2022 模拟赛 B 组 Day5】B. 选择人员

你...你不要过来啊!!! 461

【ybt】【状压DP】【例题4】炮兵阵地

炮兵阵地 LinkLinkLink 解题思路 设 fi,j,kf_{i,j,k}fi,j,k​ 表示第 iii 行,第 iii 行状态为 jjj ,第 i−1i-1i−1 行状态为 kkk 的情况最大值。 枚举 lll 表示第 n−2n-2n−2 行的状态,在这 333 行状态都不重叠的前提下,状态转移方程如下: fi,j,k=max⁡(fi,k,l)f_{i,j,k}=\max(f_{i,k,l})fi,j,k​=max(fi,k,l​) code #include<iostream> #

你...你不要过来啊!!! 443

【ybt】【状压DP】【例题1】种植方案

种植方案 LinkLinkLink 解题思路 状压 DPDPDP 模板题。 code #include<iostream> #include<cstdio> using namespace std; const int mod=1e8; int n,m; int a[20]; int q[1<<12],tot; int f[20][1<<12]; int main() { cin>>n>>m; for(int i=1;i&

你...你不要过来啊!!! 396

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

【冲刺 NOIP2022 模拟赛 B 组 Day5】A. 数字计数

你...你不要过来啊!!! 371

【ybt】【数据结构 树状数组 课过 例3】严格上升子序列数

严格上升子序列数 题目链接:YbtOJ 解题思路 我们设 fi,jf_{i,j}fi,j​ 表示以 iii 结尾,长度为 jjj 的序列数。 如果直接暴力做,那是 O(n3)O(n^3)O(n3) 的时间复杂度。 我们可以离散化,然后用树状数组维护每一种方案数的情况。 其实和逆序对挺像的说(无端感受) code #include<algorithm> #include<iostream> #include<cstring> #include<cstdio>

你...你不要过来啊!!! 352

【ybt】【基算 深搜 课过 例3】虫食算

虫食算 题目链接:虫食算 感谢 @lzh@lzh@lzh 大佬的帮助 题目描述 解题思路 很明显这是一道深搜题 (不然它怎么会归到深搜专栏里呢) 。 可以搜索枚举每一个字母来寻找最佳答案。 但这样是 O(10n)O(10^n)O(10n) 的时间复杂度,肯定是过不了的,所以要加入剪枝。 如果当前情况已经不合法了,自然不能搜下去。 那么现在关键在于 check()check()check() 函数。 如果当前位三个数都被搜到过了,那么直接判断即可。但如果上一位有数未知,那么最多还可以对这一位贡献 111

你...你不要过来啊!!! 327

【ybt】【图论 强连通 课过 例1】有向图缩点

有向图缩点 题目链接:有向图缩点 题目描述 解题思路 强连通分量模板,用 TarjanTarjanTarjan 算法。 code #include<iostream> #include<cstdio> #include<queue> using namespace std; queue<int> q; int n,m; int ans; int tm,tt; int a[10010]; int v[10010]; int f[10010]; int d

你...你不要过来啊!!! 315

【ybt2021.11.12】T1 他的世界

T1 他的世界 link 解题思路 “暴力也能过” code #include<iostream> #include<cstdio> using namespace std; int T; int n,m; int main() { freopen("number.in","r",stdin); freopen("number.out","w",stdout); cin>>T; while(T--) { scanf("%d%d",&n,&

你...你不要过来啊!!! 314

【ybt】【数据结构 RMQ 课过 例4】矩阵最值

矩阵最值 题目链接:YbtOJ 解题思路 二维st表模板题。 code #pragma GCC optimize(2) #include<iostream> #include<cstdio> #include<cmath> #define int long long using namespace std; int n,m,T; int a[260][260]; int f[260][260][21][21]; signed main() { cin>&

你...你不要过来啊!!! 299

【ybt】【动态规划 区间 课过 例2】木板涂色

木板涂色 题目链接:YbtOJ/Luogu 解题思路 区间 DPDPDP 。 设 fl,rf_{l,r}fl,r​ 表示将区间 [l,r][l,r][l,r] 涂成目标形式的最小次数,转移方程如下: fl,r={minl<k≤r(fl,k−1+fk,r)(s[l]≠s[r])min(fl,r−1,fl+1,r)(s[l]=s[r]) f_{l,r}=\left\{ \begin{array}{l} min_{l<k\leq r}(f_{l,k-1}+f_{k,r})&(s[l]\ne

你...你不要过来啊!!! 287
上一篇: 【ybt】【图论 强连通 课过 例3】最大半连通子图
下一篇: 【luogu_P5253】丢番图
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值