Description

Hzwer神犇最近又征服了一个国家,然后接下来却也遇见了一个难题。 Hzwer的国家有n个点,m条边,而作为国王,他十分喜欢游览自己的国家。他一般 会从任意一个点出发,随便找边走,沿途欣赏路上的美景。但是我们的 Hzwer 是一个奇怪 的人,他不喜欢走到自己以前走过的地方,他的国家本来有p1条有向边,p2条无向边,由 于国王奇怪的爱好,他觉得整改所有无向边,使得他们变成有向边,要求整改完以后保证他 的国家不可能出现从某个地点出发顺着路走一圈又回来的情况。(注:m=p1+p2.) 概述:给你一张混合图,要求你为无向图定向,使得图上没有环。

Input

第一行3个整数 n,p1,p2,分别表示点数,有向边的数量,无向边的数量。 第二行起输入p1行,每行2个整数 a,b 表示a到b有一条有向边。 接下来输入p2行,每行2个整数 a,b 表示a和b中间有一条无向边。

Output

对于每条无向边,我们要求按输入顺序输出你定向的结果,也就是如果你输出a b, 那表示你将a和b中间的无向边定向为a->b。 注意,也许存在很多可行的解。你只要输出其中任意一个就好。

Range

对于20%的数据 n<=10 p1<=10 p2<=5 对于30%的数据 n<=10 p1<=30 p2<=20 对于100%的数据 n<=100000 p1<=100000 p2<=100000 数据保证至少有一种可行解。

Solution

通过题目可以知道这道题其实是求一个DAG上的边方向。我们先普及一下,一个图是DAG的充要条件是有一个完整的拓扑序。这道题因为保证有解,所以我们可以先对输入的有向边拓扑排序一下,然后输入无向边的时候让层次小的指向层次大的,这就构成了一个DAG。

Code

#include<queue>
#include<cstdio>
#include<cctype>
using namespace std;

queue<int> q;
];
];
];
int n,p1,p2,cnt,sum;

struct Edge{
    int to,nxt;
}edge[];

void add(int x,int y){
    edge[++cnt].to=y;
    edge[cnt].nxt=head[x];
    head[x]=cnt;
}

void topsort(){
    while(q.size()){
        int u=q.front();q.pop();
        ceng[u]=++sum;
        for(int i=head[u];i;i=edge[i].nxt){
            ru[edge[i].to]--;
            if(!ru[edge[i].to]) q.push(edge[i].to);
        }
    }
}

signed main(){
    scanf("%d%d%d",&n,&p1,&p2);
    ;i<=p1;i++){
        int x,y;
        scanf("%d%d",&x,&y);
        add(x,y);
        ru[y]++;
    }
    ;i<=n;i++){
        if(!ru[i])
            q.push(i);
    }
    topsort();
    ;i<=p2;i++){
        int x,y;
        scanf("%d%d",&x,&y);
        if(ceng[x]>ceng[y]) printf("%d %d\n",y,x);
        else printf("%d %d\n",x,y);
    }
    ;
}

