博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 2169
阅读量:5117 次
发布时间:2019-06-13

本文共 1217 字,大约阅读时间需要 4 分钟。

$f_{ij}$ 表示加入 $i$ 条边, $j$ 个点的度数是奇数的方案数,然后暴力

#include
using namespace std;#define rep(i,a,b) for(int i=(a),i##_end=(b);i<=i##_end;++i)#define For(i,a,b) for(int i=(a),i##_end=(b);i
=i##_st;--i)#define fi first#define se second#define pb push_back#define mp make_pair#define dbg(x) cerr<<#x" = "<
<
nxt)typedef long long ll;typedef pair
pii;const int inf=~0u>>1,mod=10007;inline int rd() { int x,c,f=1;while(!isdigit(c=getchar()))f=c!='-';x=c-'0'; while(isdigit(c=getchar()))x=x*10+c-'0';return f?x:-x;}const int N=1011;char d[N];int f[N][N],inv[N];inline int C(int i){return i<2?0:i*(i-1)/2%mod;}int main(){#ifdef flukehn freopen("test.txt","r",stdin);#endif inv[1]=1; For(i,2,N)inv[i]=(mod-mod/i)*inv[mod%i]%mod; int n=rd(),m=rd(),K=rd(); rep(i,1,m){ d[rd()]^=1; d[rd()]^=1; } int p=0; rep(i,1,n)p+=d[i]; f[0][p]=1; rep(i,1,K)rep(j,0,n){ f[i][j]=inv[i]*((ll)f[i-1][j]*j*(n-j)%mod+(ll)(j+2<=n?f[i-1][j+2]:0)*C(j+2)%mod+(ll)(j>=2?f[i-1][j-2]:0)*C(n-j+2)%mod-(i>=2?f[i-2][j]:0)*(C(n)-i+2)%mod)%mod; } int r=f[K][0]; if(r<0)r+=mod; cout<
<

  

转载于:https://www.cnblogs.com/limfc/p/8427755.html

你可能感兴趣的文章
Ubuntu下安装MySQL及简单操作
查看>>
前端监控
查看>>
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>