codeforces 1217d D. Coloring Edges

2023-11-09

题意:一个有向图,染色,环的边不能只有1个颜色。问需几种颜色及染色方案。

最多2种颜色。无环时1种,有环时2种。用dfs判环,类似tarjan,还在栈中的点又被访问就有环。backedge染2,其他染1.简化一下。如果有环ai<bi的边染1,ai>bi的边染2。正确性似乎正确。

//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#include <bitset>
#include <unordered_set>
#define mkp make_pair
using namespace std;
const double EPS=1e-8;
typedef long long lon;
typedef pair<lon,lon> pii ;
const lon SZ=100010,SSZ=0,APB=26,INF=0x7FFFFFF,mod=1000000007;
lon n,m;
vector<int> mp[SZ];
pii in[SZ];
bool vst[SZ],ok,inq[SZ];

void dfs(int x,int p)
{
    vst[x]=1;
    inq[x]=1;
    for(int i=0;i<mp[x].size();++i)
    {
        int to=mp[x][i];
        //if(to!=p)
        //{
            if(inq[to])ok=1;
            else if(!vst[to])dfs(to,x);
        //}
    }
    inq[x]=0;
}
 
void init()
{
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        int u,v;
        cin>>u>>v;
        mp[u].push_back(v);
        in[i]=mkp(u,v);
    }
    for(int i=1;i<=n;++i)
    if(!vst[i])dfs(i,-1);
    if(ok)
    {
        cout<<2<<endl;
        for(int i=1;i<=m;++i)
        {
            if(i!=1)cout<<" ";
            cout<<(in[i].first<in[i].second?1:2);
        }
        cout<<endl;
    }
    else
    {
        cout<<1<<endl;
        for(int i=1;i<=m;++i)
        {
            if(i!=1)cout<<" ";
            cout<<1;
        }
        cout<<endl;
    }
}
 
void work()
{
    
}
 
