自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Icefox的博客

生活不止眼前的苟且,还有诗和远方。

  • 博客(133)
  • 资源 (3)
  • 收藏
  • 关注

原创 bzoj1059 [ZJOI2007]矩阵游戏(二分图完美匹配)

同行同列的点无论经过多少次变换人仍然同行或同列,所以题目可转换为能不能找到n个互相不同行或同列的点。直接行列二分图看能否完美匹配即可。

2017-09-30 16:11:48 285

原创 vijos1212 Way Selection(二分图最大匹配)

建二分图,然后去跑匈牙利算法就好了。

2017-09-30 15:16:44 329

原创 bzoj1191 [HNOI2006]超级英雄Hero(二分图最大匹配)

裸题诶!左半图是1~m的题目,右半图是0~n-1的锦囊,求最大匹配。注意题目要求按m的顺序求,不能断。

2017-09-30 14:47:01 314

原创 luogu3386【模板】二分图最大匹配

二分图最大匹配板子

2017-09-30 14:17:17 266

原创 bzoj1690 [Usaco2007 Dec]奶牛的旅行(最优比率环,二分答案+spfa判负环)

做了最优比率生成树,这道题意思差不多,也是二分答案,用spfa判负环即可。

2017-09-30 12:57:53 308

原创 poj2728 Desert King(最优比率生成树,二分答案+prim)

最优比率生成树,就是01规划问题,可以用二分答案来解决。最后答案可以表示成∑iw[i]∑id[i]\frac{\sum\limits_i w[i]}{\sum\limits_id[i]},我们二分答案,如果∑iw[i]∑id[i]<mid\frac{\sum\limits_i w[i]}{\sum\limits_id[i]}<mid, 则∑iw[i]<∑id[i]∗mid\sum\limits_i

2017-09-30 10:22:22 330

原创 bzoj3206 [Apio2013]道路费用(kruskal+并查集+状压枚举+dfs)

我们先优先的把k条指定边加入到生成树中。这时候生成树中的非指定边是必选的,无论在那种方案中。因此我们先把这些点缩成一个点,这样,我们最多剩下了k+1个点。(把图中的边清空,加入必选边,连通块缩成点,这样我们会得到一个点数不超过 K + 1 的图,令此图为新图(注意,新图中不包含任何边,只有那至多 K + 1 个点))同时 m 条边中必选边之外的边如果放在新图中会有很多重边,将这些重边合并,于是压缩成

2017-09-29 16:42:26 371

原创 NOIP模拟9.28

2013提高D2 A.积木大赛(模拟+递归+st表)AC B.花匠(贪心)AC C.华容道(bfs+spfa)40.搜索手残写挂,本来有70分的。

2017-09-28 20:51:31 245

原创 bzoj2654 tree(kruskal+二分)

orz clj orz clj orz clj 要求恰有ned条白边的最小生成树。我们发现,给所有白边的权值加上一个正数后,mst中白边的个数是单调不增的。因此我们可以二分给所有白边加上一个值,然后去做最小生成树,统计白边个数,若多于ned,则权值应该再加大,若少于ned,则权值应该再减小。 但是有一个很重要的细节:万一我二分x时,白边个数大于ned,但二分x+1时,却小于ned,也就是说不

2017-09-28 12:38:06 299

原创 bzoj3714 [PA2014]Kuglarz(贪心+并查集)

显然如果要知道所有球的位置,需要知道所有的前缀和的奇偶性。而我们知道了x到y的奇偶性,就是知道了sum[y]-sum[x-1]的奇偶性,我们可以贪心的每次把花费最小的一次询问问了,然后把知道的两个sum合并到一个集合,就像建最小生成树那样。

2017-09-28 10:00:10 532

原创 bzoj1682 [Usaco2005 Mar]Out of Hay 干草危机(kruskal裸题)

最大边最小,就是最小生成树裸题

2017-09-28 09:12:14 420

原创 bzoj1626 [Usaco2007 Dec]Building Roads 修建道路(kruskal裸题)

kruskal裸题

2017-09-28 08:58:12 555

原创 bzoj2429 [HAOI2006]聪明的猴子(prim)

就是求最大边最小,就是最小生成树,prim应该更快些

2017-09-28 08:34:20 322

原创 bzoj1016 [JSOI2008]最小生成树计数(kruskal+dfs+乘法原理)

首先需要一个结论,对于一个图的不同最小生成树,每种方案所包含的每种权值的边的数量一定一致。换句话说,把每种方案包含的所有边的边权都写下来,写出来的序列一定都一样。关于这个结论的说明放在最后。 这样的话,可以先做一遍kruskal,记下每种边权的使用次数,然后对于每种边权进行dfs,判断有多少种合法的组合方式【一种方案合法意味着:1.加入每条边时,边的两端点一定属于不同的并查集,也就是仍然要符合k

2017-09-27 22:46:04 308

原创 NOIP模拟9.27

2013提高D1 A.转圈游戏(快速幂)AC B.火柴人排队(树状数组求逆序对)AC C.货车运输(贪心+并查集+树上倍增)AC

