【算法】最大权闭合子图
文章平均质量分 87
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ1497】【NOI2006】最大获利
【题目链接】点击打开链接【思路要点】直接解最大权闭合子图问题即可。时间复杂度\(O(Dinic(N+M,N+3*M))\)。【代码】#includeusing namespace std;const int MAXP = 60005;const int INF = 1e9;template void read(T &原创 2018-01-15 09:45:00 · 308 阅读 · 0 评论 -
【BZOJ3438】小M的作物
【题目链接】点击打开链接【思路要点】题目中的一类增益可以归结为“若某些元素的选取状态为0/1,那么额外获得收益”,考虑最大权闭合子图问题。对于一个种子,为了获得最大收益,我们显然一定要将它种下去。如果我们默认“选取”的意义是种在A田中,“不取”的意义是种在B田中,那么其“选取”得到的真正的权值为\(V_{a}-V_{b}\)。考虑增益条件,一个增益条原创 2018-01-15 10:46:58 · 367 阅读 · 0 评论 -
【BZOJ1565】【NOI2009】植物大战僵尸
【题目链接】点击打开链接【思路要点】题目中的限制可以总结为“若选取A,则必须选取B”,考虑最大权闭合子图问题。但是我们从样例中发现原图是可能存在环的,而最大权闭合子图问题要求原图是一个有向无环图。进一步分析发现,环上的元素是必然不能选取的,进而连向不能选的元素的元素同样不能选。进行一次DFS,确定每个元素是否可选,在可选的元素中建图,解最大权闭合子图原创 2018-01-15 09:01:59 · 403 阅读 · 0 评论 -
【BZOJ2127】Happiness
【题目链接】点击打开链接【思路要点】题目中的一类增益可以归结为“若某些元素的选取状态为0/1,那么额外获得收益”,考虑最大权闭合子图问题。对于一个同学,如果我们默认“选取”的意义是选择文科,“不取”的意义是选择理科,那么其“选取”得到的真正的权值为\(V_{文科}-V_{理科}\)。考虑增益条件,一个增益条件可以拆分为两个形如“若某些元素选取,那原创 2018-01-16 10:21:35 · 301 阅读 · 0 评论 -
【BZOJ4873】【SHOI2017】寿司餐厅
【题目链接】点击打开链接【思路要点】挺裸的最大权闭合子图。若选取区间\([L,R](L<R)\),则必须选取区间\([L,R-1]\),\([L+1,R]\)。区间\([i,i]\)的权值应当减去\(a_i\),这里是考虑额外代价的\(cx\)部分。同时,选取任何一个或多个\(a_i=j\)的区间\([i,i]\),会额外付出\(m*j^2\)的代价,由区间\([i,i]\)向\(j\)连边...原创 2018-03-23 20:44:35 · 236 阅读 · 0 评论 -
【BZOJ3996】【TJOI2015】线性代数
【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 505#define MAXP 300005#define INF 1e9template <typename T> void read(T &x) { x = 0; int f =...原创 2018-06-21 20:54:19 · 247 阅读 · 0 评论 -
【CodeForces】CodeForces Round #406 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Berzerk【思路要点】博弈搜索,将状态按先后手拆点,建出游戏图。若一个点存在出边指向必败态,则该点为必胜态。若一个点所有出边指向必胜态,则该点为必败态。不满足上述两点的点为平局态。用一个类似拓扑排序的过程实现即可。时间复杂度 O(N2)O(N^2)O(N2) 。【代码】#inclu...原创 2018-09-27 18:13:18 · 332 阅读 · 0 评论