传送门

分析

令f(i,j)表示i点完全图有j个联通块的方案数。

讨论有i-1个点已经固定了,我们拉出一个代表元素然后讨论它的集合大小然后组合数算一下就可以了。
$$ dp(i,j) = \sum_{k=1}^{i-1} C_{i-1}^{k-1} dp(i-k,j-1) dp(k,1) $$
$$ dp(i,1) = 2^{\frac{i(i-1)}{2}} - \sum{j=2}^i dp(i,j) $$
因为至少要删一条边,所以m=1时候最终答案要减1。

代码

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<string>
  5. #include<algorithm>
  6. #include<cctype>
  7. #include<cmath>
  8. #include<cstdlib>
  9. #include<queue>
  10. #include<ctime>
  11. #include<vector>
  12. #include<set>
  13. #include<map>
  14. #include<stack>
  15. using namespace std;
  16. const long long mod = ;
  17. #define add(x,y) x=(x+y)%mod
  18. long long c[][],dp[][];
  19. inline long long pw(long long x,long long p){
  20. long long res=;
  21. while(p){
  22. if(p&)res=res*x%mod;
  23. x=x*x%mod;
  24. p>>=;
  25. }
  26. return res;
  27. }
  28. int main(){
  29. long long n,m,i,j,k;
  30. scanf("%lld%lld",&n,&m);
  31. c[][]=;
  32. for(i=;i<=;i++)
  33. c[i][]=c[i][i]=;
  34. for(i=;i<=;i++)
  35. for(j=;j<i;j++)
  36. c[i][j]=(c[i-][j]+c[i-][j-])%mod;
  37. dp[][]=;
  38. for(i=;i<=n;i++){
  39. for(j=;j<=i;j++)
  40. for(k=;k<i;k++)
  41. add(dp[i][j],c[i-][k-]*dp[i-k][j-]%mod*dp[k][]%mod);
  42. dp[i][]=pw(,i*(i-)/);
  43. for(j=;j<=i;j++)
  44. dp[i][]=(dp[i][]-dp[i][j]+mod)%mod;
  45. }
  46. printf("%lld\n",m==?dp[n][m]-:dp[n][m]);
  47. return ;
  48. }

51NOD1835 完全图的更多相关文章

  1. hdu4751Divide Groups(dfs枚举完全图集合或者bfs染色)

    /************************************************************************* > File Name: j.cpp > ...

  2. 完全偶图K(3,3)与完全图K5是否存在平面表示

    本文论述k(3, 3)与K5平面表示的存在性.首先给出图的平面表示的定义: 若可以在平面里画出一个图而让边没有任何交叉(边的交叉是指边的直线或弧线在它们的公共端点以外的地方相交),则这个图是平面性的. ...

  3. select 函数实现 三种拓扑结构 n个客户端的异步通信 (完全图+线性链表+无环图)

    一.这里只介绍简单的三个客户端异步通信(完全图拓扑结构) //建立管道 mkfifo open顺序: cl1 读 , cl2 cl3 向 cl1写 cl2 读 , cl1 cl3 向 cl2写 cl3 ...

  4. CF #405 (Div. 2) B. Bear ad Friendship Condition (dfs+完全图)

    题意:如果1认识2,2认识3,必须要求有:1认识3.如果满足上述条件,输出YES,否则输出NO. 思路:显然如果是一个完全图就输出YES,否则就输出NO,如果是无向完全图则一定有我们可以用dfs来书边 ...

  5. 2019阿里校招测评题,光明小学完全图最短路径问题(python实现)

    题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光 ...

  6. Codeforces 791B. Bear and Friendship Condition 联通快 完全图

    B. Bear and Friendship Condition time limit per test:1 second memory limit per test:256 megabytes in ...

  7. LOJ10067 构造完全图

    LOJ10067 构造完全图 最小生成树 每次找到最小的边,将边两端的块合并 (我之前想的是什么鬼) #include<cstdio> #include<algorithm> ...

  8. codevs 2796 最小完全图

    2796 最小完全图 http://codevs.cn/problem/2796/  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 若一个图的每一对不 ...

  9. HDOJ5521(巧妙构建完全图)

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

随机推荐

  1. Zeroc Ice 负载均衡之Icegrid simple

    最近学习Icestorm的replicated例子,在本地计算机上面跑通了,但在两台机器上(一台服务器192.168.0.113,一台客户端192.168.0.188),怎么都跑不通.上网求助,大家给 ...

  2. linux下的第一个C程序及其编译方法

    #include <stdio.h> #include <stdlib.h>   int main(int argc, char ** argv) {     printf(& ...

  3. 使用open_read_write等底层函数来赋值一个文件

    /* * 该程序是练习read(),write(),open(),create(),close(),lseek()等函数. *  * 该程序的处理思路: *  1: 在程序所在的目录去打开一个文件,如 ...

  4. Dungeon Master (BFS与DFS的应用)

    个人心得:一开始用DFS弄了半天一直输出不了结果,后面发现并没有进行判断:好不容易能够得出答案,结果超时了,才发现原来要用BFS: 对于DFS: 从一个点开始模拟能走的所有步骤,注意边界条件,走到不能 ...

  5. 【LeetCode】025. Reverse Nodes in k-Group

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k  ...

  6. 跨域问题解决方案之chrome插件

    地址: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkki ...

  7. Visualforce Page超链接

    Salesforce开发者文档:https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_quick_start ...

  8. Excel开发学习笔记:读取xml文件及csv文件

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. ).Split(  ...

  9. Windows 常见进程

    alg.exe描述: alg.exe是Windows系统的一个重要进程,它的功能是用来处理 Internet 连接共享及防火墙,最好不要结束这个进程.taskmgr.exe描述: Windowsxp ...

  10. vue-cli脚手架build目录中的karma.conf.js配置文件

    本文系统讲解vue-cli脚手架build目录中的karma.conf.js配置文件 这个配置文件是命令 npm run unit 的入口配置文件,主要用于单元测试 这条命令的内容如下 "c ...