#10 //I [HNOI/AHOI2018]毒瘤
题解:
80分做法还是听简单的
对于非树边枚举一下端点状态
然而我也不知道为什么就多t了一个点
具体实现上
最暴力的是3^n次 但是我们可以发现对于i不取,j取 i不取,j不取是可以等效成i不取,j没有限制,这样是2^n
或者直接容斥一下搞i取j取 这样C(n,1)+C(n,2)...=2^n一样的吧
100pts应该是虚树处理一下系数吧
代码:
#include <bits/stdc++.h>
using namespace std;
#define N 300000
#define rg register
#define mo 998244353
#define ll long long
struct re{
int a,b;
}a[N],ts[];
const int n2=1e7;
int head[N],l2,l,v[N],n,m,hash[n2];
ll dp[N][],ans;
bool f[N],ff[N];
inline void arr(int x,int y)
{
a[++l].a=head[x];
a[l].b=y;
head[x]=l;
}
inline void dfs(int x,int y)
{
rg int u=head[x];
f[x]=;
while (u)
{
rg int v=a[u].b;
if (u!=y)
{
if (f[v])
{
if (!ff[u])
{
ts[++l2].a=a[u].b;
ts[l2].b=x;
ff[u]=;
ff[u%?u+:u-]=;
}
} else dfs(v,u%?u+:u-);
}
u=a[u].a;
}
}
inline void dfs3(rg int x,rg int y)
{
rg int u=head[x];
dp[x][]=; dp[x][]=;
if (v[x]==) dp[x][]=;
if (v[x]==-) dp[x][]=;
while (u)
{
rg int v=a[u].b;
if (u!=y&&!ff[u])
{
dfs3(v,u%?u+:u-);
dp[x][]*=dp[v][];
dp[x][]%=mo;
dp[x][]*=(dp[v][]+dp[v][]);
dp[x][]%=mo;
}
u=a[u].a;
}
}
const int mo1=9e6+;
inline void dfs2(rg int now)
{
if (now==)
{
memset(dp,,sizeof(dp));
dfs3(,);
ans+=dp[][]+dp[][];
ans%=mo;
return;
}
rg int x=ts[now].a,y=ts[now].b;
rg int tmp1=v[x],tmp2=v[y];
if (v[x]!=&&v[y]!=-)
{
v[x]=-; v[y]=; dfs2(now-); v[x]=tmp1; v[y]=tmp2;
}
if (v[y]!=)
{
v[y]=-; dfs2(now-); v[y]=tmp2;
}
}
int main()
{
freopen("noi.in","r",stdin);
freopen("noi.out","w",stdout);
std::ios::sync_with_stdio(false);
cin>>n>>m;
int x,y;
for (rg int i=;i<=m;i++)
{
cin>>x>>y;
arr(x,y); arr(y,x);
}
dfs(,);
dfs2(l2);
cout<<ans<<endl;
return ;
}
#10 //I [HNOI/AHOI2018]毒瘤的更多相关文章
- Luogu P4426 [HNOI/AHOI2018]毒瘤
题目 神仙题. 首先我们可以把题意转化为图的独立集计数.显然这个东西是个NP-Hard的. 然后我们可以注意到\(m\le n+10\),也就是说最多有\(11\)条非树边. 我们现在先考虑一下,树上 ...
- 题解 [HNOI/AHOI2018]毒瘤
题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条边的无向图,问有多少个点集满足点集中任意两点均不存在边相连. \(n\le 10^5,m-n\le 10\),答案对 \(9982443 ...
- 洛谷 P4426 - [HNOI/AHOI2018]毒瘤(虚树+dp)
题面传送门 神仙虚树题. 首先考虑最 trival 的情况:\(m=n-1\),也就是一棵树的情况.这个我相信刚学树形 \(dp\) 的都能够秒掉罢(确信).直接设 \(dp_{i,0/1}\) 在表 ...
- [HNOI/AHOI2018]毒瘤
题目描述 https://www.lydsy.com/JudgeOnline/upload/201804/%E6%B9%96%E5%8D%97%E4%B8%80%E8%AF%95%E8%AF%95%E ...
- P4426 [HNOI/AHOI2018]毒瘤
挺不错的一个题. 题意即为求一个图的独立集方案数. 如果原图是一棵树,可以直接大力f[x][0/1]来dp. 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了. 发 ...
- 【LG4437】[HNOI/AHOI2018]排列
[LG4437][HNOI/AHOI2018]排列 题面 洛谷 题解 题面里这个毒瘤的东西我们转化一下: 对于\(\forall k,j\),若\(p_k=a_{p_j}\),则\(k<j\). ...
- [Bzoj5285][洛谷P4424][HNOI/AHOI2018]寻宝游戏(bitset)
P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生 ...
- [HNOI/AHOI2018]转盘(线段树优化单调)
gugu bz lei了lei了,事独流体毒瘤题 一句话题意:任选一个点开始,每个时刻向前走一步或者站着不动 问实现每一个点都在$T_i$之后被访问到的最短时间 Step 1 该题可证: 最优方案必 ...
- 【题解】Luogu P4436 [HNOI/AHOI2018]游戏
原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建 ...
随机推荐
- Kettle 中转换(transformation)的执行过程
1,Spoon.java的main方法是整个Kettle运行的入口.当打开Kettle的设计器界面后,可以在其中设计作业和转换.这里讨论转换的执行过程. 2,设计好一个转换后,转换保存的本地文件是 . ...
- VSCode 拓展插件推荐
想让VS code干活快起来,插件少不了,开始吧: 快捷键:Ctrl+Shift+X打开插件搜索安装即可 (安装的插件通常会保存在这个目录:C:\Users\你的系统登录用户如administrato ...
- Spring Boot 系列 @ControllerAdvice 拦截异常并统一处理
ControllerAdvice用法解析 简介 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置. 注解了@Controller的类的方法可以使用@Exception ...
- pyqt5-多线程QThread类
要实现多线程,我们要先继承QThread类并重新实现其中的run()函数,也就是说把耗时的操作放入run()函数中 import sys from PyQt5.QtCore import Qt, QT ...
- node.js 找不到 xxx 模块解决办法
node.js找不到xxx 这个模块的解决方法. 按顺序来. 1.检查一下是否拼写错误. 2.这个模块是自己写的,是的话.检查一下路径是否正确. 3.如果是导入的模块.用 npm list这个命令输出 ...
- html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
对于html5移动端网页编写CSS网上有很多介绍的文章,但在实际使用过程中还是会纠结. 网上的资料太多,且大多都是技术介绍型,特别是针对android上,网上写的各种麻烦,各种复杂,各种不接地气儿.. ...
- Python的虚拟环境virtualenv
原文地址:blog.sina.com.cn/s/blog_4ddef8f80101eu0w.html Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpre ...
- Activity,Fragment的状态保存
http://blog.csdn.net/hqdoremi/article/details/26376797 https://blog.csdn.net/u013588712/article/deta ...
- 北洋UAM-05LX(网口系列适用)ROS节点
参考创客智造ROS与激光雷达入门教程 说明: 介绍ROS如何接入Hokuyo网口的雷达及基本使用 测试雷达:UAM-05LX采用太网接口,如果型号是USB口的参考教程 ros wiki: http:/ ...
- 从Linux内核中获取真随机数【转】
转自:http://www.cnblogs.com/bigship/archive/2010/04/04/1704228.html 内核随机数产生器 Linux内核实现了一个随机数产生器,从理论上说这 ...