【NOIP2017提高A组冲刺11.5】轰炸

新中新身份证阅读器SDK避坑指南:DKQ-A16D在C#中调用SynIDCardAPI.dll的5个常见错误 本文详细介绍了新中新DKQ-A16D身份证阅读器在C#开发中的常见问题及解决方案,包括驱动安装、端口初始化、数据读取与解析等关键步骤。特别针对SynIDCardAPI.dll调用中的5个典型错误提供了实用避坑指南,帮助开发者高效完成实名认证系统集成。 阅读详情

Description

战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。
小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。
每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一轮被轰炸,并且可以通过地道从城市i 到达城市j,那么城市i 的间谍可能因为撤离到城市j 而被炸死。为了避免这一情况,战狂不会在同一轮轰炸城市i 和城市j。
你需要求出战狂最少需要多少轮可以对每座城市都进行至少一次轰炸。

Input

第一行两个整数n,m。接下来m 行每行两个整数a,b 表示一条从a 连向b的单向边。

Output

输出一行仅一个整数表示答案。

Sample Input

5 4
1 2
2 3
3 1
4 5

Sample Output

3

Data Constraint

对于20%的数据,n,m<=10。
对于40%的数据,n,m<=1000。
对于另外30%的数据,保证无环。
100%的数据,n,m<=1000000。

Solution

这题拿出来愉悦大众
在往下看之前,请一定要确定你已经认真看过题
因为这题考语文


注意题面,i,j互相到达,是指他们在同一个联通块内而不是有边直接相连
这直接导致大把人爆5

那么怎么做呢?
先考虑没有环
答案显然是最长链长度
因为一条链上的点不能一起做,但层数相同不在同一条链上的点可以一起做

那么现在有环,用tarjan弄掉
由于n为10的6次房,需要人工栈或宽搜版人工栈
可以点进去看看我的模板

Code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define N 1010000
using namespace std;
int n,m,last[N],next[N*2],to[N*2],tot,bz[N],bz2[N],ans=0,zx[N],o,low[N],dfn[N],totot,p[N],zk[N],zi[N],c[N],q[N][2],r[N],num,f[N],a[N],d[N];
void putin(int x,int y)
{
    next[++tot]=last[x];last[x]=tot;to[tot]=y;
}
void read(int &x)
{
    char c=getchar();x=0;
    for(;c<'0'||c>'9';c=getchar());
    for(;c>='0'&&c<='9';c=getchar()) x=x*10+c-48;
}
void tarjan1()
{
    int x=zx[o];low[x]=dfn[x]=++tot;p[++p[0]]=x;bz[x]=bz2[x]=1;
    for(int i=last[x];i;i=next[i])
    {
        if(!bz[to[i]])
        {
            zk[o]=1;zi[o]=i;zx[++o]=to[i];zk[o]=0;return;
        } 
        else if(bz2[to[i]]) low[x]=min(low[x],dfn[to[i]]);
    }
    if(low[x]==dfn[x])
    {
        totot++;
        for(;p[p[0]+1]!=x;p[0]--) c[p[p[0]]]=totot,a[totot]++,bz2[p[p[0]]]=0;
    }
    o--;
}
void tarjan2()
{
    int x=zx[o];low[x]=min(low[x],low[to[zi[o]]]);
    for(int i=next[zi[o]];i;i=next[i])
    {
        if(!bz[to[i]])
        {
            zk[o]=1;zi[o]=i;zx[++o]=to[i];zk[o]=0;return;
        } 
        else if(bz2[to[i]]) low[x]=min(low[x],dfn[to[i]]);
    }
    if(low[x]==dfn[x])
    {
        totot++;
        for(;p[p[0]+1]!=x;p[0]--) c[p[p[0]]]=totot,a[totot]++,bz2[p[p[0]]]=0;
    }
    o--;
}
void tarjan(int x)
{
    zx[++o]=x;zk[o]=0;zi[o]=0;
    while(o>0){if(zk[o]==0) tarjan1(); else tarjan2();}
}
int main()
{
    freopen("bomb.in","r",stdin);
    freopen("bomb.out","w",stdout);
    scanf("%d%d",&n,&m);
    fo(i,1,m) read(q[i][0]),read(q[i][1]),putin(q[i][0],q[i][1]);
    tot=0;
    fo(i,1,n) if(!bz[i]) tarjan(i);
    memset(last,0,sizeof(last));num=totot;tot=0;
    fo(i,1,m) if(c[q[i][0]]!=c[q[i][1]]) putin(c[q[i][0]],c[q[i][1]]),r[c[q[i][1]]]++;
    int he=0,ta=0;
    fo(i,1,num) if(r[i]==0) d[++ta]=i,f[i]=a[i];
    while(he<ta)
    {
        int x=d[++he];
        for(int i=last[x];i;i=next[i])
        {
            f[to[i]]=max(f[to[i]],f[x]+a[to[i]]);
            r[to[i]]--;
            if(r[to[i]]==0) d[++ta]=to[i];
        }
    }
    fo(i,1,n) ans=max(ans,f[i]);
    printf("%d\n",ans);
}
AVL_Cruise_interface\Simulink联合仿真 分享了AVL_Cruise通过interface模块与Simulink进行联合仿真的过程 阅读详情