[模拟赛] T2 混合图的更多相关文章

  1. 模拟赛T2 交换 解题报告

    模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. ...

  2. 【2019.8.12 慈溪模拟赛 T2】汪哥图(wang)(前缀和)

    森林 考虑到题目中给出条件两点间至多只有一条路径. 就可以发现,这是一个森林. 而森林有一个很有用的性质. 考虑对于一棵树,点数-边数=\(1\). 因此对于一个森林,点数-边数=连通块个数. 所以, ...

  3. 模拟赛T2 线段树优化建图+tarjan+拓扑排序

    然而这只是 70pts 的部分分,考场上没想到满分怎么做(现在也不会) code: #include <cstdio> #include <string> #include & ...

  4. 20161003 NOIP 模拟赛 T2 解题报告

    Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...

  5. NOIP欢乐模拟赛 T2 解题报告

    小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个 ...

  6. 跳跳虎回家(国庆10.1模拟赛T2)

    题目: [题目描述] 跳跳虎在外面出去玩忘了时间,现在他需要在最短的时间内赶回家. 跳跳虎所在的世界可以抽象成一个含有 n 个点的图(点编号从 1 到 n ),跳跳虎现在在 1 号点,跳跳虎的家在 n ...

  7. 20181031noip模拟赛T2

    思路: 这道题是个图论抽象的题目…… 考场上想到了没写对…… 我们发现,f函数转移的方式有两种,要么是代价10的+1,要么是代价1的乘一个质因数 那么我们就可以将这个抽象为一张图 每个i向每个i+1连 ...

  8. 20181029NOIP模拟赛T2

    2.追捕 [题目背景] Duan2baka:“jmsyzsfq天下第一蠢!” jmsyzsfq:“你说什么?!” [题目描述] 于是Duan2baka开始了逃亡的旅程,而jmsyzsfq也开始追捕Du ...

  9. 【2019.8.11上午 慈溪模拟赛 T2】十七公斤重的文明(seventeen)(奇偶性讨论+动态规划)

    题意转化 考虑我们对于集合中每一个\(i\),若\(i-2,i+k\)存在,就向其连边. 那么,一个合法的集合就需要满足,不会存在环. 这样问题转化到了图上,就变得具体了许多,也就更容易考虑.求解了. ...

随机推荐

  1. Java AES加密案例

    AES加密原理 http://www.blogjava.net/amigoxie/archive/2014/07/06/415503.html PHP 加密 https://segmentfault. ...

  2. 跨站请求伪造攻击 CSRF

    摘录: 1.跨站点请求伪造 首先,什么是跨站点请求伪造? 跨站点请求伪造-CSRF(Cross Site Request Forgery):是一种网络攻击方式. 说的白话一点就是,别的站点伪造你的请求 ...

  3. 在Keil uv5里面添加STC元器件库,不影响其他元件

    先到网上下载stc.CBD(http://download.csdn.net/detail/mao0514/9699117) 还有STC新系列单片机的头文件,宏晶的网站就有 1.在Keil/C51/I ...

  4. R语言与格式、日期格式、格式转化

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言的基础包中提供了两种类型的时间数据,一类 ...

  5. 图像处理------Canny边缘检测

    一:历史 Canny边缘检测算法是1986年有John F. Canny开发出来一种基于图像梯度计算的边缘 检测算法,同时Canny本人对计算图像边缘提取学科的发展也是做出了很多的贡献.尽 管至今已经 ...

  6. js数组使用JSON.stringify()和toString()的区别,JSON.parse

    JSON.stringify()中的<br><br>var arr = [1,2,3,4]; console.log(arr.toString()); // 1,2,3,4 a ...

  7. WPF基础篇之空间布局

    由于之前自己做的都是大多是B/S架构的项目,加入新公司,公司现在用的WPF,在WPF中一个比较重要的知识点:布局 在网上找到一篇比较好的介绍WPF布局的文章. 文章地址:http://www.cnbl ...

  8. bzoj2969 矩形粉刷

    学习一波用markdown写题解的姿势QAQ 题意 给你一个w*h的矩形网格,每次随机选择两个点,将以这两个点为顶点的矩形内部的所有小正方形染黑,问染了k次之后期望有多少个黑色格子. 分析 一开始看错 ...

  9. 主席树总结(经典区间第k小问题)(主席树,线段树)

    接着上一篇总结--可持久化线段树来整理吧.点击进入 这两种数据结构确实有异曲同工之妙.结构是很相似的,但维护的主要内容并不相同,主席树的离散化.前缀和等思想也要更难理解一些. 闲话 话说刚学习主席树的 ...

  10. 【BZOJ4195】【NOI2015】程序自动分析(并查集)

    [BZOJ4195][NOI2015]程序自动分析(并查集) 题面 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设 ...