(JZ1621)2018.07.08【2018提高组】模拟C组 2 .【Usaco2009 gold 】头晕的奶牛【图论借用】(有多解,需比较)

usaco2021 立即下载

【Usaco2009 gold 】头晕的奶牛【图论借用】(有多解,需比较)

Description

  奶牛们发现,在农场里面赛跑是很有趣的一件事。可是她们一旦在农场里面不断地转圈,就会变得头晕目眩。众所周知,眩晕的奶牛是无法产奶的。于是,农夫约翰想要把他农场里面的双向道路全部改为单向道路,使得他的农场里面一个“圈”都没有,以避免他的奶牛们被搞得晕头转向。如果奶牛可以经过若干条道路回到起点,那么这些道路就称为一个“圈”。
  农场有N(1 <= N <= 100000)片草地,编号为1到N。这些草地由M1(1 <= M1 <= 100000)条单向道路和M2(1 <= M2 <= 100000)条双向道路连接起来。任何一条道路都不会把一片草地和这篇草地本身连接起来。但是,任意两片草地之间都可能有多条道路连接。不保证任意两片草地之间都有路径相连。
  你的任务是给所有的双向道路设定一个方向,使得整个农场(只剩下单向道路)最后一个圈都没有。也就是说,不存在一个单向道路序列的终点和起点重合。数据保证一开始就有的单向道路中,一个圈都没有。而且一开始就有的单向道路不能改变。
  单向道路的起点是草地A_i(1 <= A_i <= N),终点是草地B_i(1 <= B_i <= N)。双向道路连接草地X_i(1 <= X_i <= N)和Y_i(1 <= Y_i <= N)。
  考虑下面这个样例:
  这个是图哦~ 
  草地1和3,2和3,2和4之间的道路是双向的。还有单向道路连接草地1和2,4和3。一种给双向道路定义方向的方法是,让三条双向道路的方向分别是1到3,2到3,3到4:
这个也是图哦~
  

Input

  * 第1行: 三个由空格隔开的正数: N, M1和M2
  * 第2到1+M1行: 第i+1行表示第i条单向道路,包含两个由空格隔开的整数: A_i和B_i
  * 第2+M1到第1+M1+M2行: 第i+M1+1行表示第i条单向道路,包含两个由空格隔开的整数X_i和Y_i

Output

  * 第1到M2行: 第i行应该包含两个由空格隔开的整数: 根据你给第i条双向道路定义的的方向,可能是X_i, Y_i,也可能是Y_i, X_i。这些双向道路必须按照输入的顺序输出。如果无解,在单独的一行内输出”-1”。

Sample Input

4 2 3
1 2
4 3
1 3
4 2
3 2

Sample Output

1 3
2 4
2 3

Data Constraint

题解;

    本题是拓扑排序;
    先排序一下,然后根据读入的无向边两端的拓扑序,来确定方向,用小的连大的就可以了‘

PS:关于队列的科普

  • 入队,如例:q.push(x); 将x 接到队列的末端。
  • 出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
    • 访问队首元素,如例:q.front(),即最早被压入队列的元素。
    • 访问队尾元素,如例:q.back(),即最后被压入队列的元素。
    • 判断队列空,如例:q.empty(),当队列空时,返回true。
    • 访问队列中的元素个数,如例:q.size()
#include <cstdio>
#include <algorithm>
#include<queue>
#define N 100010
using namespace std;
int ru[N],f[N][2],head[N],to[2*N],next[2*N],t[N];
int n,m,mm,x,y,num,cnt;
queue<int>q;
void add(int x,int y)
{
    ru[y]++;
    to[++num]=y, next[num]=head[x] , head[x]=num;
}

void tuopu(){
    for(int i=1;i<=n;i++)
        if(!ru[i]) q.push(i);
    while(!q.size()){
        int k=q.front();
        t[k]=++cnt;
        q.pop();
        for(int i=head[k];i;i=next[i]){
            int l=to[i];
            if (--ru[l]==0) q.push(l);
        }
    }
}
int main()
{
    scanf("%d%d%d",&n,&m,&mm);
    for(int i=1;i<=m;i++) scanf("%d%d",&x,&y), add(x,y);
    tuopu();
    for(int i=1;i<=mm;i++){
        scanf("%d%d",&x,&y);
        if (t[x]<t[y]) printf("%d %d\n",x,y);
                  else printf("%d %d\n",y,x);
    } 
    return 0;
}
手把手教你编写PCIe设备驱动:基于Linux内核的实战教程 本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。 阅读详情