相关推荐

想学嵌入式但没开发板?试试这个免费的STM32虚拟仿真平台(含LVGL界面教程)

本文介绍如何利用免费的STM32虚拟仿真平台学习嵌入式开发,特别适合预算有限或零硬件基础的学习者。通过详细的LVGL界面开发教程,展示虚拟仿真在嵌入式学习中的高效性和实用性,涵盖环境搭建、代码实现到实机迁移的全流程,助力快速掌握嵌入式开发核心技能。

weixin_29266647的博客 306

JZOJ5452. 【NOIP2017提高A组冲刺11.5】轰炸

Description战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一轮被轰炸,并且可以

lijf2001的博客 402

Jetson Nano摄像头选型与配置全攻略:CSI与USB接口实战指南

在嵌入式视觉与边缘计算项目中,摄像头作为核心传感器,其选型与配置直接影响系统性能。CSI(Camera Serial Interface)和USB(Universal Serial Bus)是两种主流接口,前者通过MIPI CSI-2协议直接与SoC通信,具备低延迟、高带宽特性,适合实时性要求高的应用;后者基于通用串行总线标准,即插即用,通用性强。在NVIDIA Jetson Nano平台上,合理选择摄像头接口并优化驱动配置,能充分发挥其GPU加速优势,提升图像处理流水线效率。本文聚焦Jetson Nano

weixin_29190651的博客 323

JZOJ 5452. 【NOIP2017提高A组冲刺11.5】轰炸

JZOJ 5452. 【NOIP2017提高A组冲刺11.5】轰炸 Description战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在

Felix-Lee的博客 589

脑机接口(BCI)从原理到开发实战 09|SSVEP应用:通过视觉刺激控制设备

本文介绍了稳态视觉诱发电位(SSVEP)脑机接口技术。SSVEP是一种高效的非侵入式BCI范式,当用户注视特定频率闪烁的视觉刺激时,大脑枕叶会产生对应的节律性响应。文章详细阐述了SSVEP的神经机制、刺激范式设计、数据预处理方法,重点讲解了典型相关分析(CCA)这一核心识别算法。相比运动想象和P300范式,SSVEP具有信息传输率高(60-100 bits/min)、信号稳定、无需训练等优势,在高速拼写、设备控制等领域应用广泛。文章还提供了完整的电极选择、滤波、分段等预处理流程,以及CCA和滤波器组CCA的

小明的博客 1350

深入解析经典蓝牙连接:从HCI命令到LMP协议的完整流程

本文深入解析经典蓝牙连接的完整流程,从设备发现、寻呼建立物理链路,到安全配对与加密的每一步。通过对照HCI LOG与AIR LOG,详细拆解了HCI命令与LMP协议报文的对应关系,帮助开发者精准定位连接问题,掌握蓝牙调试的核心方法。

weixin_29260291的博客 449

【学校联考】CQYZ_Vijos_P3755 轰炸

【问题描述】  战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。   小奇有 n 座城市,城市之间建立了 m 条 有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。   每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市 i,j,它们在同一轮被轰炸

ERHUO119的博客 589

2ED2410-EM的使用

2ED2410-EM的使用

让你爱上电路设计 971

【JZOJ 5452】【NOIP2017提高A组冲刺11.5】轰炸

Description战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一轮被轰炸,并且可以

863

全面认识PFC和LLC

