【BZOJ3444】最后的晚餐 乱搞
【BZOJ3444】最后的晚餐
Description
Input
Output
Sample Input
1 2
4 3
Sample Output
【数据范围】
100%的数据,0<n≤500000,1≤Ai,Bi≤n,0≤m≤n,保证没有人自恋。
题解:如果方案不为0的话,最终的情况一定是形成若干个链和若干个单点。我们可以任意安排链和单点的排列顺序,并且每个链可以反向,所以答案就是((链+单点)!*2^链)。
那什么情况是不合法的呢?1.有一个人的度数>2,这个记录一下度数就行。2.链中形成了环,这个可以用并查集。
注意a和b相互喜欢的情况!
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
typedef long long ll;
const ll P=989381;
const int maxn=500010;
int n,m;
int c1,c0;
int d[maxn],f[maxn],to[maxn];
ll ans;
inline int rd()
{
int ret=0,f=1; char gc=getchar();
while(gc<'0'||gc>'9') {if(gc=='-')f=-f; gc=getchar();}
while(gc>='0'&&gc<='9') ret=ret*10+gc-'0',gc=getchar();
return ret*f;
}
int find(int x)
{
return (f[x]==x)?x:f[x]=find(f[x]);
}
int main()
{
n=rd(),m=rd();
int i,a,b;
for(i=1;i<=n;i++) f[i]=i;
for(i=1;i<=m;i++)
{
a=rd(),b=rd(),to[a]=b;
if(to[b]==a) continue;
d[a]++,d[b]++;
if(find(a)==find(b))
{
printf("0");
return 0;
}
f[f[a]]=f[b];
}
for(i=1;i<=n;i++)
{
if(d[i]==1) c1++;
if(d[i]==0) c0++;
if(d[i]>2)
{
printf("0");
return 0;
}
}
c1>>=1,ans=1;
for(i=1;i<=c1+c0;i++) ans=ans*i%P;
for(i=1;i<=c1;i++) ans=(ans<<1)%P;
printf("%lld",ans);
return 0;
}
【BZOJ3444】最后的晚餐 乱搞的更多相关文章
- BZOJ3444 最后的晚餐【细节题+组合数学】*
BZOJ3444 最后的晚餐 Description [问题背景] 高三的学长们就要离开学校,各奔东西了.某班n人在举行最后的离别晚餐时,饭店老板觉得十分纠结.因为有m名学生偷偷找他,要求和自己暗恋的 ...
- URAL 1827 Indigenous Wars(排序、乱搞)
题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...
- 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
4692: Beautiful Spacing Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 46 Solved: 21[Submit][Statu ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 159[Submit][Status][ ...
- 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 70 Solved: 24[Submit][Status][D ...
- SCOI 2013 密码 & 乱搞
题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...
- 种树 & 乱搞
题意: 在一个(n+1)*(m+1)的网格点上种k棵树,树必须成一条直线,相邻两棵树距离不少于D,求方案数. SOL: 这题吧...巨坑无比,本来我的思路是枚举每一个从(0,0)到(i,j)的矩形,然 ...
随机推荐
- SAP MM模块 经常使用函数
1. MM_CURRENT_PRICE_DOCUMENT 2. ME_READ_HISTORY 获取採购行项目的历史记录 CALL FUNCTION 'ME_READ_HISTORY' ...
- Linux——Ubuntu下Sublime Text 2的安装
Sublime Text 2是一款共享软件,收费但可以永久免费试用的编辑器,价格是59个美刀,相信开发者一定不了解中国人,也不面对中国市场,.言归正传,ST2编辑功能强大,好评如潮,在Windows/ ...
- undefined reference to `std::cout'等错误
(1)gcc和g++都是GNU(组织)的一个编译器. (2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理.而gcc不然,gcc会把.c的程序处理成c程序. (3)对于.cpp ...
- 基于React实现的【绿色版电子书阅读器】,支持离线下载
代码地址如下:http://www.demodashi.com/demo/12052.html MyReader 绿色版电子书阅读器 在线地址:http://myreader.linxins.com ...
- css之定位学习
如需转载烦请注明出处: 英文原文:http://www.vanseodesign.com/css/css-positioning/ 中文译文:http://www.w3cplus.com/blog/p ...
- springboot学习(六) springboot开发web应用
1.简介 Spring Boot非常适合开发web应用程序.你可以使用内嵌的Tomcat,Jetty或Undertow轻轻松松地创建一个HTTP服务器.大多数的web应用都使用spring-boot- ...
- Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾 1 版本12 (ing)4 1.1 无映射nas系统..4 1.2 图片简介搜刮其4 1.3 12.8. 电影图片增加png, ...
- match函数
match(s, r [, a]) Return the position in s where the regular expression r occurs, or 0 if r is not p ...
- shell脚本之read工具
#!/bin/bash # -*- coding: utf-8 -*- # echo -n "please input your name: " read name echo &q ...
- js中级系列三:前端性能优化
原文链接:http://www.cnblogs.com/xxcanghai/p/5205998.html 链接:http://www.zhihu.com/question/21658448/answe ...