P4336 [SHOI2016]黑暗前的幻想乡

题目

P4336 [SHOI2016]黑暗前的幻想乡

做法

每种颜色恰好一条边,有点难处理啊

根据套路,数据范围这么小,容斥一下所有的情况就可以了

对每种颜色进行状压,表这次只能选这些颜色,做\(n-1\)的时候会加上多余的东西,就减去\(n-2......\)

剩下的交给矩阵树,这题有模数,高斯消元的时候逆元

My complete code

#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long LL;
const LL maxn=19;
const LL p=1e9+7;
inline LL Read(){LL x(0),f(1); char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*f;
}
LL n,ans;
LL m[maxn],size[1<<maxn];
LL D[maxn][maxn],eu[maxn][maxn*maxn],ev[maxn][maxn*maxn];
inline LL Pow(LL base,LL b){LL ret(1);while(b){if(b&1)ret=(ret*base)%p;base=base*base%p;b>>=1;}return ret;
}
inline LL Solve(){LL N=n-1,tr=0;for(LL i=1;i<=N;++i){LL mx=i;for(LL j=i+1;j<=N;++j)if(D[mx][i]<D[j][i])mx=j;if(D[mx][i]==0)return 0;if(mx!=i){tr^=1;swap(D[mx],D[i]);}for(LL j=i+1;j<=N;++j){LL tmp=D[j][i]*Pow(D[i][i],p-2)%p;for(LL k=i;k<=N;++k)D[j][k]=(D[j][k]-tmp*D[i][k]%p+p)%p;}}LL ret(1);for(LL i=1;i<=N;++i)ret=(ret*D[i][i])%p;if(tr)ret=p-ret;return ret;
}
int main(){n=Read();for(LL i=1;i<n;++i){m[i]=Read();for(LL j=1;j<=m[i];++j)eu[i][j]=Read(),ev[i][j]=Read();}LL Up=1<<(n-1);for(LL i=1;i<Up;++i)size[i]=size[i>>1]+(i&1);for(LL i=1;i<Up;++i){memset(D,0,sizeof(D));for(LL j=1,bit=i;bit;bit>>=1,++j){if((bit&1)==0)continue;for(LL k=1;k<=m[j];++k){LL u(eu[j][k]),v(ev[j][k]);++D[u][u],++D[v][v],D[u][v]=(D[u][v]+p-1)%p,D[v][u]=(D[v][u]+p-1)%p;}}ans=(ans+(( ((n-1-size[i])&1)==0)?Solve():-Solve())+p)%p;}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/y2823774827y/p/10265056.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智联招聘简历如何导出html,如何将拉勾网(智联招聘)的预览简历导出来

最近在整理简历的时候发现拉勾网/智联招聘上面的预览简历是那么简洁漂亮&#xff0c;可是当我想把他导到本地&#xff0c;发pdf文件给企业时却只能是word&#xff0c;那么的难看&#xff0c;摸索了一会儿找到了一种比较好的方法可以得到预览的简历。1.另存为html文件在这里插入…

Java反编译器的剖析

简单地说&#xff0c;反编译器尝试将源代码转换为目标代码。 但是有很多有趣的复杂性-Java源代码是结构化的&#xff1b; 字节码当然不是。 而且&#xff0c;转换不是一对一的&#xff1a;两个不同的Java程序可能会产生相同的字节码。 我们需要应用启发式方法&#xff0c;以合理…

Mybatis注解开发模糊查询

Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时&#xff0c;如何进行模糊查询 模糊查询语句写法&#xff08;在Select注解中&#xff09;&#xff1a; where field like CONCAT(%,#{keyWord},%) 下面是一些错…

JS中深浅拷贝 函数封装代码

一、了解 基本数据类型保存在栈内存中&#xff0c;按值访问&#xff0c;引用数据类型保存在堆内存中&#xff0c;按址访问。 二、浅拷贝 浅拷贝只是复制了指向某个对象的指针&#xff0c;而不是复制对象本身&#xff0c;新旧对象其实是同一内存地址的数据&#xff0c;修改其中…

iOS开发之Masonry框架-使用方法须知

目录 常用的属性与常量Masonry使用注意约束的优先级Masonry添加约束的方法修改约束在哪创建我的约束创建约束技巧&#xff1a;Masonry是一个轻量级的布局框架&#xff0c;它拥有自己的描述语法&#xff08;采用更优雅的链式语法封装&#xff09;来自动布局&#xff0c;具有很好…

wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...

他们想做"国际顶级的单机游戏开发商"。文/彭子诚作为一款国产单机游戏&#xff0c;《古剑奇谭三》在去年年底上市后&#xff0c;至今在 Steam 上依然保持着 83% 的好评率。大量的玩家对于游戏内容给出了认可&#xff0c;“用心”这个词是最高频出现的词语。Wegame 官…

JavaFX 8的弹出式编辑器

在过去的几个月中&#xff0c;我很高兴与JavaFX 8一起使用&#xff0c;以便为计划和调度应用程序实现复杂的用户界面。 所需的功能之一是执行“就地”编辑的方法&#xff0c;即快速编辑用户选择对象的某些基本属性的方法。 遵循“如果您无法创新&#xff0c;就模仿”的原则&am…

body onload 控制窗口大小 html,如何实现在调整浏览器窗口大小时缩放的网页?

感谢所有的建议&#xff01;看起来我必须做的丑陋的东西是必要的。以下工作(在我的机器上&#xff0c;无论如何)在IE和FireFox中。我稍后可以为CodeProject.com制作一篇文章; - )这个javascript进入&#xff06;lt; head&#xff06;gt;部分&#xff1a;var tmout null;var mu…

【Mac命令行学习】(持续更新)

常用命令&#xff1a; 一、修改环境变量文件&#xff1a; 1、进入文件&#xff1a;vi .bash_profile 2、键盘点击【a】键&#xff0c;进入文件编辑 3、修改完成后&#xff0c;如果是vi&#xff0c;点击【esc】键退出编辑模式 4、输入以下命令进行具体操作&#xff1a; :wq 保存…

flex实现水平居中和两栏布局

<!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/><title>水平垂直的实现</title><style>.wrapper{width:25…

opencv 多线程加速_线程池给你写好了,想加速拿来用就行哈

图像拼接实现见&#xff1a;OpenCV源码系列|图像拼接1OpenCV源码系列|图像拼接2耗时在调用函数&#xff1a;Mat pano; Ptr stitcher Stitcher::create(mode); Stitcher::Status status stitcher->stitch(imgs, pano)能否将这一步放进线程池里进行加速呢&#xff1f;1. 测试…

poping 心法

音乐 01.Eamon - (How Could You) Bring Him Home02.The Pussycat Dolls - Buttons03.Most Wanted ft. Fingazz, Volture -From Juvi To The Penitentiary (Instrumental)04.Kaila Yu - Move05.Danity Kane - Show Stopper06.Slick Dogg - Bang On m07.Danity Kane - Show Stop…

G1 vs CMS vs平行GC

这篇文章是我们一年前进行的实验的跟进&#xff0c;比较了现实环境中不同GC算法的性能。 我们进行了相同的实验&#xff0c;将测试扩展为包含G1垃圾收集器&#xff0c;然后在不同的平台上运行了测试。 今年&#xff0c;我们的测试使用了以下垃圾收集器&#xff1a; -XX&#x…

html5 video修改默认样式,HTML5中将video设置为背景的方法

主要用到了video标签&#xff0c;css样式&#xff0c;原理是先将video标签利用position:fixed;使video标签脱离文档流&#xff0c;在将他的z-index设置为最低的&#xff0c;比如-9999。再插入的内容自然就覆盖在视频上面了。1.首先&#xff0c;将video插入到网页中&#xff0c;…

hdfs-03-hdfs客户端操作

1, hdfs中两种连接方式 1), 网页 2), 客户端 文件的切块大小和存储的副本数量&#xff0c;都是由客户端决定&#xff01; 所谓的由客户端决定&#xff0c;是通过配置参数来定的 hdfs的客户端会读以下两个参数&#xff0c;来决定切块大小、副本数量&#xff1a; 切块大小的参数&…

