zjoi 小星星
题解:
dp很容易想
f[i][j][s]表示匹配到了i点 对应点为j点,状态为s 那么这样的时间复杂度为(3^n*n^2)
然后会发现这其实可以转化为可以重复利用元素的子集卷积
http://www.cnblogs.com/yinwuxiao/p/8471250.html
因为可以发现那些一定是不满足的
这样是2^n*n^3
然而本人并不怎么会调整常数。。所以就被卡常了------以后再改吧。。
还有就是空间差不多是卡着512mb的
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sz [18][(1<<17)+10]
ll n,m,f[][],l,lim,pos[<<];
ll head[],dp[]sz,count2[];
struct re{
ll a,b;
}a[];
void arr(ll x,ll y)
{
a[++l].a=head[x];
a[l].b=y;
head[x]=l;
}
ll ff1 sz,ff2 sz,ff3 sz;
void dfs(ll x,ll fa)
{
count2[x]=;
ll u=head[x];
while (u)
{
ll v=a[u].b;
if (v!=fa) dfs(v,x),count2[x]+=count2[v];
u=a[u].a;
}
u=head[x];
memset(ff1,,sizeof(ff1));
memset(ff3,,sizeof(ff3));
for (ll i=;i<=n;i++) ff1[i][<<(i-)]=;
for (ll i=;i<=n;i++) ff3[i][<<(i-)]=;
while (u)
{
ll v=a[u].b;
memset(ff2,,sizeof(ff2));
if (v!=fa)
{
for (ll i=;i<=n;i++)
{
for (ll j=;j<=n;j++)
if (f[i][j])
for (ll k=;k<lim;k++)
ff2[i][k]+=dp[v][j][k];
for (ll j=;j<=n;j++)
for (ll k=;k<lim;k++)
if (k>>(j-)&) ff1[i][k]+=ff1[i][k^(<<(j-))];
for (ll j=;j<=n;j++)
for (ll k=;k<lim;k++)
if (k>>(j-)&) ff2[i][k]+=ff2[i][k^(<<(j-))];
for (ll j=;j<lim;j++) ff3[i][j]=ff2[i][j]*ff1[i][j];
for (ll j=;j<=n;j++)
for (ll k=;k<lim;k++)
if (k>>(j-)&) ff3[i][k]-=ff3[i][k^(<<(j-))];
for (ll k=;k<lim;k++) ff1[i][k]=ff3[i][k];
}
}
u=a[u].a;
}
for (ll i=;i<=n;i++)
for (ll j=;j<lim;j++)
if (pos[j]==count2[x])
dp[x][i][j]=ff3[i][j];
}
int main()
{
freopen("noip.in","r",stdin);
freopen("noip.out","w",stdout);
std::ios::sync_with_stdio(false);
cin>>n>>m; lim=<<n;
for (int i=;i<lim;i++)
{
int cnt=;
for (int j=;j<=n;j++)
if (i>>(j-)&) cnt++;
pos[i]=cnt;
}
memset(f,,sizeof(f));
ll c,d;
for (ll i=;i<=m;i++)
{
cin>>c>>d; f[c][d]=; f[d][c]=;
}
for (ll i=;i<=n-;i++)
{
cin>>c>>d; arr(c,d); arr(d,c);
}
dfs(,);
ll ans=;
for (ll i=;i<=n;i++) ans+=dp[][i][lim-];
cout<<ans<<endl;
}
zjoi 小星星的更多相关文章
- BZOJ4596: [Shoi2016]黑暗前的幻想乡
Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖 怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类) 博丽灵梦和八云紫等人整日高谈所有妖怪 ...
- [BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩)
[BZOJ 4455] [ZJOI 2016] 小星星 (树形dp+容斥原理+状态压缩) 题面 给出一棵树和一个图,点数均为n,问有多少种方法把树的节点标号,使得对于树上的任意两个节点u,v,若树上u ...
- [ZJOI 2016] 小星星
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 653 Solved: 400[Submit][Status] ...
- 【BZOJ 4455】【UOJ #185】【ZJOI 2016】小星星
http://www.lydsy.com/JudgeOnline/problem.php?id=4455 http://uoj.ac/problem/185 有一个$O(n^n)$的暴力,放宽限制可以 ...
- @loj - 2091@ 「ZJOI2016」小星星
目录 @description@ @solution@ @accepted code@ @details@ @description@ 小 Y 是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有 ...
- BZOJ4455: [Zjoi2016]小星星
Description 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细 线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉了.这 ...
- JS对象实现随机满天小星星实例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【BZOJ-4455】小星星 容斥 + 树形DP
4455: [Zjoi2016]小星星 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 204 Solved: 137[Submit][Status] ...
- ZJOI day1总结
虽然没人看,虽然滚了大粗,但还是这样勉励一下自己.. 今年大约是进队无望了. before ZJOI 感觉自己时间很充裕,与lyx大爷一起颓颓颓.. day -3 到xj. day -2 听课.感觉洲 ...
随机推荐
- java抽象类与接口回顾
1.抽象类中可以包括成员变量,方法,构造器,初始化块,内部类(接口/枚举)五种成分.2.让A类中包含B方法,又不提供B方法的实现,即抽象方法只有方法签名,没有方法体.3.有抽象方法的类只能被定义成抽象 ...
- webkitAnimationEnd事件与webkitTransitionEnd事件
写一个焦点图demo,css3动画完成以后要把它隐藏掉,这里会用到css3的事件,以前没有接触过,结果查了一下发现这是一片新天地啊,而且里面还有好多坑,比如重复动画多次触发什么的.anyway,我还是 ...
- phpexcel 导出到xls文件的时候出现乱码解决
在header() 前面加上ob_end_clean() 函数, 清除缓冲区, 这样就不会乱码了! <?php include 'global.php'; $ids = $_GET['ids'] ...
- Linux 文件日志筛选操作
统计查看文件以及筛选日志 1.*.log 日志文件中 统计独立ip的个数: awk '{print $1}' test.log | sort | uniq | wc -l 2.#查询访问最多的前10个 ...
- QDoubleSpinBox浮点型数字调节框
样式: import sys from PyQt5.QtWidgets import QApplication, QWidget, QDoubleSpinBox class Demo(QWidget) ...
- C# 反编译项目修复
1.反编译测试程序 1>.将测试程序添加到.NET Reflector 2>.选中测试程序后右键选择导出 2.反编译项目修复 1>.问题一 问题现象: base.AutoScaleM ...
- Informatic学习总结_day02
1.sort组件(排序) 2.aggregater组件 聚集组件 sum 如果不排序,去做汇总的话,一个大的session 运行起来会很慢 3.join控件 连接组件 对于异构的数据源,一个 ...
- ROS中的CMakeLists.txt
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很有必要的.现在我们就来看看它 ...
- Dubbo服务容错
当一个服务调用另一个远程服务出现错误时的外观 Dubbo提供了多种容错方案,默认值为failover(重试) 1).Failover Cluster(默认) 失败自动切换,当出现失败,重试其他服务器, ...
- MySQL— 索引
目录 一.索引 二.索引类型 三.索引种类 四.操作索引 五.创建索引的时机 六.命中索引 七.其它注意事项 八.LIMIT分页 九.执行计划 十.慢查询日志 一.索引 MySQL索引的建立对于MyS ...