比赛场次 648
比赛名称 20241128
比赛状态 已结束比赛成绩
开始时间 2024-11-28 07:30:00
结束时间 2024-11-28 12:00:00
开放分组 全部用户
注释介绍
题目名称 有趣的旅行
输入输出 journey.in/out
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar黄天乐 AWWWWWWWWW 2.221 s 3.30 MiB 10
Gravatar黄天宇 AWWWWWWWWW 2.261 s 3.33 MiB 10

有趣的旅行

★★★   输入文件:journey.in   输出文件:journey.out   简单对比
时间限制:2 s   内存限制:512 MiB

【题目描述】

D 国有 $n$ 个城市,有 $m$ 条双向铁路,每条铁路连接两个不同的城市,使得任意两个城市都可以经过若干条铁路互相到达,而且任意两个城市之间只有至多一条铁路直接相连。

我们定义“有趣的旅行”是从某个城市出发、经过若干(至少 $1$)条铁路、并最终回到出发城市,并且不经过任意一条铁路或城市超过一次的路径。

小 C 猜想,所有“有趣的旅行”的长度(经过铁路条数)都是一样的。现在小 C 问你这个猜想是否正确,并且如果正确的话小 C 还想知道有多少条“有趣的旅行”。由于答案很大,你只需要输出答案对 $1000000007$ 取模的余数。

【输入格式】

输入第一行两个非负整数 $n, m$,分别表示 D 国的城市数和铁路数。

接下来 $m$ 行,每行两个正整数 $a, b$,表示有一条从城市 $a$ 到城市 $b$ 的双向铁路。

【输出格式】

如果没有“有趣的旅行”,输出none

否则,如果有“有趣的旅行”,但长度不全相同,输出no

否则,第一行输出yes,第二行输出两个正整数,以一个空格隔开,分别表示“有趣的旅行”的长度和数量对 $1000000007$ 取模的余数。

【样例1输入】

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

【样例1输出】

yes
3 12

【样例1说明】

所有 12 个“有趣的旅行”为:1-2-3-1, 1-3-2-1, 2-1-3-2, 2-3-1-2, 3-1-2-3, 3-2-1-3, 1-4-5-1,1-5-4-1, 4-1-5-4, 4-5-1-4, 5-1-4-5, 5-4-1-5。

【样例2输入】

12 14
1 2
2 4
3 1
4 3
4 5
5 6
6 7
7 8
8 4
7 9
9 12
12 11
11 10
10 6

【样例2输出】

no

【样例下载】

样例下载

【数据规模与约定】

对于 $30\%$的数据,$1\leq n\leq 200,0\leq m\leq 400$。

对于 $100\%$的数据,$1\leq n\leq 5\times 10^5,0\leq m\leq 10^6,1\leq a,b\leq n,a\neq b$。