2017-09-27 11:31:51 313

原创 NOIP模拟9.23(TYVJ NOIP2017模拟赛D1)

T1 回形遍历T2 排列T3 近似排列计数

2017-09-27 11:23:40 691

原创 poj1556 The Doors(建图spfa+判断线段交)

我们把起点和终点,还有所有的线段端点连起来跑最短路即可。两点之间连线段时要判断是否合法,即是否与之间的墙相交。怎么判断呢,直接算斜率什么的会有很大的误差,还可能出现除0的情况很讨厌,因此百度一下向量叉积判断线段相交。看得我都晕了。嗯。下次看到大概还是不会。

2017-09-26 21:38:55 346

原创 bzoj1977 [BeiJing2010]次小生成树 Tree(kruskal+树上倍增)

先求出最小生成树,注意要严格次小。。。 枚举每一条非树边,把他加进来然后删掉这条非树边连接的两点在树上原来的路径上的最大边(保证是次小),(如果最大边与非树边边权相同则找次大边,为了严格次小)然后更新最小增量。 最大边和次大边可以通过树上倍增求出

2017-09-26 20:21:37 324

原创 bzoj3390 [Usaco2004 Dec]Bad Cowtractors牛的报复(最大生成树)

最大生成树,和最小基本一样。

2017-09-26 13:59:51 311

原创 bzoj1232 [Usaco2008Nov]安慰奶牛cheer(kruskal)

对树dfs的性质是,遍历过程中每条边会被访问两次,点访问次数为度数,起点再多一次。 于是我们把遍历的过程每条边分开考虑。 每一条边对答案的贡献为边权*2+两点的点权。 按新权求一棵最小生成树再加上最小点权(作为起点访问)即可。

2017-09-26 13:30:01 299

原创 bzoj1821 [JSOI2010]Group 部落划分(贪心+并查集)

我们贪心的每次消灭最小边,用并查集维护有几个连通块,减到k个时就输出。

2017-09-26 08:08:59 332

原创 hdu5692 Snacks(线段树+dfs序)

我们维护每个点到根的权值和。询问过x的路径中权值最大的,即询问x的子树中到根的距离最大的。修改x为y,则x的子树中的所有点到根的距离都加上了y-a[x]。显然可以用dfn变成连续区间用线段树来维护。

2017-09-25 21:53:26 336

原创 hdu5877 Weak Pair(dfs+线段树+离散化)

给定一棵有根树(注意跟不一定是1.。。),求有序对(u,v)满足的个数: 1.u是v的祖先 2.a[u]*a[v]<=k。 我们在对树进行dfs时,做到v点,此时在我们的dfs栈中的点正是v的祖先,一个不多,一个不少,我们只需在这些点中找到小于等于k/a[v]的点。显然可以把权值离散化了,用线段树来维护

2017-09-25 20:35:25 288

原创 CF384E Propagating tree(线段树+思路题)

首先把子树通过dfn化为连续的区间。然后看操作: 1.对x加val,对他的儿子们-val,对他的儿子的儿子们+val,直到叶子。 2.求一个位置的数是多少。 第一个操作比较难搞,我们发现它是隔层做的,也就是说把每个点按照深度分成两组,做x点时,他的子树中与他同组的都+val,不同组的都-val。我们可以维护两棵线段树,分别维护每组加了多少,最后问pos是多少时,他的答案就是a[pos]+同组一

2017-09-24 22:03:50 259

原创 poj2482 Stars in Your Window(线段树+扫描线+离散化)

