自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

(╯°口°)╯(┴—┴

┬—┬ ノ( ' - 'ノ)

  • 博客(374)
  • 收藏
  • 关注

原创 BZOJ 2732 HNOI 2012 射箭 半平面交

题目大意:给出一些与x轴垂直的线段,问一个经过原点的抛物线最多能按顺序经过多少条线段。思路:总体上来说是数学题,我们来推一推。设这个经过原点的抛物线为y = a * x ^ 2 + b * x,设一条线段的起点和终点为(x0,y1)和(x0,y2),且y2 > y1。将x0带入到设出的抛物线中,会得到y = a * x0 ^ 2 + b * x0,这时候需要满足的是y = y1

2014-11-26 08:36:46 1731 2

原创 BZOJ 3721 PA 2014 Final Bazarek 贪心

题目大意:有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。思路:一个O(n)的贪心,先排序,然后O(n)预处理每个节点之前出现的最大奇数和偶数,和每一个节点之后出现的最小的奇数或者偶数,之后每个询问O(1)判断一下。注意初值。CODE:#include #include #include #include #define MAX

2014-11-25 17:31:04 837

原创 BZOJ 1180 CROATIAN 2009 OTOCI/2843 极地旅行社 LCT

题目大意:给出一些初始相互分离的岛,有三个操作,1.分析两点是否联通,如果不连通,在之间连一条边。2.更改一个点的权值。3.询问两点之间路径上所有点的点权和。思路:基本算是LCT的模板题了吧,好久没写了,基本都要忘了,这是照别人代码写的。。。CODE:#include #include #include #include #define MAX 30010

2014-11-25 12:21:42 1370

原创 BZOJ 2464 中山市选 2009 小明的游戏 最短路

题目大意:给出一个地图,如果经过两个不同的区块,需要花费1,否则不需要花费。问从st到ed最小需要花费多少。思路:签到题。#include #include #include #include #include #define MAX 510#define MAXP 250010#define MAXE 2000010using namespace std;

2014-11-25 10:20:32 1294

原创 BZOJ 2879 NOI 2012 美食节 费用流

题目大意:好长,如果不想看可以先看看修车那个题,基本一样。思路:做过修车就好办了。这个题仅仅是数据范围变大了一坨。建图就不说了,主要是动态加边。倒过来做,因为一个厨师最后一个菜做的时间是不会影响到其他菜的时间的。而且每一个厨师确定了最后一个菜才能去想倒数第二个菜是什么。所以每跑一次SPFA,就回来看看是哪个厨师做的菜,然后在多加一个点限制一下流量,将这个点连向所有的菜。CO

2014-11-25 09:44:15 1330

原创 BZOJ 3757 苹果树 树上莫队

题目大意:给出一棵树,问任意两点之间有多少种不同的颜色,一个人可能会有色盲,会将A和B当成一种颜色。思路:比较裸的树上莫队,写出来之后,很慢,怀疑是分块的缘故,然后果断找了当年比赛的标称交上去,瞬间rk1,大概看了一眼,他好像是直接用DFS序+曼哈顿距离最小生成树搞的,为什么会比分块快?昨天下午看到这个题之后就一直在研究树上莫队的正确姿势,然后先写了树分块,后来看了很多牛人的SPO

2014-11-25 09:29:47 3486 1

原创 BZOJ 3720 Gty的妹子树 树上分块

题目大意:给出一棵树,要求维护:1.求出以x为根节点的子树的严格大于y的数量。2.将一个节点的权值改变。3.在一个节点下加一个权值为y的节点。思路:分块这个东西太神了(别找我分析时间复杂度。。树上的分块更神。。。首先,分块的原则和正常分块一样,把一棵树分成√n块,每一块不超过√n个,然后所有的时间复杂度降到了O(√n),(这个题还有个排序,所以还有一个log(n))。如

2014-11-24 14:41:54 2529 1

原创 BZOJ 3754 Tree之最小方差树 MST

题目大意:求一个图的最小标准差生成树。思路:毫无思路,之后看了题解。居然是一个很厉害的暴力。一个很关键的地方:枚举平均值,然后根据(a - ave(a))^2将边排序,做最小生成树。所有的标准差最小值就是答案。但是这是为什么?如果当前枚举的ave(a)并不是选取的边的平均值怎么办?那么就一定有一个你会枚举到的ave(a)计算之后的标准差要比现在小。这样基本就可以说明这个

2014-11-24 10:50:31 2826

原创 BZOJ 1196 HNOI 2006 公路修建问题 二分答案+并查集

题目大意:给出n个点,要求把它们连成一棵树,有一些边可供选择,每一条遍都有一级公路和二级公路,问在一级公路不少于k的情况下最高花费的最低值是多少。思路:二分答案,然后验证的时候先将边按照一级公路的权值从大到小排序,我们每一次验证应该尽可能的选择能选的一级公路,如果一级公路不能选,看二级公路能不能选,如果。最后看一级公路选择的数量和总的公路选择的数量。CODE:#

2014-11-23 13:47:58 1174

原创 BZOJ 1103 POI 2007 大都市meg 树状数组

题目大意:给出一棵树,一开始每两个点之间都是由土路连接的,但是会有一些土路逐渐变成公路,问每次从点1开始到点k有多少土路。思路:POI不怎么难的题,实际上每个点到1的土路的数量就是这个点的深度,在土路变成公路的时候,这个点以及子树的所有节点的深度都要-1,子树修改就很基本了,可以用DFS序+fenwick,当然要是不嫌麻烦也可以树链剖分,但是常数会比较卡。。CODE:

2014-11-23 13:09:35 729

原创 BZOJ 2618 CQOI 2006 凸多边形 半平面交

题目大意:给出n个凸多边形,求这些多边形的面积的交。思路:犯傻了。。以后看到凸多边形第一时间就要想到半平面交啊。。多明显啊,半天愣着没想出来。CODE:#include #include #include #include #include #include #define MAX 6100#define EPS 1e-10#define DCMP(

2014-11-22 15:24:13 923

原创 BZOJ 1218 HNOI 2003 激光炸弹 模拟

题目大意:见NOIP2014 Day2T1CODE:

2014-11-21 17:47:24 687

原创 BZOJ 1087 SCOI 2005 互不侵犯King 状压DP

题目大意:一个国王可以攻击到旁边8个位置的格子,现在给出一个N*N的方格,向其中放k个国王,问有多少中摆放方法。思路:状压DP,f[i][j][k],其中i是行数,j是状态,k是已经取了多少国王。然后暴力枚举状态,看相邻两行之间有没有冲突,若没有冲突,那么就转移。注意要开long long CODE:#include #include #include #

2014-11-21 17:06:30 673

原创 BZOJ 2743 HEOI 2012 采花 树状数组

题目大意:给出一个序列,问一段序列中,出现两次以上的颜色有多少种。思路:和HH的项链很像。CODE:#include #include #include #include #define MAX 1000010using namespace std;struct Ask{ int x,y,_id; bool operator <(con

2014-11-21 15:13:11 728

原创 BZOJ 3685 普通van Emde Boas树 zkw线段树

题目大意:基本是一颗平衡树的基本操作。思路:本来是Treap的题,但是为了体现出vEB树的独特用处,所以就比较卡时间。权值线段树的常数会小一点,但是还是会T,所以就只能用zkw来水过了。只需要在求最大值最小值里面好好考虑一下,剩下就没什么好说的了。CODE:#include #include #include #include #define MAX 1

2014-11-21 12:23:25 1386

原创 POJ 2068 Nim 组合游戏

题目大意:有一堆石子,两伙人,围在一起坐,坐的顺序是ABABABAB。。。。每一个人最多能取a[i]个石子,取走最后一个石子的就输了。问谁能赢。思路:朴素的组合游戏判定问题,这个题给了数据范围,可以进行记忆化搜索。f[i][j]为还剩下i个石子,到了第j个人的时候的状态,然后记忆化一下。CODE:#include #include #include #incl

2014-11-21 10:45:12 951

原创 POJ 2348 Euclid's Game 组合游戏

题目大意:有两个人玩游戏,有两堆石子,每次一个人要从其中一堆石子中拿走一些石子,当出现有一对石子变成0的时候这个人就输了,另一个人就赢了。给出初始石子有多少,问谁能赢。思路:基础的组合游戏的判定问题,这个题没有给数据范围,非常的坑爹,据说需要long long。第一次做组合游戏的题目,想想还有些小激动呢。昨天听同学讲了讲,我来现学现卖一下:由于组合游戏的公平性,那么:如果一个状

2014-11-21 09:58:41 898

原创 BZOJ 3212 Pku3468 A Simple Problem with Integers

题目大意:你拍一,我拍一,大家一起刷水题。CODE:#include #include #include #include #define MAX 100010#define LEFT (pos << 1)#define RIGHT (pos << 1|1)#define CNT (r - l + 1)using namespace std;struct S

2014-11-20 17:57:01 746

原创 BZOJ 1212 HNOI 2004 L语言 Trie树

题目大意:给出一些单词,和一些句子,当且仅当句子可以分割成的子串都可以被词典翻译,就说明这个子串是可以被翻译的。求最长的可以被翻译的前缀长度。思路:利用Trie树来刷数组,能够刷到的最长的地方就是这个串最长可以翻译到的地方。PS:在BZOJ上Trie居然比AC自动机快,我的渣代码都刷到第一篇了。。。CODE:#include #include #includ

2014-11-20 17:27:22 1211

原创 BZOJ 2007 NOI 2010 海拔 平面图最小割->最短路SPFA+pq

题目大意:给出一个城市各个道路的双向流量,城市的左上角的高度是0,城市的右下角的高度是1,若人流升高海拔就会消耗体力,问最小需要消耗多少体力。思路:这道题才是真正的让我见识到了algorithm中的heap的强大。分析这道题可以发现,一定会有一条分界线,这个分界线左边高度都为0,右边高度都是1,然后找到这条分界点就可以了。明显的最小割。但是数据量巨大,直接跑最大流会T,又是平面图,

2014-11-20 15:17:13 1144

原创 BZOJ 1324 Exca 王者之剑 最小割

题目大意:给出一个带权值的矩阵,取走一个地方的权值之后,与其相邻的格子的权值就会变成0,问最多可以取出多少权值。思路:Amber论文里的题。建图不难,把图染色,然后一种颜色从S连边,另一种颜色向T连边。再把相邻的格子连边,之后跑最小割,用总权值减去最大流就是答案。CODE:#include #include #include #include #includ

2014-11-20 14:07:34 1020

原创 BZOJ 1047 HAOI 2007 理想的正方形 单调队列

题目大意:给出一个矩阵,求出一个k*k的子矩阵,使得这个矩阵中最大值和最小值的差最小,输出这个差值。思路:利用单调队列维护每一行的数字,求出一个数字前面k个数字中的最大值和最小值,然后在列上暴力求出真个矩阵的最大值和最小值,总时间复杂度O(M*M+M*M*K)。CODE:#include #include #include #include #include

2014-11-20 12:07:21 1054

原创 BZOJ 1975 SDOI 2010 魔法猪学院 A*求K短路

题目大意:给出一张无向图,给出一个数值m,求出从1到N的前k短路的长度和>=数值m。思路:注意!不能使用priority_queue,否则你会死的很惨。。为了解惑,我去找了当年SD省选的原题,分明空间是256M,为什么BZOJ和BASHUOJ上都是64M??卡pq有意思么???思路很简单,就是按顺序求出这张图的前k短路,然后当m减成负数的时候就返回。CODE:#

2014-11-20 10:47:58 1419

原创 BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度

题目大意:思路:基尔霍夫矩阵求生成树个数,不会。但是可以暴力打表。(我才不会说我调试force调试了20分钟。。。CODE(force.cc):#include #include #include #include #define MAX 1000using namespace std;struct Edge{ int x,y; Edge(

2014-11-19 15:37:14 1186

原创 BZOJ 1084 SCOI2005 最大子矩阵 动态规划

题目大意:给出一个矩阵,求在这个矩阵中取出k个不重叠的矩阵的最大和。思路:怎么做?这个问题困扰我好几天的时间,终于再一次读题:。。。。。。。。2??!!这尼玛逗我??直接说最多两列不好么?还用矩阵吓唬我?好吧下次我一定认真看题。。我的做法比较渣,算出来的时间复杂度是O(m^3*k),但是只有最多3000w,还是可以过的。状态:f[i][j][

2014-11-19 13:30:46 1376

原创 BZOJ 3289 Mato的文件管理 莫队算法+树状数组

题目大意:给出一段序列,求一个区间内的逆序对数量.思路:又是没有修改的查询操作,又可以搞莫队了(莫队真好搞..先把所有的询问排序,然后从头到位进行转移,记一个全局的答案,然后每次转移的时候记录逆序对的改变情况.然后从ans数组中输出..CODE:#include #include #include #include #include #define

2014-11-18 15:07:08 910

原创 BZOJ 3236 AHOI 2013 作业 莫队算法

题目大意:给出一些数,问在一个区间中不同的数值有多少种,和在一个qujuianz

2014-11-18 13:52:02 1384

原创 BZOJ 3436 小K的农场 查分约束系统 SPFA判负环

题目大意:农场中有一些土地,上面会长一些作物,现在给出一些约束条件,问有没有这种可能.思路:裸的查分约束系统判负环.记住要跑最长路.CODE:#include #include #include #include #include #define MAX 100010using namespace std; int points,asks;int

2014-11-17 16:32:35 1692

原创 BZOJ 1251 序列终结者 Splay

题目大意:维护区间的最大值,要求可以区间翻转和区间加减。思路:弱化版的1500,好长时间没写带标记的Splay了,错误重重。这个题可以当作带标记的Splay模板了。CODE:#include #include #include #include #define INF 0x3f3f3f3f#define WORKPATH (root->son[1]->

2014-11-15 20:52:04 770

原创 BZOJ 1968 AHOI 2005 COMMON 约数研究 线性筛/暴力

题目大意:设f(i)为i的约数个数,求f的前缀和。思路:暴力是O(n*sqrt(n)),大概过不去。看这数据范围应该就是线性筛没跑了,但是我不会筛约数个数。于是在暴力上面加一点点打表。吧1w到1kw之间10000的倍数的答案打出表,然后剩下10000暴力就好了。CODE(丑陋的打表):#include #include #include #include

2014-11-15 19:11:39 897

原创 BZOJ 1862/1056 ZJOI 2006 GameZ游戏排名系统/ HAOI 2008 排名系统 Treap (双倍经验)

题目大意:维护一种游戏排名系统,为他们的得分排序,若得分一样,则时间早的优先。有的时候要查询一个人是第几名,或者一段名次都是谁。思路:拿到题一看就知道是暴力Treap乱搞,但是一查不知道看到了谁的文章,说Treap会T,我就战战兢兢的写了Splay,结果T了,拿到数据发现被一个点卡了100s。于是怒写Treap,1.2s怒切。PS:千万不要相信谣言。。CODE:

2014-11-14 12:14:25 880

原创 BZOJ 2038 2009国家集训队 小Z的袜子 莫队算法

题目大意:给出一些袜子的排列顺序,每次问一段区间中有多少相同颜色的袜子对。思路:莫队算法真是一个神奇的算法。首先,暴力枚举是O(n^2)的时间复杂度,这肯定是不行的。假如区间是保证不重合的,那么就可以将总的时间转移的复杂度降到O(n)。很遗憾,题目中没有这个保证。于是乎,神秘的莫队就发明了一种神奇的算法。对于每一个询问,我们将它看成一个平面上的点(x1,y1),同样的也就会有其他的

2014-11-13 15:29:23 688

原创 POJ 3241 Object Clustering 曼哈顿距离最小生成树

题目大意:求出曼哈顿距离最小生成树上的第k大边权。思路:首先,你要了解:http://blog.csdn.net/acm_cxlove/article/details/8890003也就是说,我们以每一个点为中心,把平面分成8个部分,每一个部分我们只需要离这个点最近的点。然后加上建一条边连接这个边和最近的点。然后就是MST。听说这个算法是莫队算法的基础,我现在就去学。

2014-11-12 16:12:48 816

原创 BZOJ 1861 ZJOI 2006 Book 书架 Splay

题目大意:有一个书架,现在需要经常改变这些书的位置,每次询问一本书在哪或者第几本书是什么。思路:赤裸裸的Splay,只是有些小事需要注意。因为他有的时候问你一个书在哪,这个事情不能只在Splay中就能解决,我们需要辅助他解决。注意到操作中没有加入书的操作,也就是书的总数并不会变化,而且Splay的过程中只是指针的变动,所以不会有点发生变化,所以在一开始建树的时候维护一个数组,表示这本书

2014-11-11 20:39:12 727

原创 POJ 2945 Find the Clones Hash

题目大意:给出一些字符串,问其中n个一样的有多少。思路:看discuss里各种神奇的方法啊,什么map啊,什么Trie啊。这题不是一眼Hash么。。难道是我想错了?任意hash方法将所有字符串hash然后排序,之后统计一下相同的有多少就行了,500+MS水过。。PS:明天就是NOIP我这么水真的好(CODE:#include #include #incl

2014-11-07 10:52:01 678

原创 BZOJ 3555 CTSC 2014 企鹅QQ Hash

题目大意:为了分辨那些qq是一个人的小号,我们需要写一套程序来判定哪些名称是相似的。相似的定义是有且只有一个位置的字符不同。思路:数据范围不算太大,很明显的Hash,二分都不用。听老师说今年去CTSC考试的学长中有一个人没AC这个题是因为想多了。他当时写了Hash,然后闲的没事自己出一组数据卡掉了自己的hash,然后就不敢交hash了,最后交了一个Trie树,结果T了。。血的教训告诉我

2014-11-06 16:27:52 1045

原创 BZOJ 1191 HNOI 2006 超级英雄Hero 二分图最大匹配

题目大意:闯关答题,每一个题可以用两个trick中的一个来解决,一个trick最多只能使用一次,问最多可以连续答对多少题。思路:我一开始就想到了二分图最大匹配,但是思路完全想歪了。我看每个题有两个trick可以用,就用这个来拆点建图,显然是错的。。正确的是用每个题和每个trick来建边,来一个问题就建两条边,然后看能不能找到增广路,如果不能就无法答对这个题,输出。COD

2014-11-06 14:14:13 767

原创 POJ 3204 Ikki's Story I - Road Reconstruction 最大流关键边

题目大意:给出一个裸的最大流的图,求这个图中哪一条边的流量增大会使整个图的最大流增大。前言:POJ400题达成~~~思路:真心不知道这个题用预流推进怎么做,先给写预流推进的犇们点根蜡。。我用的是Dinic,写起来就比较轻松。模拟一下Dinic的过程,加入一条边的流量增大就会使S到T的最大流增大的充要条件是1.S->当前边的起始节点可以在残余网络中联通2.当前边的终止节点

2014-11-05 13:33:12 722

原创 BZOJ 1066 SCOI 2007 蜥蜴 最大流

题目大意:给出一张图,每一个点有一个寿命,当有这个寿命值个蜥蜴经过后这个点就会消失,一个蜥蜴可以跳到距离不超过d的点上,问最少有多少只蜥蜴无法跳出这张图。思路:我们将每个点拆点,然后限制流量为这个点的寿命,之后源点向每个蜥蜴连边,互相能够到达的点之间连边,能够跳出这个图的点和汇点连边,跑最大流就是这个图中最多能够跑出去的蜥蜴数量,最后在用总数减去就是最少不能逃出去的数量。C

2014-11-05 12:57:56 784

原创 BZOJ 1412 ZJOI 2009 狼和羊的故事 最小割

题目大意:一个农场中有狼和羊,现在要将他们用围栏分开,问最少需要多少围栏。思路:所有源向所有狼连边,所有羊向汇连边,图中的每个相邻的格子之间连边,然后跑S->T的最大流,也就是把狼和羊分开的最小割。CODE:#include #include #include #include #include #define MAX 11000#define MAXE

2014-11-05 11:15:13 1854

空空如也

空空如也

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

TA关注的人

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