ES6语法的学习与实践

ES6是JavaScript语言的新一代标准&#xff0c;是ECMAScript的第六个版本&#xff0c;加入了很多新的功能和语法&#xff0c;在很多框架&#xff0c;如在使用Vue,React等框架的项目中一般都采用ES6语法来编写的&#xff0c;下面对经常用到的ES6语法做简要的介绍。 1.let,const l…

python闭包的应用场景_简单谈谈Python中的闭包

Python中的闭包 前几天又有人留言&#xff0c;关于其中一个闭包和re.sub的使用不太清楚。我在脚本之家搜索了下&#xff0c;发现没有写过闭包相关的东西&#xff0c;所以决定总结一下&#xff0c;完善Python的内容。 1. 闭包的概念 首先还得从基本概念说起&#xff0c;什么是闭…

这是一次 docker 入门实践

前言 其实接触 docker 也有一段时间了&#xff0c;但是一直没有做下总结&#xff0c;现在网上关于 docker 的介绍也有很多了&#xff0c;本着好记性不如烂笔头的原则&#xff0c;还是自己再记录一波吧。 实现目标 安装 docker ce 探索 docker 基本概念及用法环境准备 Centos7 6…

html dom概念,js学习之HTML DOM的一些基础概念

经过近一个星期,总算把w3chool上的HTML DOM的实例差不多看了一遍,因为本身对其中的很多都用过,所以看起来也很快,现在就再系统的回顾下HTML DOM的一些概念和基础的东西,大部分都是从w3school上看到的什么是DOMDOM是w3c(万维网联盟)的标准DOM定义了访问HTML和XML的标准"W3C…

动态内存(一)

C中&#xff0c;动态内存的管理通过一对运算符来完成&#xff1a; new&#xff1a;在动态内存中为对象分配空间并返回一个指向该对象得指针 delete&#xff1a;接受一个动态对象的指针&#xff0c;销毁该对象&#xff0c;并释放与之关联的内存 说明&#xff1a;new申请的内存位…