这题目好浪漫啊~~~~~~~~~~~~~ 说正事:对于每个点,我们把它变成一个范围,这个范围的意义是,只要矩形的右上角在这个范围内,这个点就可以被这个矩形覆盖。则这个范围显然就是(x,y,x+w-1,y+h-1)的一个矩形。现在我们的题目就变为:平面上有n个矩形,每个矩形内的点都有一个权值,可以互相叠加,问你权值最大的点是多少?我们可以用扫描线解决这个问题,按x排序,每次入边就是对区间[y1,y2

2017-09-24 19:59:31 379

原创 bzoj1218 [HNOI2003]激光炸弹(二维前缀和+暴力/线段树+离散化+扫描线)

n=5000,暴力O(n^2)预处理二维前缀和,暴力O(n^2)枚举答案矩阵。 当然正解是O(nlogn)的线段树+扫描线+离散化的老套路。。详见poj2482

2017-09-24 16:13:46 389

原创 poj1151 Atlantis(线段树+扫描线+离散化,求矩形面积并)

写过的裸题,还敲了半天。。。太蒻

2017-09-23 19:31:01 317

转载 一些图论、网络流入门题总结、汇总

转自kuangbin

2017-09-23 17:54:50 339

原创 NOIP模拟9.21

2012提高D2 A.同余方程。扩展欧几里得算法求逆元。写了个暴力60分。 B.借教室。线段树写错,25分。线段树本来可以拿到90分。。正解是二分答案+前缀和 C.爆0.写的暴力一堆错。。可能不在状态吧。本来暴力可以拿到30左右。。正解是二分答案+贪心+倍增。真心不好想,不好写。

2017-09-23 16:21:04 216

原创 bzoj4069 [Apio2015]巴厘岛的雕塑(贪心+dp+位运算)

把n个数分成k部分,使得每部分的和的按位或最小。我们考虑答案的最大可能值,我们贪心的从高到低枚举二进制下的每一位,为0最好,而为0的条件是要求分成的所有和的这一位上都是0,我们可以用dp去解决这个问题。(同类的问题还有求按位与最大,思路基本相同,贪心的判断此位能否为1,位运算求极值大概总会用这种套路思考吧). dp的具体细节,对于一般的数据,a<=k<=b,我们用f[i][j]表示前i个数,分成j

2017-09-22 16:39:28 317

原创 luogu1083【2012提高】借教室(二分答案+差分前缀和)

二分答案是精髓,差分前缀和代替线段树,好写又精简!

2017-09-21 21:39:49 405

原创 bzoj1601 [Usaco2008 Oct]灌水(prim)

直接做不太好做,我们搞一个超级源点,让它向每一个点建一条权值为w的边,然后我们求最小生成树即可。这样可以保证至少有一个点我们建了水库。而且所有点连通。

2017-09-21 12:48:49 275

原创 bzoj1083 [SCOI2005]繁忙的都市(kruskal裸题)

kruskal求最小生成树,先把边按边权排序,然后从小到大,每次合并两个节点,如果不在一连联通块上,那么这条边就是我们要统计的边,用并查集维护,总复杂度O(ElogE)

2017-09-21 11:21:13 317

原创 bzoj3479 [Usaco2014 Mar]Watering the Fields(prim裸题)

prim,O(n^2)求最小生成树。每次贪心的把最小边加进去。

2017-09-21 10:53:36 325

原创 bzoj1986 [USACO2004 Dec] Dividing the Path 划区灌溉(dp+单调队列优化)

题目大意就是说给你一段数,让你划分成尽量少的多个长度在[2* a,2* b]的区间,且满足一些区间不能被割裂。比较好想的,f[i]表示灌溉前i个位置最少划分的区间数。则f[i]=min{f[k]+1},2*a<=i-k<=2*b,但是有可能k,i不能划分成一个区间即k或i位置属于一个不可割裂的区间。(我们提前预处理出这样的点),我们要注意这种情况给inf,然后O(nm)过不去,我们很容易的想到可以用

2017-09-21 10:15:33 460

原创 bzoj1855 [Scoi2010]股票交易(dp+单调队列优化)

dp[i][j]表示第i天结束时手里有j股票的最大利润。则无非三种选择: 1.第i天不交易,则dp[i][j]=dp[i-1][j] 2.第i天买入,则dp[i][j]=max{dp[i-w-1][k]-ap[i]*(j-k)| 1<=j-k<=as[i]} 3.第i天卖出,则dp[i][j]=max{dp[i-w-1][k]+bp[i]*(k-j)| 1<=k-j<=bs[i]} 第i天的

2017-09-21 09:13:07 431

原创 bzoj1835 [ZJOI2010]base 基站选址(dp+线段树优化)

直接dp O(n^3)会T,所以我们采用线段树优化

2017-09-20 17:36:05 396

原创 bzoj4010 [HNOI2015]菜肴制作(拓扑排序+贪心)

一上来我们考虑正着贪心,发现不太正确。。。于是反着建图,反着贪心,也就是说,反过来之后,入度不为0的点一定不能最后做,我们在入度为0的点中选一个最大的搁在最后,让更小的更有机会放在前面。

2017-09-20 16:34:20 381

原创 NOIP模拟9.20

2012提高D1 A.Vigenère 密码(模拟)AC B.国王游戏(贪心+高精)没写高精60. C.开车旅行(模拟+倍增+set)暴力了70. C预处理要用到set,有些麻烦。倍增时把两人各走一步看做一整步,最后要特判A还能走一步,而B不能的情况。

2017-09-20 15:58:58 251

原创 bzoj1924 [Sdoi2010]所驼门王的宝藏(tarjan缩点+拓扑排序+dp)

把每个点向它能到达的点连一条有向边,那么答案就是这个图的最长链。然后就是一个强连通分量缩点+拓扑排序dp求最长路的套路了。但是,边不能直接暴力连!比如 同一行可能会有好多横天门,然后 就爆掉了!!!其实如果一行有许多横天门,我们不需要对每个横天门都连许多边,因为同一行的横天门肯定是属于同一个强连通的,反正我们也要给他们缩点,所以我们只拿一个横天门出来做,让他去连边,对于同一行的横天门连双向边,其他门

2017-09-19 13:18:27 535

zjoi2015.zip

浙江省选 2015 zjoi 数据 题目zjoi2015.zip 2015浙江省省赛数据。

2018-02-23

国家集训队2004论文集

国家集训队 论文集 2004 OI。

2017-08-05

2013国家集训队清华集训

2013国家集训队清华集训资料。

2017-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除