[Wf2015]Tours

题目

给定一张n个点m条边的无向图,你需要选择一个颜色种类数k,然后用这k种颜色给每条边染色,要求对于图中任意一个简单环,每种颜色的边的数量都相同,求所有可行的k

INPUT

第一行两个正整数n,m
接下来m行,每行两个正整数x,y(1<=x<y<=n),代表一条无向边
数据保证无重边无自环

OUTPUT

一行输出所有可行的k,按递增顺序输出 6 6 1 2 2 3 1 3 1 4 2 5 3 6

SAMPLE

INPUT

6 6
1 2
2 3
1 3
1 4
2 5
3 6

OUTPUT

1 3

解题报告

其实这道题的关键在于找到每个简单环的边数,所以我们考虑如何处理简单环

显然,在一个简单环中,删去一条边,剩下的边就会变为割边

所以就可以得出做法:枚举原图非桥边,删去该边,处理出新增的桥边数量,所有数量+1的$GCD$所有的因数即为答案

 #include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
inline int read(){
int sum();char ch(getchar());
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';sum=sum*+(ch^),ch=getchar());
return sum;
}
int n,m,tot,ans(-);
int dfn[],low[],cnt,tmp;
int fro[],to[];
bool bridge[],vis[];
struct edge{
int e,id;
edge *n;
}*pre[],a[];
inline void insert(int s,int e,int id){
a[++tot].e=e;
a[tot].id=id;
a[tot].n=pre[s];
pre[s]=&a[tot];
}
inline void init(){
memset(pre,NULL,sizeof(pre));
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
tot=cnt=tmp=;
}
inline void tarjan(int u,int fa){
dfn[u]=low[u]=++cnt;
for(edge *i=pre[u];i;i=i->n){
int e(i->e);if(e==fa)continue;
if(!dfn[e]){
tarjan(e,u);
low[u]=min(low[u],low[e]);
if(low[e]>dfn[u])bridge[i->id]=;
}
else low[u]=min(low[u],dfn[e]);
}
}
inline void dfs(int u,int fa){
dfn[u]=low[u]=++cnt;
for(edge *i=pre[u];i;i=i->n){
int e(i->e);if(e==fa)continue;
if(!dfn[e]){
dfs(e,u);
low[u]=min(low[u],low[e]);
if(low[e]>dfn[u]&&bridge[i->id]==)++tmp,vis[i->id]=;
}
else low[u]=min(low[u],dfn[e]);
}
}
inline int gcd(int x,int y){
return x%y?gcd(y,x%y):y;
}
int main(){
n=read();m=read();
for(int i=;i<=m;++i){
int x(read()),y(read());
fro[i]=x;to[i]=y;
insert(x,y,i);insert(y,x,i);
}
for(int i=;i<=n;++i)
if(!dfn[i])
tarjan(i,);
for(int i=;i<=m;++i){
if(bridge[i]||vis[i])continue;
init();
// for(int j=1;j<=m;++j)cout<<j<<' '<<bridge[j]<<endl;cout<<endl;//cout<<"ban "<<i<<endl;
for(int j=;j<=m;++j)
if(j^i){//cout<<j<<' '<<fro[j]<<' '<<to[j]<<endl;
insert(fro[j],to[j],j);
insert(to[j],fro[j],j);
}
for(int j=;j<=n;++j)
if(!dfn[j])
dfs(j,);
// for(int j=1;j<=m;++j)cout<<j<<' '<<bridge[j]<<endl;cout<<endl;
if(ans==-)ans=tmp+;
else ans=gcd(ans,tmp+);
// cout<<tmp<<' '<<ans<<endl;
}
// cout<<ans<<endl;
for(int i=;i<=ans;++i)
if(ans%i==){
printf("%d",i);
if(i^ans)putchar(' ');
}
}

[Wf2015]Tours的更多相关文章

  1. BZOJ4116 : [Wf2015]Tours

    将边集划分成若干极大不相交集合,满足每个简单环都可以由某些集合相加得到,则答案就是这些集合大小的$\gcd$的约数. 对于一个简单环,上面的边一定不是桥边,而和它在一个集合的边肯定不在其他简单环上.因 ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  3. Web Tours自带示例网站无法打开的解决方案

    问题现象: LoadRunner自带的测试样品,旅行社机票预订系统HP Web Tours以下简称为Web Tours. 1.LoadRunner程序的Sample目录下无Web和Web Tours服 ...

  4. URAL 1077 Travelling Tours(统计无向图中环的数目)

    Travelling Tours Time limit: 1.0 secondMemory limit: 64 MB There are N cities numbered from 1 to N ( ...

  5. HP Web Tours分析

    1.启动Web Tours 2.首页结构 3.预定机票

  6. USACO 2.4 Cow Tours

    Cow Tours Farmer John has a number of pastures on his farm. Cow paths connect some pastures with cer ...

  7. BZOJ 4108: [Wf2015]Catering [上下界费用流]

    4108: [Wf2015]Catering 题意:有一家装备出租公司收到了按照时间顺序排列的n个请求. 这家公司有k个搬运工.每个搬运工可以搬着一套装备按时间顺序去满足一些请求.一个搬运工从第i个请 ...

  8. 【BZOJ4108】[Wf2015]Catering 有上下界费用流

    [BZOJ4108][Wf2015]Catering Description 有一家装备出租公司收到了按照时间顺序排列的n个请求. 这家公司有k个搬运工.每个搬运工可以搬着一套装备按时间顺序去满足一些 ...

  9. 洛谷P1522 牛的旅行 Cow Tours

    ---恢复内容开始--- P1522 牛的旅行 Cow Tours189通过502提交题目提供者该用户不存在标签 图论 USACO难度 提高+/省选-提交该题 讨论 题解 记录 最新讨论 输出格式题目 ...

随机推荐

  1. 转-解决Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)   Red Hat Enterpr ...

  2. jmeter(一)工具介绍(二)

    1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...

  3. js基础盲点

    var myarray= new Array(8); //创建数组,存储8个数据. 注意:1.创建的新数组是空数组,没有值,如输出,则显示undefined.2.虽然创建数组时,指定了长度,但实际上数 ...

  4. Vuex/Vue 练手项目 在线汇率转换器

    详情请点击: https://zhuanlan.zhihu.com/p/33362758

  5. Ubuntu Linux14 64位下在Android studio下用gradle编译Andrid项目时发生libz.so.1共享库找不到的解决方法。

    ---恢复内容开始--- 我在Ubuntu14 64为下安装了AS,但在用Gradle编译项目时总是报找不到 libz.so.1的错误. error while loading shared libr ...

  6. Codeforces_791_B. Bear and Friendship Condition_(dfs)

    B. Bear and Friendship Condition time limit per test 1 second memory limit per test 256 megabytes in ...

  7. SpringCloud 微服务框架

    学习资源:https://ke.qq.com/course/280057 知识体系分为以下几点: 1)使用Eureka搭建注册中心,包括 服务生产者.服务消费者(也称服务注册与发现): Zookeep ...

  8. CREATE TABLE - 定义一个新表

    SYNOPSIS CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( { column_name data_ty ...

  9. webstorm 创建es6项目 babel 转 es5

    node 安装 webstorm 安装 略过 npm install -y //生成package.json npm install babel-cli -g //全局安装babel-cli npm ...

  10. asp 数据库 模块化 - 思路是没一个页面有一个自己的数据类 这里用nPath表示

    <!--#include file="db_class.asp" --> <% '当前页面数据 nPath = "..\..\.." 't模块 ...