一道纯粹的容斥原理题!!不过有一个trick,就是会出现重复的,害我WA了几次!!

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<set>
#include<vector>
#define ll long long
#define mod 55566677
using namespace std;
int p[],ans;
int m,n;
bool visd[],visc[],vis[][];
struct point
{
int a,b;
}q[];
void dfs(int s,int i,int f)
{
ans=(ans+f*p[n-s])%mod;
while(ans<) ans=(ans+mod)%mod;
for(int k=i+;k<m;k++){
if(!visd[q[k].a]&&!visc[q[k].b]){
visd[q[k].a]=;
visc[q[k].b]=;
dfs(s+,k,-f);
visd[q[k].a]=;
visc[q[k].b]=;
}
}
}
int main()
{
int i,a,b,j;
p[]=p[]=;
for(i=;i<=;i++) p[i]=((ll)p[i-]*i)%mod;
while(scanf("%d%d",&n,&m)!=EOF){
memset(vis,,sizeof(vis));
memset(visd,,sizeof(visd));
memset(visc,,sizeof(visc));
for(j=i=;i<m;i++){
scanf("%d%d",&a,&b);
if(!vis[a][b]){
vis[a][b]=;
q[j].a=a;
q[j++].b=b;
}
}
m=j;
ans=;
for(i=;i<m;i++){
visd[q[i].a]=;
visc[q[i].b]=;
dfs(,i,);
visd[q[i].a]=;
visc[q[i].b]=;
}
ans=(p[n]-ans)%mod;
while(ans<) ans=(ans+mod)%mod;
printf("%d\n",ans);
}
return ;
}

ZOJ 3687 The Review Plan I 容斥原理的更多相关文章

  1. ZOJ 3687 The Review Plan I

    The Review Plan I Time Limit: 5000ms Memory Limit: 65536KB This problem will be judged on ZJU. Origi ...

  2. (转)ZOJ 3687 The Review Plan I(禁为排列)

    The Review Plan I Time Limit: 5 Seconds      Memory Limit: 65536 KB Michael takes the Discrete Mathe ...

  3. The Review Plan I-禁位排列和容斥原理

    The Review Plan I Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB   64-bit integer ...

  4. zoj.3868.GCD Expectation(数学推导>>容斥原理)

    GCD Expectation Time Limit: 4 Seconds                                     Memory Limit: 262144 KB    ...

  5. ACM学习历程—ZOJ 3868 GCD Expectation(莫比乌斯 || 容斥原理)

    Description Edward has a set of n integers {a1, a2,...,an}. He randomly picks a nonempty subset {x1, ...

  6. ZOJ 3687

    赤裸的带禁区的排列数,不过,难点在于如何用程序来写这个公式了.纠结了好久没想到,看了看别人的博客,用了DFS,实在妙极,比自己最初想用枚举的笨方法高明许多啊.\ http://blog.csdn.ne ...

  7. harukaの赛前日常

    REMEMBER US. haruka是可爱的孩子. 如题,此博客用来记录我停课后的日常. Dear Diary 10.8 上午考试. T1,直接枚举每一个点最后一次被修改的情况.(100pts) T ...

  8. [容斥原理] zoj 3556 How Many Sets I

    主题链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=4535 How Many Sets I Time Limit: 2 ...

  9. ZOJ 3233 Lucky Number --容斥原理

    这题被出题人给活活坑了,题目居然理解错了..哎,不想多说. 题意:给两组数,A组为幸运基数,B组为不幸运的基数,问在[low,high]区间内有多少个数:至少被A组中一个数整除,并且不被B中任意一个数 ...

随机推荐

  1. K. Random Numbers(Gym 101466K + 线段树 + dfs序 + 快速幂 + 唯一分解)

    题目链接:http://codeforces.com/gym/101466/problem/K 题目: 题意: 给你一棵有n个节点的树,根节点始终为0,有两种操作: 1.RAND:查询以u为根节点的子 ...

  2. P-R曲线及与ROC曲线区别

    一.P-R曲线 P-R曲线刻画查准率和查全率之间的关系,查准率指的是在所有预测为正例的数据中,真正例所占的比例,查全率是指预测为真正例的数据占所有正例数据的比例. 即:查准率P=TP/(TP + FP ...

  3. Lucene7.2.1系列(三)查询及高亮

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 一 准备 创建项目并添加Maven依赖 <dependenc ...

  4. Power Profiles for Android

    http://source.android.com/devices/tech/power.html Battery usage information is derived from battery ...

  5. MySQL登录问题1045 (28000)处理步骤【原创】

    MySQL登录问题1045 (28000)  俩台服务器主从复制,从的同步账号无法远程登录主服务器.报错ERROR 1045 (28000): Access denied for user 'root ...

  6. 前端nginx时,让后端tomcat记录真实IP【转】

    对于nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP.因此,需要对nginx.tomcat做如 ...

  7. 一起来学redis(一)

    redis是一个开源的,高性能的,基于键值对的缓存与存储系统通过提供多种键值数据类型来适应不同场景下的缓存与存储需求. 同时redis的诸多高层级功能使其可以胜任消息队列,任务队列等不同的角色. 特性 ...

  8. @PathVariable @RequestParam @RequestBody 的区别

    转载自:@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request ...

  9. you have to first modify the default Eclipse configuration to avoid XML cosmetic errors:

    Configure XML Validation to Avoid Cosmetic Errors Navigate to: Window->Preferences->XML->XM ...

  10. oracle 12C wmsys.wm_concat()函数

    http://blog.itpub.net/31392094/viewspace-2149577/