相关推荐

基于DPABI和SPM12的任务态fMRI分析笔记1——预处理

前言 原理简介 预处理

Sophia2023的博客 1万+

[Usaco2015 Jan]Grass Cownoisseur 图论 tarjan spfa

先缩点,对于缩点后的DAG,正反跑spfa,枚举每条边进行翻转即可 #include #include #include #include using namespace std; struct pp{ struct edge{ int u,v,w,next; }ed[200005]; int e,head[100005]; pp(){

Ren_Ivan的博客 305

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

【图论】【USACO】The Castle

<br />In a stroke of luck almost beyond imagination, Farmer John was sent a ticket to the Irish Sweepstakes (really a lottery) for his birthday. This ticket turned out to have only the winning number for the lottery! Farmer John won a fabulous castle in th

liveas的专栏 2134

抖音直播参数逆向实战:手把手教你用Python获取ttwid和x-bogus(附完整代码)

本文深入解析抖音直播接口的反爬机制,重点剖析核心防护参数ttwid和x-bogus的生成原理与作用。通过Python实战,手把手教你逆向获取ttwid、webid等关键参数,并构建稳定的数据采集方案,为开发者提供企业级数据获取能力。

weixin_29196891的博客 1044

Isaac Sim 车辆动力学:从参数调优到户外仿真的挑战与实战

本文深入探讨了Isaac Sim在车辆动力学仿真中的应用,从参数调优到户外场景模拟的实战经验。详细解析了悬架系统、轮胎物理模型等核心参数的设置技巧,并分享了应对户外仿真挑战的实用方案。通过Vehicle Wizard高级使用和传感器配置,帮助开发者高效完成车辆仿真与算法开发。

weixin_29192211的博客 404

P2951 [USACO09OPEN]捉迷藏Hide and Seek-图论,最短路,SPFA

奶牛贝西和农夫约翰(FJ)玩捉迷藏,现在有N个谷仓,FJ开始在第一个谷仓,贝西为了不让FJ找到她,当然要藏在距离第一个谷仓最远的那个谷仓了。现在告诉你N个谷仓,和M个两两谷仓间的“无向边”。每两个仓谷间当然会有最短路径,现在要求距离第一个谷仓(FJ那里)最远的谷仓是哪个(所谓最远就是距离第一个谷仓最大的最短路径)?如有多个则输出编号最小的。以及求这最远距离是多少,和有几个这样的谷仓距离第一个谷仓...

LingFengGold 322

基于迁移学习的花卉识别系统

本研究采用了预训练的经典深度学习模型,包括ResNet、AlexNet和VGG,通过微调的方式在Oxford-102数据集和一个自制花卉数据集上进行训练,并对图像进行了多种数据增强操作,以提高模型的泛化能力,致力于实现花卉的高效分类。

m0_71146337的博客 2378

【c++图论】洛谷P2872 [USACO07DEC]Building Roads S

图论/洛谷P2872 [USACO07DEC]Building Roads S

贤鱼的博客 820

图文详解秋叶ComfyUI整合包开启密码访问教程(附内网穿透实战经验) ComfyUI密码、ComfyUI-Login、ComfyUI内网穿透、秋叶整合包、ComfyUI安全防护

想远程访问 ComfyUI(跨设备或公网)不希望任何人随意使用或篡改服务需要给 ComfyUI 添加登录验证机制只要按照本文教程,安装插件,并设置好用户名密码,你就能把服务加上一道强力的门槛。📌配合ngrokfrp等内网穿透工具使用公网域名推荐启用 HTTPS(SSL证书可以用宝塔/ZeroSSL 申请)密码可以设置复杂一些,定期更换更安全📬如果你在配置过程中遇到问题,欢迎评论区留言交流,或者私信我,后续我也会更新更多 ComfyUI 插件教程、安全部署经验等内容。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2733

Rcpp简介

