4455: [Zjoi2016]小星星|状压DP|容斥原理
OrzSDOIR1ak的晨神 
能够考虑状压DP枚举子集,求出仅仅保证连通性不保证一一相应的状态下的方案数,然后容斥一下就是终于的答案
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<queue>
#include<ctime>
#include<set>
#include<map>
using namespace std;
bool a[22][22];
long long f[22][22],ans;
int head[44],nxt[44],lst[44],q[44];
int n,m,tot,w;
void insert(int x,int y)
{
    lst[++tot]=y; nxt[tot]=head[x]; head[x]=tot;
    lst[++tot]=x; nxt[tot]=head[y]; head[y]=tot;
}
void dp(int x,int fa)
{
    for(int i=head[x];i;i=nxt[i])
        if(lst[i]!=fa)dp(lst[i],x);
    for(int i=1;i<=w;i++)
    {
        f[x][q[i]]=1;
        for(int j=head[x];j;j=nxt[j])
            if(lst[j]!=fa)
            {
                long long tmp=0;
                for(int k=1;k<=w;k++)
                    if(a[q[i]][q[k]])tmp+=f[lst[j]][q[k]];
                f[x][q[i]]*=tmp;
            }
    }
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        a[x][y]=a[y][x]=1;
    }
    for(int i=1;i<n;i++)
    {
        int x,y;
        scanf("%d%d",&x,&y);
        insert(x,y);
    }
    for(int S=1,T=1<<n;S<T;S++)
    {
        w=0;
        for(int i=1;i<=n;i++)
            if((1<<i-1)&S)q[++w]=i;
        long long sum=0;dp(1,0);
        for(int i=1;i<=w;i++)sum+=f[1][q[i]];
        if((w^n)&1) ans-=sum; else ans+=sum;
    }
    cout<<ans;
    return 0;
}4455: [Zjoi2016]小星星|状压DP|容斥原理的更多相关文章
- 【uoj#37/bzoj3812】[清华集训2014]主旋律  状压dp+容斥原理
		
题目描述 求一张有向图的强连通生成子图的数目对 $10^9+7$ 取模的结果. 题解 状压dp+容斥原理 设 $f[i]$ 表示点集 $i$ 强连通生成子图的数目,容易想到使用总方案数 $2^{sum ...
 - 【bzoj2560】串珠子  状压dp+容斥原理
		
题目描述 有 $n$ 个点,点 $i$ 和点 $j$ 之间可以连 $0\sim c_{i,j}$ 条无向边.求连成一张无向连通图的方案数模 $10^9+7$ .两个方案不同,当且仅当:存在点对 $(i ...
 - 4455[Zjoi2016]小星星 容斥+dp
		
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 527 Solved: 317[Submit][Status] ...
 - BZOJ2669 [cqoi2012]局部极小值  状压DP  容斥原理
		
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2669 题意概括 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所 ...
 - 【BZOJ 2669】 2669: [cqoi2012]局部极小值 (状压DP+容斥原理)
		
2669: [cqoi2012]局部极小值 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 667 Solved: 350 Description 有一 ...
 - HDU5838 Mountain(状压DP + 容斥原理)
		
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...
 - 【BZOJ-2669】局部极小值     状压DP + 容斥原理
		
2669: [cqoi2012]局部极小值 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 561 Solved: 293[Submit][Status ...
 - BZOJ 2669 CQOI2012 局部极小值 状压dp+容斥原理
		
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2669 题意概述:实际上原题意很简洁了我就不写了吧.... 二话不说先观察一下性质,首先棋盘 ...
 - BZOJ3812 主旋律(状压dp+容斥原理)
		
设f[S]为S点集是SCC的方案数.考虑通过去掉不合法方案转移.可以枚举入度为0的SCC所含点集S',这样显然S^S'内部的边和由S'连向S^S'的边删还是不删任选.但是这样无法保证S'包含所有入度为 ...
 
随机推荐
- 通过浏览器地址进行 post get 请求
			
首先安装curl 1.post chcp 65001 title 接口测试脚本 d: cd D:\curl\ curl -l -X POST -d "params" url ech ...
 - info---Linux下info格式的帮助指令。
			
info命令是Linux下info格式的帮助指令. 它的几个常用快捷键. ?键:它就会显示info的常用快捷键. N键:显示(相对于本节点的)下一节点的文档内容. P键:显示(相对于本节点的)前一节点 ...
 - 洛谷P1108 低价购买 (最长下降子序列方案数)(int,long long等 范围)
			
这道题用n方的算法会很好做 我一开始想的是nlogn的算法求方案数, 然后没有什么想法(实际上也可以做,但是我太弱了)我们就可以根据转移方程来推方案数,只是把max改成加,很多动规题 都是这样,比如背 ...
 - 使用maven安装jar到本地仓库
			
mvn install:install-file "-DgroupId={安装的jar包的groupid,可以随意起名}" "-DartifactId={安装jar包的I ...
 - POJ 2081 Recaman's Sequence
			
Recaman's Sequence Time Limit: 3000ms Memory Limit: 60000KB This problem will be judged on PKU. Orig ...
 - 【转】 基于C#.NET的高端智能化网络爬虫
			
[转] 基于C#.NET的高端智能化网络爬虫 前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅.怜悯.嘲讽.猥琐)的方式来完美碾压爬虫开发者.今天我就 ...
 - JAVA JS 中的  modulus exponent 生成 C# 公匙
			
C#用的是xml,里面是base64编码的.你上面的就是hex格式,只要把上面hex格式转成byte数组,然后在base64编码就可以了. public static byte[] Hex2Byte( ...
 - android自己定义刷新类控件
			
android尽管定义了种类很丰富的控件.可是有的时候这些自己定义的控件还是不能满足我的要求,为了可以适配很多其它的需求,我们须要在原有的基础上进行自己定义控件. 今天我向大家介绍的就是android ...
 - 11.ng-init
			
转自:https://www.cnblogs.com/best/tag/Angular/ 初始化 <p ng-init="test=1" ng-repeat="a ...
 - json.js
			
由于json官网被强,现保存源码一份以备不时之需,直接保存成js文件即可. /* json.js 2007-08-05 Public Domain This file adds these metho ...