int main()
{
    std::ios::sync_with_stdio(0);
    //freopen("d:\\1.txt","r",stdin);
    //lon casenum;
    //cin>>casenum;
    //for(lon tim=1;tim<=casenum;++tim)
    {
        init();
        work();
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/gaudar/p/11521470.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

codeforces 1217d D. Coloring Edges 的相关文章

  • 基于mysql做的商业数据库是违反开源协议的违法行为吧

    这两天某政府部门指派一家国产数据库公司的人到我们公司来测试他们的数据库产品 因为我们的系统是基于mysql的 国家优先扶植国产软件 所以希望我们的系统使用这款国产数据库产品来替换掉mysql 首先他们说了自己的数据库本身就是基于mysql的
  • 小米高通9008授权MiFlash刷机免认证思路

    小米最新机型都对 9008 进行了加锁 即线刷只能fastboot线刷 无法使用 9008 线刷 以后的新机型肯定会继续对 9008 加锁的 这对玩机来说 是一个非常困难事儿了 必须破解之 不然以后新机型都没得玩了 经过我多日的研究 很大概
  • docker安装jenkins---完美解决jenkins插件安装失败问题

    我最近通过docker安装jenkins 发现插件总是无法安装成功 在网上后来终于找到了资料 我就把它整理进来了 1 我的安装环境 我采用的是centos7 在阿里云官网下载的镜像 https mirrors aliyun com cent
  • LingPipe's Competition

    LingPipe s Competition Contributing to this Page If you know of a natural language toolkit that s not listed on this pag
  • 计算机考研复试常问问题 软件工程篇

    1 什么是软件工程 软件工程是指导计算机软件开发和维护的一门工程学科 即利用工程的概念 原理 技术和方法来开发和维护软件 主要的方法 结构化方法 面向对象方法 原型方法等 软件工程三要素 方法 工具和过程 2 软件的生命周期 又称软件生存周
  • 基于Python开发的智能停车场车牌识别计费系统(源码+可执行程序+程序配置说明书+程序使用说明书)

    一 项目简介 本项目是一套基于Python开发的智能停车场车牌识别计费系统 主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者 包含 项目源码 项目文档等 该项目附带全部源码可作为毕设使用 项目都经过严格调试 确
  • 【elasticsearch】elasticsearch节点异常崩溃问题处理

    一 前言 今天对es集群做扩容节点操作 新增了一台节点 启动节点后 没过15分钟 监控报警节点es服务端口异常 第一次看日志并没有发现太明显的错误 于是并没有做操作 直接将该节点重新启动 结果不到10分钟时间 节点又崩溃了 看来得排查下问题
  • 【操作系统】王道考研 p16 调度算法:时间片轮转、优先级调度、多级反馈队列调度算法

    视频 知识总览 时间片轮转 RR Round Robin 常用于分时操作系统 更注重 响应时间 因此此处不计算周转时间 算法思想 公平地 轮流地为各个进程服务 让每个进程在一定时间间隔内都可以得到相应 算法规则 按照各进程到达就绪队列的顺序
  • LTE上行SC-FDMA 下行采用OFDMA的原因

    LTE下行是OFDMASC FDMA Single carrier Frequency Division Multiple Access 单载波频分多址 是LTE的上行链路的主流多址SC FDMA是单波载 Single carrier 与O
  • 进程调度的过程以及进程与线程的区别

    一 什么是进程 进程是操作系统对一个正在运行的程序的一种抽象 换言之 可以把进程看作程序的一次运行过程 同时 在操作系统内部 进程又是操作系统进行资源分配的基本单位 注意以上的运行出来的可执行程序 这些程序就是 进程 二 那么操作系统是如何
  • 中国移动:《2020年区块链+边缘计算白皮书》 PDF文字版

    中国移动 2020年区块链 边缘计算白皮书 PDF文字版 下载 访问密码 168168 中国移动5G联合创新中心与中兴通讯 区块链技术与数据安全工业和信息化部重点实验室 北京大学新一代信息技术研究院合作 共同发布了 区块链 边缘计算白皮书
  • 低版本Mac OS安装合适xcode的方法

    在虚拟机上安装完Mac OS10 14 在Apple Store上准备安装xcode时出现 xcode 不能安装在 Macintosh HD 上 因为需要 OS X V10 14 3 或更高版本 导致无法安装Xcode 如图 解决方法 不在
  • Oracle sql 判断某个字段不等于某个值

    看着很简单的一个问题 直接写sql select from user where userName 张三 但是运行一下 就会发现 如果userName有null值 那null值的记录也查不出来了 就是这么神奇 正确的sql select f
  • 手机已经开启调试模式还提示This adb server‘s $ADB_VENDOR_KEYS is not setTry ‘adb kill-server‘ if that seems wrong

    手机已经开启调试模式还提示This adb server s ADB VENDOR KEYS is not set Try adb kill server if that seems wrong Otherwise check for a
  • WPS进行分类汇总计算,并且提取统计结果的详细步骤

    1 首先选中要进行分类统计的数据 2 选择 数据 选项 3 然后找到 分类汇总 选项 再次弹出对话框 选择按照那一列进行分类汇总 并选择统计的计算方法 点击确定 5 默认统计结果都会在每一组的下一行 点击 隐藏明细数据 选项 即可仅显示统计
  • java软件工程师工作业绩_java软件工程师的工作描述怎么写

    展开全部 1 负责研发62616964757a686964616fe4b893e5b19e31333365656636公司应用软件的模块设计 开发和交付 2 负责编码 单元测试 3 按照功能组件的详细设计 4 对其他软件工程师的代码进行审核
  • 【网络】nmcli 网络管理工具

    目录 nmcli 命令 前提 重启网络服务 重启网卡 实例 nmcli输出说明 3种网络配置方法 nmcli的命令参数 Tips ethtool 命令 IP命令 添加网卡到配置文件 Linux系统怎么查看网卡的UUID nmcli 命令 原
  • 4:Git的树对象

    树对象 tree object 它能解决文件名保存的问题 就是树对象有自己的名字 也允许我们将多个文件组织到一起 Git 以一种类似于 UNIX 文件系统的方式存储内容 所有内容均以树对象和数据对象 git 对象 的形式存储 其中树对象对应
  • 本地Linux服务器安装宝塔面板,并内网穿透实现公网远程登录

    文章目录 前言 1 安装宝塔 2 安装cpolar内网穿透 3 远程访问宝塔 4 固定http地址 5 配置二级子域名 6 测试访问二级子域名 转载自cpolar极点云文章 Linux安装宝塔 并实现公网远程登录宝塔面板 内网穿透 前言 宝
  • 【软件测试学习笔记】黑盒测试方法及案例

    文章目录 一 黑盒测试基本概念 二 黑盒测试的主要目的 三 优缺点 优点 缺点 四 黑盒测试的策略 五 黑盒测试方法 等价类划分 分类 划分方法 原则 等价类划分案例 边界值分析法 原则 边界值分析法案例 因果图法 四种因果关系 五种约束

随机推荐

  • 05

    1 Harbor简介 Harbor是由VMWare公司开源的容器镜像仓库 实际上 Harbor是在Docker Registry上进行相应的企业级扩展 从而获得了更加广泛的应用 组件 功能 harbor adminserver 配置管理中心
  • CentOS7安装MySQL5.7.26

    安装MySQL 在CentOS中默认安装有MariaDB 这个是MySQL的分支 但为了需要 还是要在系统中安装MySQL 而且安装完成之后可以直接覆盖掉MariaDB 下载并安装MySQL官方的 Yum Repository root l
  • django添加数据库字段进行数据迁移

    1 修改view py里面的变量 2 在model py新增字段 3 打开terminal并将环境切到项目所在环境 切换方式为 4 执行命令 python manage py makemigrations backend python ma
  • Redis(主从复制、哨兵模式、集群)概述及部署

    目录 引言 壹 Redis主从复制 一 Redis的高可用 二 Redis持久化 1 Redis 提供两种方式进行持久化 2 RDB 持久化 三 Redis主从复制 1 Redis主从复制的概念 2 Redis主从复制 四 Redis主从复
  • Linux系统删除文件夹下所有文件

    这篇文章来为大家介绍一下如何在 Linux 系统下删除文件 当 Linux 系统使用时间过长以后 难免会产生一些垃圾文件 这些文件除了会占用磁盘空间之外还会降低系统的运行效率 所以长时间运行后我们需要及时的清理一下这些垃圾文件 rm 是一个
  • 基于Hadoop的云盘系统上传和下载效率优化及处理大量小文件的解决方法

    基于任何平台实现的云盘系统 面临的首要的技术问题就是客户端上传和下载效率优化问题 基于Hadoop实现的云盘系统 受到Hadoop文件读写机制的影响 采用Hadoop提供的API进行HDFS文件系统访问 文件读取时默认是顺序 逐block读
  • 第7章 指针 第6题

    题目 Julian历法是用年及这一年中的第几天来表示日期 设计一个函数将Julian历法表示的日期转换成月和日 如Mar8 注意闰年的问题 函数返回一个字符串 即转换后的月和日 如果参数有错 如天数为第370天 返回NULL 代码 incl
  • superset官方文档的安装和配置

    原文 https superset incubator apache org installation html 下载 git clone https github com apache incubator superset cd incu
  • 数据结构-----顺序表与单链表的实现

    1 顺序表 实现顺序表的初始化 插入 删除 查找 逆置 合并等操作 include
  • Python numpy函数:reshape()

    reshape 是数组对象中的方法 用于改变数组的形状 形状变化是基于数组元素不能改变的 变成的新形状中所包含的元素个数必须符合原来元素个数 如果数组元素发生变化的时候 就会报错 reshape函数生成的新数组和原始数组公用一个内存 也就是
  • 【数据库】数据库入门(七): 函数依赖(Functional Dependencies)

    前言 一个设计良好的数据库模式 database schema 应该要具备以下特点 完整性 Completeness 减少冗余 Redundancy freeness 一致的含义 Consistent understanding 良好的性能
  • QFileInfo获取文件信息

    它可以获取很多文件的信息 比如文件的大小 文件的类型 文件的创建日期等等 下面是获取一些文件信息的方法 先要头文件 include
  • 跨境市场下一个蓝海:区块链+跨境支付?

    全球经济的现在需要跨境支付的场景越来越多 比如出国旅游 求学 海外购物等 但是跨境支付中会面临高昂手续费 交易过程繁琐 收款时间漫长等问题 跨境市场 下一个蓝海 随着近年来跨境电商的迅猛发展 越来越多的优质海外商品郑加速进入中国市场 跨境市
  • vite --- 为什么选Vite

    目录 什么是Vite 为什么选Vite 现实问题 为什么生产环境仍需打包 Vite 与竞品 什么是Vite Vite 法语意为 快速的 发音 vit 发音同 veet 是一种新型前端构建工具 能够显著提升前端开发体验 它主要由两部分组成 一
  • 版本号的正则表达式

    验证版本号的正则表达式 要求 必须是三位 x x x的形式 每位x的范围分别为1 99 0 99 0 99 不允许的情况0 x x 01 x x x 0x x x 00 x x x 00 x x 0x 满足这些条件的正则为 1 9 d 1
  • 电路基础_模拟电路_问答_2023_02

    101 图解分析法 饱和失真和截止失真都是由晶体管输入 输出特性的非线性造成 统称为非线性失真 为减小非线性失真 必须合理选择静态工作点的位置并适当限制输入信号的幅度 图解法分析放大器 1 确定静态工作点 分析电路参数对Q点的影响 2 根据
  • Android http网络请求设置以及设置网络权限

    在project下 一 HTTP网络请求设置 第一步 在res的xml目录下 新建一个xml文件 名称 network security config xml 在 network security config xml 中添加代码
  • 准备离职搞ue4

    确实不合适搞webgl 我决定离职了 得到一个offer UE4 估计看我c 图形学还行吧 年龄偏大 没有UE4经验 也没有长期游戏经验 所以ue4岗位被拒很多 工作机会来之不易 得拼命干了 憋着一肚子气 webgl再努力 也是难以发挥 哎
  • C++ 基础技术再深入(模板)template parameter和template argument(10)---《C++ Templates》

    参数化声明 template和class或者function的区别在于templates声明语句有一个参数化子句 template lt parameters here gt 或者 export template lt parameters
  • codeforces 1217d D. Coloring Edges

    题意 一个有向图 染色 环的边不能只有1个颜色 问需几种颜色及染色方案 最多2种颜色 无环时1种 有环时2种 用dfs判环 类似tarjan 还在栈中的点又被访问就有环 backedge染2 其他染1 简化一下 如果有环ai