在数据分析时,代码的运行速率常常是我们所关心的话题之一。小Q往期的文章中也有介绍通过并行计算提升R运行速率的文章。然而R代码自身的运行速率偏慢,具有某种“先天缺陷”。因此,并行R函数的运行时间有时仍然不尽人意。本期小Q与大家分享R的另一提速方式:Rcpp之效率瓶颈突破。 1 什么是Rcpp 在往期的文章中曾讲过,我们在R中尽量采用向量化或内建函数运算,避免自编循环带来的额外时间消耗。然而,算法中有时难以避免循环,若循环部分耗时严重,直接并行含有该循环的算法显得力不从心,此时又该如何?稍有编程知识的读者可

Mrrunsen的博客 2262

[USACO09DEC]晕牛Dizzy Cows (拓扑排序)

https://www.luogu.org/problem/P2017 题目背景 Hzwer 神犇最近又征服了一个国家,然后接下来却也遇见了一个难题。 题目描述 The cows have taken to racing each other around the farm but they get very dizzy when running in circ...

weixin_30299539的博客 281

实战封神!YOLOv7 轻量化部署全攻略:ONNX格式转换+TensorRT极致加速(速度直接提升3-5倍,精度无损)

部署核心链路,这是YOLO系列部署的最优解,速度提升3~5倍,精度无损;ONNX是桥梁:解决模型兼容性问题,简化后能去掉冗余节点,是TensorRT加速的前提;TensorRT是核心:NVIDIA显卡的极致加速引擎,FP16量化是速度与精度的最优平衡,无需手动配置,一键开启;轻量化终极组合YOLOv7-tiny + 416尺寸 + TensorRT FP16,速度提升5~8倍,满足所有实时检测场景;避坑核心:转换参数必加,推理尺寸必须一致,engine文件显卡专属。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 308

【图论】【连通块】Usaco2012Jan. Bovine Alliance

