
【算法】枚举子集
文章平均质量分 86
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ3812】【UOJ37】【清华集训2014】主旋律
【题目链接】BZOJUOJ【思路要点】我们希望求出使得图强联通的边集数,这等价于求出所有边集数减去使得图不强连通的边集数。首先考虑一种非常暴力的做法,我们枚举最终的图缩点后的情况。那么,剩下的图必须是一个DAG,我们希望求出这张图在是DAG的情况下可行的边集数,并与每一个强连通分量加边方案数相乘,得到答案。后面的这个问题是原问题的一个子问题,递归对对应强联通分量的导出子图求解即可。问题在于求解一张...原创 2018-02-27 13:37:25 · 1318 阅读 · 0 评论 -
【BZOJ5205】【LOJ6301】「CodePlus 2018 3 月赛」白金元首与莫斯科
【题目链接】点击打开链接【思路要点】考虑从前向后、从后向前各做一次状压DP,在询问时合并信息。注意到问题等价于用\(1*2\)和\(1*1\)的棋子填满棋盘,我们可以把\(1*1\)的棋子一并在状压DP时考虑进去。合并答案时只需要枚举\(2^N\)个状态,将满足条件的DP值相乘,累加入答案即可。举例来说,在下图中,合法的状态应当满足在标号为4处已经填上棋子,在标号和为3的绿色和蓝色方格,是否填上棋...原创 2018-03-07 12:36:22 · 760 阅读 · 0 评论 -
【BZOJ2595】【WC2008】游览计划
【题目链接】点击打开链接【思路要点】可以直接用基于连通性的的动态规划求解,或者可以用斯坦纳树DP+SPFA求解。时间复杂度\(O(N*M*3^K)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 15#define MAXQ 2000005#define CURR 1024#define INF 1e...原创 2018-04-17 20:12:13 · 305 阅读 · 0 评论 -
【BZOJ4774】修路
【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】#include<bits/stdc++.h>using namespace std;#define MAXQ 1000005#define MAXN 10005#define CURR 256#define INF 1e9struct edge {int dest, len; };vector <edg...原创 2018-04-17 20:51:32 · 431 阅读 · 0 评论 -
【BZOJ4006】【JLOI2015】管道连接
【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】#include<bits/stdc++.h>using namespace std;#define MAXQ 1000005#define MAXN 1005#define CURR 1024#define INF 1e9struct edge {int dest, len; };vector <edg...原创 2018-04-18 14:44:20 · 230 阅读 · 0 评论 -
【BZOJ5153】【UOJ348】【WC2018】州区划分
【题目链接】BZOJUOJ【思路要点】定义\(sum_S\)表示集合\(S\)包含的城市人口总数的\(p\)次方。定义\(g_S\),当\(S\)是一个合法的州区,\(g_S=sum_S\),否则\(g_S=0\)。定义\(f_S\)表示\(S\)所有可行的州区划分的方案的满意度之和。那么\(f_S=\sum_{T\subseteq S,T\ne\emptyset}\frac{g_T*f_{S-T...原创 2018-06-06 18:45:26 · 528 阅读 · 0 评论 -
【LOJ2264】「CTSC2017」吉夫特
【题目链接】点击打开链接【思路要点】由 LucasLucasLucas 定理, (ab)%2=(a/2b/2)∗(a%2b%2)%2\binom{a}{b}\%2=\binom{a/2}{b/2}*\binom{a\%2}{b\%2}\%2(ba)%2=(b/2a/2)∗(b%2a%2)%2 。因此, (ab)%2=1\binom{a}{b}\%2=1(ba)%2=1 ...原创 2018-11-02 13:37:27 · 445 阅读 · 0 评论