想象一下,你在拉一辆车,如果你的力气都用在推动车子前进的方向上,这样拉车会比较轻松。而如果你的力气用在不正确的方向,比如侧向、斜向,那就需要更大的力气才能推动车子。PFC就是在帮助电流“朝着正确的方向”流动,这样可以用更少的能量做更多的事情,减少无用的功率损耗。PFC负责将电流方向对齐,让电源效率更高,而LLC负责电压的高效转换,两者配合可以在更宽的负载范围内保持高效率。综上所述,PFC LLC电路是一种高效的电源转换电路,通过PFC模块和LLC模块的组合,实现了从交流电到直流电的高效转换。

weixin_43199439的博客 6090

城市轰炸

城市轰炸 战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。小奇有 n 座城市,城市之间建立了 m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市 i,j,它们在同一轮被轰炸,并且可以通...

beautiful_CXW的博客 513

YOLOv11 模型剪枝实战:深入解析通道剪枝与层剪枝的策略与实现(含环境配置、微调技巧与部署测试)

YOLOv11模型剪枝技术通过移除冗余参数和结构来压缩模型,主要包括通道剪枝和层剪枝两种方法。通道剪枝通过评估批量归一化层的缩放因子γ确定通道重要性,移除不重要的特征通道;层剪枝则直接删除整个网络层或模块。剪枝流程包括评估重要性、移除冗余成分、微调模型和评估性能四个步骤。该技术可显著降低模型计算量和参数量,适合在资源受限设备上部署高性能目标检测模型。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1960

Jzoj5452【NOIP2017提高A组冲刺11.5】轰炸

战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一...

dianning8393的博客 109

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

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

Tarjan模板 人工栈版Tarjan

Tarjan模板 人工栈Tarjan 引入tarjan算法有两个最重要东西 dfn[x]表示x的dfs序 low[x]表示x以及x能连到的点中(包括间接连到的)最小的dfn 还有两个标记 一个表示是否访问过 一个为是否在当前的栈中求解low何时能更新呢 设当前点为v,子节点为u

Jacky35 1132

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

雅礼集训1.4 轰炸

标签:tarjan缩点,拓扑排序,DP 题目 轰炸(bomb) 【题目描述】 有n座城市,城市之间建立了m条有向的地下通道。 你需要发起若干轮轰炸,每轮可以轰炸任意多个城市。但每次轰炸的城市中,不能存在两个不同的城市i,j满足可以通过地道从城市i到达城市j。 你需要求出最少需要多少轮可以对每座城市都进行至少一次轰炸。 【输入数据】 第一行两个整数n,m。接下来m行每行两个整数a,b

Welcome to yjjr's blog! 651

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

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

差分数组|小a的轰炸游戏-牛客317E

小a的轰炸游戏 题目链接:https://ac.nowcoder.com/acm/contest/317/E 思路 这题考查的是对差分数组原理和前缀和的理解。 四个数组分别记录朝着四个方向下放的个数最后求个前缀,就代表着这一行中从这个点开始作为起点的轰炸区域个数,四个数组分别向着四个方向下放最终得到的四个数组分别是前。 4个数组对应下面4条箭头: 图中的绿色是要进行区间操作的菱形。红色圆圈是打...

weixin_30266829的博客 171

11月06日解题报告

考试心得 今天考试感觉在状态上还可以,但是觉得还是出现了一些心态上的问题,尤其是到后面改第二题的时候,整个人都是一种比较方的状态,这样可不行,还是要好好调整心态才是

kakiyaminuociyin的博客 484

[CSP-S模拟测试]:轰炸行动(bomb)(塔尖+拓扑排序+语文)

题目描述 战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。小奇有n座城市,城市之间建立了$m$条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市$i$,$j$,它们在同一轮被轰炸,并且可...

weixin_30394251的博客 310

【NOIP2017提高组】轰炸

Description战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一轮被轰炸,并且可以

GGTTARsier的博客 597

BZO 5450: 轰炸【缩点】【动态规划】

题目描述 战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有nnn座城市,城市之间建立了mmm条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市 iii,jjj,它们在同...

Yucohny 1673

【NOIP2017提高A组冲刺11.5】总结

tarjan,hash具体要表示什么,比赛前不要去搞什么事,熟悉新机子的C++

Luckfort 285
上一篇: 2017.11.4总结
下一篇: 2017.11.5总结
Jacky35
博客等级 码龄13年 66粉丝 317原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值