【题目描述】 [洛谷P3043 Usaco2012Jan. Bovine Alliance] (https://www.luogu.org/problemnew/show/P3043) 【分析】 题意:给出一个n个点m条边的图,现把点和边分组,每条边只能和相邻两点之一分在一组,点不可以和多条边一组,但点可以单独一组,问分组方案数 通俗理解:每个组要么一条边以及它相邻的一个点,要么一个单独的点。 ...

qq_42754826的博客 400

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Usaco2009 gold 】头晕的奶牛【图论借用】{拓扑排序}

题目 Description   奶牛们发现,在农场里面赛跑是很有趣的一件事。可是她们一旦在农场里面不断地转圈,就会变得头晕目眩。众所周知,眩晕的奶牛是无法产奶的。于是,农夫约翰想要把他农场里面的双向道路全部改为单向道路,使得他的农场里面一个“圈”都没有,以避免他的奶牛们被搞得晕头转向。如果奶牛可以经过若干条道路回到起点,那么这些道路就称为一个“圈”。   农场有N(1 &amp;lt;= N &amp;l...

Nowed 563

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

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

【最短路】【floyed】【图论】牛的旅行

题目: 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区不连通。这样,农民John就有多个牧区了。 John想在农场里添加一条路径(注意,恰好一条)。对这条路径有以下限制: 一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的有5个牧区的牧场,牧区用“*”表示,路径用直...

还有一年 305

JZOJ 1621. 【Usaco2009 gold 】头晕的奶牛【图论借用】

目录: 题目: 分析: 代码: 题目: 单击看题目 分析: 这道题主要考察的是我们将图转化为线性结构,我们可以考虑到拓扑排序,这样一来,这道题就变得十分简单了 先跑一边拓扑排序,记录序号,然后按排序后序号的大小定向 代码: #include&amp;lt;iostream&amp;gt; #include&amp;lt;cstdio&amp;gt; #include&amp;lt;cstri...

qq_35786326的博客 273

[USACO09DEC]晕牛Dizzy Cows --拓扑排序

Luogu 2017 题目分析: 这题可以用拓扑排序,我们可以这样加边,先按拓扑排序,把入度为0 的加入 队列,(这题无向边入度不加),遍历他的所有边,如果碰到一条他连出去的无向边 并且这条无向边还没有被标记过,那么直接标记一下,这样做就一定能保证无环,如果最终所有的点里面还有点没有入队过,说明这些点在环中,则说明没有可行的方案,直接输出 -1 Code: #include <bits...

小元勋的博客 320

[USACO12DEC]第一!First! (Trie树,拓扑排序)

题目链接 Solution 感觉比较巧的题啊... 考虑几点: 可以交换无数次字母表,即字母表可以为任意形态. 对于以其他字符串为前缀的字符串,我们可以直接舍去. 因为此时它所包含的前缀的字典序绝对比它本身小. 需要使得某个字符串 \(S\) 字典序最小,需要讨论两种情况: \(1.\) 与它没有公共前缀的字符串 此时我们即使得 \(S_{1}\) 大于其第一个即可. \(2.\) 与它有公共...

weixin_30449239的博客 196

Frame Up_usaco 4.4_拓扑排序

Description看下面的五张 9 x 8 的图像: 现在,把这些图像按照 1—5 的编号从下到上重叠,第 1 张在最下面,第 5 张在最顶端。如果一张图像覆盖了另外一张图像,那么底下的图像的一部分就变得不可见了。我们得到下面的图像: 对于这样一张图像,计算构成这张图像的矩形图像从底部到顶端堆叠的顺序。 下面是这道题目的规则: • 矩形的边的宽度为 1 ,每条边的

olahiuj的博客 755

BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP

BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP Description 受到秘鲁的马丘比丘的新式水上乐园的启发,Farmer John决定也为奶牛们建 一个水上乐园。当然,它最大的亮点就是新奇巨大的水上冲浪。超级轨道包含 E (1 <= E <=150,000)条小轨道连接着V (V <= 50,000)个水池,编号为1..V。每个...

260

USACO2.4の其中3道水题【模拟,图论】

T1:P1518-两只塔姆沃斯牛 The Tamworth Two 题目大意 两个东西,按照一个方向前进,他们撞到墙壁会顺时针90°,求他们多久后相遇。 解题思路 暴力模拟 code // luogu-judger-enable-o2 #include&lt;cstdio&gt; #include&lt;iostream&gt; using namespace std; const int ...

QuantAsk 526

bzoj 3355: [Usaco2004 Jan]有序奶牛(拓扑排序+bitset)

3355: [Usaco2004 Jan]有序奶牛Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 56  Solved: 29[Submit][Status][Discuss]Description    约翰的N(1≤N≤1500)头牛排成一行挤奶时,有确定的顺序.牛被编成连续的号码1..N,他拥有L条关于奶牛顺序的信息,所有的信息都写成“A在B的...

加载中... 607

【洛谷2017】 【USACO09DEC】晕牛Dizzy Cows

题目背景 Hzwer 神犇最近又征服了一个国家,然后接下来却也遇见了一个难题。 题目描述 The cows have taken to racing each other around the farm but they get very dizzy when running in circles, and everyone knows that dizzy cows don't produ

dcx2001的博客 942

JZOJ 1622. 【Usaco2009 gold 】过路费【图论借用】

目录: 题目: 分析: 代码: 题目: 单击查看题目 分析: 看完题目,我们很容易想到使用FloydFloydFloyd算法,在时间上n&amp;lt;=250,可以通过,但FloydFloydFloyd中参加运算的只有边权,可这道题目偏偏还要个点权,我们不妨建两个数组,一个用来保存FloydFloydFloyd的结果,另一个是在FloydFloydFloyd的基础上...

qq_35786326的博客 367

USACO 1.3 - Wormholes(暴力图论)

Farmer John's hobby of conducting high-energy physics experimentson weekends has backfired, causing N wormholes (2 According to his calculations, Farmer John knows that his wormholeswill form N/2 co

Halo 1258

图论复习usaco2006jan gold分离的路径

为了从FFF个草场中的一个走到另一个,贝茜和她的同伴们不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。 每对草场之间已经有至少一条路径,给出所有 R条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量。 路径由若干道路首尾相连而成,两条路径相互分离,是指两条路径没有一条重...

LeoJAM的博客 513
上一篇: (JZ1620)2018.07.08【2018提高组】模拟C组 1 .【Usaco2009 gold 】电视游戏问题
下一篇: (JZ1622)2018.07.08【2018提高组】模拟C组 3 .【Usaco2009 gold 】过路费【图论借用】
SSL_lzx
博客等级 码龄10年 19粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值