少女
来源:互联网 发布:7.0魔兽世界mac客户端 编辑:程序博客网 时间:2024/04/26 03:30
少女在图上开车,她们希望把图上每条边分配给与其相连的点中的一个,
并且每个点最多被分配一条边,问可能的方案数。
【输入格式】
第一行两个整数 N ,M代表点数和边数。
接下来N行每行两个整数代表一条边。
【输出格式】
一行一个整数代表答案对10 E9 + 7取模之后的值。
【样例输入】
5 4
1 2
3 2
4 5
4 5
【样例输出】
6
树中方案为size,有环即为2.
#include <cstdio>#include <iostream> #define ll long longusing namespace std;const int maxm=210000;const int mod=1e9+7;int head[maxm],to[2*maxm],net[2*maxm];ll cnt,size,m;int n;bool cir;bool vis[maxm];void add(int x,int y){ cnt++; to[cnt]=y; net[cnt]=head[x]; head[x]=cnt;}void dfs(int x,int fat){ size++; vis[x]=1; for(int i=head[x];i;i=net[i]) if(to[i]!=fat) { if(vis[to[i]]) cir=1; else dfs(to[i],x); } return;}int main(){ freopen("girl.in","r",stdin);freopen("girl.out","w",stdout); scanf("%d%lld",&n,&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); add(x,y); add(y,x); } ll ans=1; for(int i=1;i<=n;i++) if(!vis[i]) { size=0,cir=0; dfs(i,0); if(cir) ans=(ans*2ll)%mod; else ans=(ans*1ll*size)%mod; //printf("%d ",size); } printf("%lld",ans%mod);}
阅读全文
0 0
- 少女
- 文学少女
- 神话少女
- 深海少女
- 少司命少女
- 少女时代
- 地狱少女....
- 魔法少女
- 魔法少女
- “无知少女”
- 魔法少女
- 魔法少女
- 少女的日记
- 少女的初夜
- 门井亚矢美少女画集《花》
- 火龙少女 English版
- 清纯美少女
- 美少女梦工场4
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程
- 正则验证正整数表达式
- 中药材种植环节追溯调研计划
- 错误1error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared
- EXPLAIN执行计划
- 少女
- 关于Eclipse里option标签报错的解决方案
- jQuery的stop()
- 在JS中根据身份证号计算出生日期和年龄
- C/C++分别读取文件,以空格为分隔符
- 《Unity Shader入门精要》 第三章学习笔记
- ubuntu17.04安装wps
- 抢啥iPhoneX!ofo小黄车的移动物联网黑科技同样魅力指数爆表
- Android属性之excludeFromRecents