【题目描述】有n个点和m条关系。只有集合i的点才会和集合i+1的点连边,特别的集合k的点可以和集合1连边(构成一个蛇咬尾的环形)。给定的关系和点之后,问k的最小值最大值是多少。(约定k≥3)

【分析】只有环会对集合产生约束性,(链可以困成一卷一卷的)。所有环的最小公因数(最小周期,小环转1圈,大环转n圈)就是k的最大值。最小值就是k≥3的最小约数。如果最小公因数(周期)小于3,那么信息有误,输出“-1 -1”。

【code】

#include <cmath>
#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
#define f first
#define s second
using namespace std;
const int maxn=1e5+1000;
struct wtfd{int bh;vector<int>zb,fb;
}d[maxn];
int n,m;
int ans;
int lc[3];
bool alr[maxn];
pair<int,int>b[maxn*10];
inline void read(int &x){x=0;char tmp=getchar();while(tmp<'0'||tmp>'9') tmp=getchar();while(tmp>='0'&&tmp<='9') x=(x<<1)+(x<<3)+tmp-'0',tmp=getchar();
}
int gcd(int a,int b){if (b==0) return a;else return gcd(b,a%b);
}
void dfs(int dq,int bh){if (!alr[dq]){alr[dq]=true;d[dq].bh=bh;lc[1]=std::min(lc[1],bh);lc[2]=std::max(lc[2],bh);for(unsigned int i=0;i<d[dq].zb.size();++i)dfs(d[dq].zb[i],bh+1);for(unsigned int i=0;i<d[dq].fb.size();++i)dfs(d[dq].fb[i],bh-1);}else ans=gcd(ans,abs(bh-d[dq].bh));
}
int main(){freopen("party.in","r",stdin);freopen("party.out","w",stdout);cin>>n>>m;for (int i=0;i<m;++i)read(b[i].f),read(b[i].s);sort(b,b+m);d[b[0].f].zb.push_back(b[0].s);d[b[0].s].fb.push_back(b[0].f);for(int i=1;i<m;++i){if(b[i].s!=b[i-1].s||b[i].f!=b[i-1].f){d[b[i].f].zb.push_back(b[i].s);d[b[i].s].fb.push_back(b[i].f);}}for(int i=1;i<=n;++i)if(!alr[i]){dfs(i,0);lc[0]+=lc[2]-lc[1]+1;lc[1]=lc[2]=0;}if(ans>=3){for(int i=3;i<=ans/2;++i)if(ans%i==0){cout<<ans<<' '<<i<<endl;return 0;}cout<<ans<<' '<<ans<<endl;return 0;}if (ans==0&&lc[0]>=3){cout<<lc[0]<<' '<<3<<endl;return 0;}printf("-1 -1\n");
}

noi2008 假面舞会相关推荐

  1. 图论 公约数 找环和链 BZOJ [NOI2008 假面舞会]

    BZOJ 1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1655  Solved: 798 [Submit] ...

  2. 【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链

    luogu 1477 [NOI2008] 假面舞会 容易发现: 如果图中没有环,那么面具种数一定是所有联通块内最长链之和,最少为 \(3\) . 如果有环,则面具种数一定是所有环的大小的最大公约数. ...

  3. bzoj 1064: [Noi2008]假面舞会(DFS)

    1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2240  Solved: 1083 [Submit][Sta ...

  4. [Noi2008]假面舞会(dfs判环)

    [Noi2008]假面舞会 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具 ...

  5. [BZOJ]1064 [NOI2008] 假面舞会 dfs判环

    1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2160  Solved: 1047 [Submit][Sta ...

  6. 【BZOJ1064】[Noi2008]假面舞会 DFS树

    [BZOJ1064][Noi2008]假面舞会 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择 ...

  7. 1064: [Noi2008]假面舞会

    1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1960  Solved: 941 [Submit][Stat ...

  8. 【图论 搜索】bzoj1064: [Noi2008]假面舞会

    做到最后发现还是读题比赛:不过还是很好的图论题的 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选 ...

  9. [NOI2008] 假面舞会

    题目描述 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会. 今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一个自己喜欢的面具.每个面具都有一个编号,主办方会把此编号告 ...

  10. [NOI2008]假面舞会

    日常题目描述: 题目描述 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会. 今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号, ...

最新文章

  1. JS学习之路之JavaScript match() 方法
  2. matplotlib.pyplot分区绘图
  3. .ASP NET Core中缓存问题案例
  4. 在res/values下创建attrs.xml
  5. 常见的通配符_技术干货 | 常见的mysql注入语句
  6. 算法达人看过来!你一展身手的好机会来了!
  7. Java Programming Test Question 2
  8. Navicat使用教程:获取MySQL中的行数(第1部分)
  9. 掘金企服:ICP经营许可证和ICP备案的区别
  10. USB转串口,JLINK驱动安装(亲测有效)
  11. 微信小程序弹框wx.showModal如何修改样式
  12. 如何成为一名合格的算法工程师?我们做了一次技能拆分…
  13. java遍历Map效率最高的方式
  14. apktool 回编译说文件名或扩展名太长
  15. alg 停用sip_如何关闭常用品牌的防火墙或路由器的SIP ALG功能
  16. 中国ROHS 2.0 ---sj/t 11364-2014
  17. ThinkpadE450 Win8改Win7 BIOS设置图解
  18. h5php大转盘抽奖,Vue.js实现大转盘抽奖总结及实现思路
  19. 写的一个58获取房东手机号,爬虫,奈何号码都是加密,练手用
  20. html5 arc 椭圆,html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形

热门文章

  1. 用Java编写日历表(3种方式)
  2. 实验3 手写字体识别【机器学习】
  3. 应急照明市电检测_A型0.5KVA应急照明集中电源ty-d市电检测 市电监测
  4. 【C语言入门】SDUT《程序设计基础I 》实验2-选择结构程序设计题解 c语言语法讲解
  5. es启动错误max number of threads [3802] for user [elasticsearch] is too low, increase to at leas
  6. 维修服务器bga是什么,BGA芯片元器件坏了怎么拆除焊死的BGA?
  7. win8信息服务器不可用怎么办,win8系统rpc服务器不可用怎么办?提示rpc服务器不可用处理方法介绍...
  8. 讯搜 配置mysql_迅搜使用指南
  9. 宋宝华- KVM最初的2小时(KVM从入门到入不了门)
  10. 苦瓜红烧肉这么做,每次做连汤汁都不剩