题解 [HNOI/AHOI2018]毒瘤】的更多相关文章

题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条边的无向图,问有多少个点集满足点集中任意两点均不存在边相连. \(n\le 10^5,m-n\le 10\),答案对 \(998244353\) 取模. 思路 妙啊!!! 首先我们从树的形态开始考虑,你发现答案其实就是独立集的个数,具体来说我们可以设 \(f_{u,0/1}\) 表示 \(u\) 点选或不选的方案数,可以得到: \[f_{u,0}=\prod_{v\in son_u} (f_{v,0}+f_{v,1}) \] \[f…
题目描述 https://www.lydsy.com/JudgeOnline/upload/201804/%E6%B9%96%E5%8D%97%E4%B8%80%E8%AF%95%E8%AF%95%E9%A2%98.pdf 题解 大意:给出一张n个点n+x条边的无向连通图,x很小,求出这个图上最大独立集的方案数. 感觉就是NOIP保卫王国那题的加强版吧. 暴力的话,我们可以考虑在图上随便找一颗生成树,然后把非树边连接的点设置为关键点,然后2^x枚举这些点的选择情况,每次做一遍树形dp就好了. 如…
题解: 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…
挺不错的一个题. 题意即为求一个图的独立集方案数. 如果原图是一棵树,可以直接大力f[x][0/1]来dp. 由于非树边很少,考虑2^11容斥,强制某些点必选,然后再O(n)dp,这样应该过不了. 发现这个容斥本质上是对一些点进行修改,修改的形式是强制它必须选. 直接xjb上一个ddp就没了. 这里由于有可能会/0,考虑维护一下结尾0的个数就行. 复杂度的话,直接乱写是3^11*log^2的,但是实际上我们可以优化加点和删点的顺序. 考虑按照某一个特定的顺序去容斥. 我的想法是一个简单的贪心,每…
题目 神仙题. 首先我们可以把题意转化为图的独立集计数.显然这个东西是个NP-Hard的. 然后我们可以注意到\(m\le n+10\),也就是说最多有\(11\)条非树边. 我们现在先考虑一下,树上独立集计数怎么做. 设\(f_{u,0/1}\)表示\(u\)点选/不选的方案数. 那么转移方程就是: \(f_{u,0}=\prod\limits_{v\in son_u}(f_{v,0}+f_{v,1})\) \(f_{u,1}=\prod\limits_{v\in son_u}f_{v,0}\…
题面传送门 神仙虚树题. 首先考虑最 trival 的情况:\(m=n-1\),也就是一棵树的情况.这个我相信刚学树形 \(dp\) 的都能够秒掉罢(确信).直接设 \(dp_{i,0/1}\) 在表示 \(i\) 的子树内选择,\(i\) 选/不选的方案数.转移就 \(dp_{u,0}=\prod\limits_{v\in son_u}(dp_{v,0}+dp_{v,1}),dp_{u,1}=\prod\limits_{v\in son_u}dp_{v,0}\) 即可. 接下来考虑有非树边的情…
原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建议JSOI的出题人好好学学) #include <bits/stdc++.h> #define N 1000005 #define getchar nc using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*…
[LG4437][HNOI/AHOI2018]排列 题面 洛谷 题解 题面里这个毒瘤的东西我们转化一下: 对于\(\forall k,j\),若\(p_k=a_{p_j}\),则\(k<j\). 也就是说若\(y=a_x\),则\(y\)排在\(x\)前面, 那么我们在原数组编号中\(a_x\)向\(x\)连边可以表示出这种拓扑关系. 那么我们连玩边后肯定是以\(0\)为根的一颗有根树,否则一定会形成一个环,无解. 贪心地想一下,对于权值最小的点,我们肯定让它尽量往前选,那么在它父亲选完后,我们…
gugu  bz lei了lei了,事独流体毒瘤题 一句话题意:任选一个点开始,每个时刻向前走一步或者站着不动 问实现每一个点都在$T_i$之后被访问到的最短时间 Step 1 该题可证: 最优方案必然是从某一格开始后一直等着然后走一圈正好全部访问到 证明: 如果时间倒流那就是从时刻T开始每一时刻向前走或是停着不动,每个元素过了T[i]会消失 如果这样的话你肯定是马不停蹄往前走对吧 所以反过来就是上面的结论 Q.E.D 上面的结论还有其他正确的表示方法,该方法仅供参考 如果您能想出其他证明,那么…
P4424 [HNOI/AHOI2018]寻宝游戏 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你,对这个活动非常感兴趣.你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为infinite corridor.一次,你经过这条走廊时注意到在走廊的墙壁上隐藏着nn 个等长的二进制的数字,长度均为mm .你从西向东将这些数字记录了下来,形成一个含有nn 个数的二进制…