自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辗转山河弋流歌

暂停更新和答疑

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

原创 【BZOJ1443】【JSOI2009】游戏Game 二分图+博弈

题解:二分图博弈经典模型模板题。首先黑白染色。然后我们考虑到有一种优秀的走法,    就是先求个最大匹配,然后如果先手选择了一个最大匹配中的点,那么显然后手可以依照此点的匹配再走一步,然后先手无法走此匹配,就乱走一气,于是有两种情况:一、又选了一个最大匹配中的点,显然回到了情况一。二、他选了一个不在最大匹配中的点(显然是有这种情况的),如下图,先手走3,后手走2,先手走

2015-01-30 20:04:42 2494 1

原创 【BZOJ2007】【Noi2010】海拔 平面图最小割转最短路

题解:这个模型很水,不需要极角序神马转对偶图,直接乱搞就行。然后目的是把图割开,那么只需要跑S->T最短路就行。要做平面图转对偶图不妨去这篇。【BZOJ2965】保护古迹 平面图转对偶图,暴力,网络流还有就是某人说堆很快233,我弱弱的优先队列竟然,嘿嘿。@jiangyuze831BZOJ 2007 NOI 2010 海拔 平面图最小割->最短路SPFA

2015-01-29 22:05:14 1665

原创 【BZOJ3158】千钧一发 最小割

题解:如果i、j不能共存,那么就中间连一条边,然后i连源流量b[i],j连汇流量b[j],就可以满足性质。但是问题是哪个点连源,哪个点连汇呢?这种做法需要图是二分图,这样某些点就可以只连源,某些点只连汇。当且仅当这种情况才可以有上述建图。而这道题有个很好的性质:任意两个奇数肯定满足条件一(把奇数看成2k+1,然后最后形式是2*奇数),任意两个偶数

2015-01-29 16:07:29 2447

原创 【BZOJ3064】【Tyvj1518】CPU监控 裸线段树

题解:显然是裸的线段树,连区间合并都没有,更别提可持久化了。。。水得一比,但是也相当恶心。。维护一下:目前线段 最大值、覆盖值、增加值、历史线段 最大值、覆盖值、增加值。然后覆盖值是赋-inf还是再加个flag记录有没有随便了。总之很恶心,昨天晚上调了好久好久都没调过。对了,这种恶心的东西不妨分多个线段树维护。o(︶︿︶)o

2015-01-29 14:42:30 3215

原创 【BZOJ1787】【Ahoi2008】Meet 紧急集合 LCA、双倍经验

233……【BZOJ1832】【AHOI2008】聚会 倍增lca就是这道题。输入输出都没有改。http://blog.csdn.net/vmurder/article/details/42607739题解也在以前那篇博客里面。代码:(直接复制的那篇博客)#include #include #include #include #define N

2015-01-28 19:09:28 1540

原创 【BZOJ2144】跳跳棋 模拟gcd以及倍增LCA

题意:首先一个状态至多有3种跳的方法的~不能隔着格子跳的~题解:既然有三种方法,那么显然有两种是向外跳,一种是收敛着跳(往里)然后这个就可以类比成父亲状态和子状态,里兮为父,外则即子。(诶窝里斗的感觉,,这文言文有点喜感)然后我们就发现步数是开始状态和结束状态都往里走,走到lca的步数。或者说开始状态走到lca,然后再由lca走到结束状态。。

2015-01-28 18:56:58 1706 1

原创 【BZOJ1143】【CTSC2008】祭祀river 传递闭包、最大点独立集(网络流写的)

题意:那个图不要看,给的没错,是有向无环图(拓扑)题解:对于每两点,都有一个关系————>如果传递闭包后a能到b,那么两者只能选一个。完事了。代码:#include #include #include #include #include #define N 305#define M 25000#define inf 0x3f3f3f3fusing

2015-01-28 07:41:52 2028

原创 【BZOJ2132】 圈地计划 最小割

题解:水题,经典模型是两个在一块会损失,显然很好做。这个同样很好做,就是黑白染色,然后某种颜色该连S集的连T,该连T的连S。代码:#include #include #include #include #include #define N 10100#define M 200000#define P 105#define inf 0x3f3f3f3fusi

2015-01-27 20:37:24 1644 1

原创 【BZOJ2965】保护古迹 平面图转对偶图,暴力,网络流

题意:自己看去吧。题解:如果不考虑这道题的某些小数据范围,那么正解应该是:首先平面图转对偶图,然后扫描线处理名胜古迹过程中运用到邪恶的平衡树(就算是set也依然恶心)或者用神奇方法Ⅰ判断(cheat)一个名胜古迹在哪些域里面[注: 域]:就是一些线段围起来的一块啦。然后用神奇方法Ⅱ(cheat然后是裸最小割噗。所幸:一、名胜古

2015-01-27 19:38:37 2006

原创 【BZOJ3192】【JLOI2013】删除物品 模拟

题解:代码中init是当前左堆堆顶序号,然后给每个物品映射排序,暴力从最大一直扫到最小,每次加上两个序号之间还存在的物品数量(用个树状数组、线段树神马的),然后删除物品修改init……反正水到爆,乱搞就好。代码:#include #include #include #include #define N 101000using namespace s

2015-01-23 22:15:41 1463

原创 【BZOJ3442】学习小组 费用流

题意:那个要尽量多的学生参加的意思就是一个学生如果对至少一个小组有兴趣,就一定要让他参加至少一个小组,然后每个学生至多参加k个,但是不是强迫参加。题解:费用流算了,还是说说建图吧。模式:add(入点,出点,流量,费用)(别忘了反向弧)add(源点,学生,k,0),add(学生,汇点,k-1,0)对于每个学生A有兴趣的小组B add(A,B+n,1,0)连n条

2015-01-23 16:13:51 1653

原创 【BZOJ3841】【HDU4873】ZCC Loves Intersection 概率、数学、Python

题解:呃,我这么弱就不贴题解了。给一份详细的网址(Eolv):http://eolv.farbox.com/post/oionly/bzoj3841再来一份详细的网址(YYN):http://blog.csdn.net/u013368721/article/details/38092859这还有一份官方题解:http://blog.sina.com.cn/s/blog_6bddecdc

2015-01-23 08:13:10 1460

原创 【BZOJ1560】【JSOI2009】火星藏宝图 动规

题解:我们先把点排序,优先排行。呃,我们或许可以暴力建边(但如果a->b,b->c,则a不连c)但是如果把正方形拆成四个,然后左上角往右上来10W个,然后……等会,我想错了,这种方法貌似可以做,自己脑补一下去吧,拓扑图DP。下面说正解:我们扫一遍这些点,记录pos[i]表示第i列[当前]最靠下的有点位置,然后f[i]记录它的动规值。然后O(M)扫一遍得到当前

2015-01-22 22:18:43 1592

原创 【BZOJ3876】【Ahoi2014】支线剧情 有下界的最小费用最大流

【BZOJ2324】营救皮卡丘 这道题也是一道有下界的最小费用最大流。我的题解地址:http://blog.csdn.net/vmurder/article/details/41378979这道题其实就是模板题。    我的处理方法就是把每条边拆一条流量为1的出来,然后费用为本来费用-inf。而在建图时可以把这些扣掉的inf加回来。可以证明这种方法至少在拓扑图上是不会被卡出负环

2015-01-22 20:37:21 1927

原创 【POJ1521】【HDU1053】Entropy 哈夫曼(Huffman)编码

题意:输出字符串的长度*8、huffman编码长度、两者比值。题解:huffman编码:我们发现对于一个字符串,如果我们把它变成01串,比如ABCDE那么我们需要A : 000B : 001C : 010D : 100E : 101来表示每一个字符,然后识别的时候就是每三个一识别。这种编码叫定长编码。显然对于一个串,它的定长编码长

2015-01-22 16:03:45 1797

原创 【BZOJ3110】【Zjoi2013】K大数查询 树套树 权值线段树套区间线段树

题解:外层权值线段树,内层区间线段树可解。权值都是1~n,就不用离散化了。我写了标记永久化。其它心得神马的:天生对树形数据结构无爱。第一次写树套树,终于知道是怎么回事了。(只针对本题)就是外层每个点都表示了一段权值,而它同时还是一颗线段树,线段树里面记录了这段权值的出现区间、次数等等。然后每次插入的时候都是暴力地把该权值所在的

2015-01-22 15:14:08 2699

原创 【BZOJ2780】【Spoj8093】 Sevenk Love Oimaster 后缀自动机

题意:n,mn个串m个串样例里面倒数第二行的you应该扔到下一行。问m个串每个在前n个串中的几个出现过。题解:首先这道题跟【BZOJ2754】【SCOI2012】喵星球上的点名是一样的,只不过更卡时一点,或者说喵的数据太弱。这道题虽然是后缀自动机,但是大体思路和【BZOJ2434】【NOI2011】阿狸的打字机 AC自动机

2015-01-22 10:22:22 2757

原创 【BZOJ1342】【Baltic2007】Sound静音问题 单调队列

题意:虽然这道题是汉语的,但是我有必要说一下题意。就是问你长度为m的区间中,有哪些区间的最大值-最小值注意!!!如果没有方案输出NONE。题解:首先我们可以写一个multiset2400ms+,就是这样,然后貌似还可以写个线段树(不知道有没有人写)但是正解显然是写两个O(n)的单调队列。一个维护当前区间最大值,另一个维护最小值。代码:#include

2015-01-21 18:16:36 1705

原创 【BZOJ1811】【IOI2005】mea 平均数

题意:自己去看题解:我们把平均数序列看成一个线段,那么这个线段就被序列中的数分成了若干段。然后在其中一段上选一个点,原序列应该是唯一的,【对应点:当前点+对应点/2=平均数序列中两段交界点】所以它到下一段的对应点就是唯一的,而此时我们不妨把整个序列沿着当前段和下一段的交界点折一下,这样当前选的这个点直接平移到折完后的那部分就是它的对应点了~然后我们就可以把整个序列折来折

2015-01-21 16:54:10 1232

原创 【BZOJ1806】【IOI2007】Miners 矿工配餐 动态规划

题解:f[i][j][k][l][m]表示到第i个字母,第一坑的当前两个字母是jk,第二坑lm时的最大权值。然后暴力瞎转移就好了。对了,10W*4*4*4*4=2560W,64M内存限制,要写滚动数组。代码:#include #include #include #include #define N 101000#define inf 0x3f3f3f3fusin

2015-01-21 16:01:13 1963

原创 【BZOJ3880】炼辰 有向有环有限制的博弈 我是出题人!

嗯,这是一道原创题。然后下面贴的是我当时写的题解。本来以为在BZOJ上面晒一段时间可以有人去花时间想一想这道题。但是貌似我想多了。。。{这道题显然是一道博弈题,然后因为环断了一个点,所以不妨先把它处理成一条链。这道题我对于数据规定了一种性质:任意两条边不相交。这样就大有可做了。首先我们思考,从起点出发,那么因为每到一个点,之前的点就都走过了,所以现在无法通过边回

2015-01-21 14:52:54 2122

原创 【BZOJ2600】【IOI2011】ricehub 二分答案

题意 : 见题目。题解:二分答案,然后对于一个ans,它显然是取了连续的一段。然后这个连续的一段显然一定是取中位数那个稻田作为粮仓。然后显然可以区间快速转移。然后显然这是一道水题,显然他需要开long long。显然如果你还不懂的话可以留言问。代码:#include #include #include #include #define N 1

2015-01-21 14:32:02 1641

原创 【BZOJ2786】【Ural1142】Relation 递推,动态规划,高精度,Python

题解:f[i][j]表示前i个数分成j段【段:两个数=则为一段】然后转移方程f[i][j]=f[i-1][j-1]*j+f[i-1][j]*j就是不增加段,那么第i个数可以放到f[i-1][j]时的任意段中增加段,那么我们随意插到某空中代码:#f[i][j]=f[i-1][j-1]*j+f[i-1][j]*jans=[0]*60f=[ ([0]*6

2015-01-21 10:38:40 1183

原创 【BZOJ2729】【HNOI2012】排队 组合数 数论 Python高精度

题解:代码里面有注释。注意:Python2中的中文字符即使注释了,也会CE(当然,因为Python是直接运行,不编译,所以显示WA)呃,而本地的Python3就不管它了。。所以我的代码需要删掉中文注释再交233。代码:# n!(A(n+1,2)*A(n+3,m)+2*(n+1)*A(n+2,m-1)*m)# 首先男生随便放 这样是n!种摆法。# 然

2015-01-21 09:58:45 2122

原创 【BZOJ2754】【SCOI2012】喵星球上的点名 后缀数组优化暴力

题意:那个输入中每个串先是一个长度然后才是串。然后如果某猫姓名abcd·efgh,那么点名abc,bcd,fg等都是好使的,但是cde就不行。然后输入姓名时格式为一行a a个数,b b个数。A表示姓,B表示名。题解:直接暴力枚举每个点名是哪些的子串,然后我们发现可以用后缀数组来优化这个事情~~时间复杂度是不准确的,也就是说可以被卡成TLE

2015-01-21 08:33:16 2439

原创 【BZOJ1028】【JSOI2007】麻将 暴力

题目大意: 给你一副牌,问是否是听牌(即再加一张牌能“胡”),如果是,输出摸到哪些牌能胡,不是输出“NO”胡牌规则: 首先需要有两个相同数字的牌被消掉,然后可以将三张相同的牌消掉,也可以将三张连续标号的牌消掉,消没即胡。比如 22 444555 789就是胡牌。题解:暴力枚举再摸到哪张牌就能胡,然后暴力消牌。代码:#include #include #include

2015-01-20 18:56:56 1547

原创 【BZOJ1044】【HAOI2008】木棍分割 二分+动规

第一问裸二分,第二问乱搞。f[i][j]表示用掉i次机会,到j时合法的方案数。代码:#include #include #include #include #define N 50100#define mod 10007#define inf 0x3f3f3f3fusing namespace std;int sk[N],sum[N],n,m;bool che

2015-01-20 17:41:36 1974

原创 【BZOJ1067】【POJ2637】WorstWeather Ever【SCOI2007】降雨量 线段树+恶心讨论

题意:自己去BZOJ上看。但是总之询问就是要求 // 它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年 // 左>=右>中题解:然后首先离散化一下,然后把确定的年加到线段树中,乱搞一下就过了。但是,,,讨论太恶心了!!详情参照代码,写得很清晰(不清晰怎么A这道题)代码:#include #include #include

2015-01-20 15:50:04 1634

原创 【BZOJ2555】SubString 后缀自动机 暴力

题解:正解是LCT+SAM。但是出题人太神以至于不屑于卡你,所以只写个SAM然后暴力维护就好了。这样虽然很不科学,但是可以比正解快三倍。我是太困了吧,写挂了调了好久(发呆了好久然后秒调过,或者说半眯着眼睛睡了一会)代码:#include #include #include #include #define N 1601000#define T 26#

2015-01-20 11:08:11 2879

原创 【BZOJ1084】【SCOI2005】最大子矩阵 傻动规

题解:这数据范围,来乱搞吧少年。我的乱搞:m==1时做一遍,m==2时做一遍。别讨论少情况就好,m==2时时间复杂度n^3。代码:#include #include #include #include #define N 105using namespace std;int map[N][3],s[N][3],sum[N];int f[N][N

2015-01-20 08:44:15 1936

原创 【BZOJ2458】【BeiJing2011】最小三角形 计算几何+分治

题解:很经典的分治计算几何模型。我们对点的x坐标排序,然后进行分治,同时分治完了还需要求两边的互相影响。一、在左边取两个点,右边一个。二、在右边取两个点,左边一个。这个时候我们可以对左右两边的点再分别按照y值排序,当然,因为已经出来了一个比较优的ans,所以当一个点距离两边中界过远,那么我们就把它扔掉再不用管了。还有就是两边的点,y坐标距离过大的也不能进行选

2015-01-20 07:53:11 2104

原创 【BZOJ3208】 花神的秒题计划Ⅰ 纯暴力,说好的省选难度呢?

题解:自己看数据范围分析一下就知道了,这题是有多水啊。每次询问记忆化每次修改单点暴力就好代码:#include #include #include #include #define N 705 using namespace std;const int dx[]={0,0,1,-1};const int dy[]={1,-1,0,0};int

2015-01-19 23:16:07 1920

原创 【BZOJ1057】【ZJOI2007】棋盘制作 最大01子矩阵/正方形

题解:嗯,这个图确实不太好做,但是我们可以把它转化成求全是1/0的子矩阵问题。就是把行列奇偶性相同的点01取反,然后就好了(这是显然的,需要证明的留言)。然后就是求最大子矩阵了。至于正方形?求子矩阵时顺带求了,就是那个ans1,这个显然,因为我们枚举了每一个点的延展性,所以不会漏掉任何可能性。这么说吧,假设有一个正方形没有考虑到,那么它的长或者宽一定是一个极大值,那么就

2015-01-19 22:38:14 1629

原创 【BZOJ3039】玉蟾宫/【HDU1505】【POJ1964】City Game 最大01子矩阵

转载请注明出处:首先我们可以用单调栈每行扫一遍,维护一个点向上下左右各能延伸多长。当然,这是可以做的,也是很恶心的。我们可以每行扫一遍,维护每个点当前的[列高度]时能向左向右的最大延伸距离。当然,某个点可能降低一点高度,就会更宽,结果更优,但是显然既然存在这种结果,那么其它列一定可以代劳。呃。所以每行扫一遍,然后记录这行每个节点以最大高度能向左向右延伸的最大距离

2015-01-19 22:05:51 2052

原创 【BZOJ3174】【Tjoi2013】拯救小矮人 贪心+动规。

呃、就是先贪心排序一下,然后做动规。题解:首先我们考虑两个人之间的先后离开顺序:肯定我们希望逃生能力(权值a+权值b)强的人后跑,因为这样更可能多跑(这里不妨考虑:我们希望整个塔的逃生能力更强,而塔的逃生能力就是所有人的身高+max{手长})。然后这样我们可以按照逃跑顺序排个序,方便接下来的动规。(不要太较真~~我也不是特别“有理有据”,只是感性地YY了

2015-01-19 20:16:14 1858

原创 【BZOJ2134】单选错位 概率DP? 貌似不算DP

转载请注明出处:题意:输入完了后,第i道题有ai种可能的正确选项,有ai-1种某人可能选的选项,问期望对多少题。这道题的期望对于两道题之间是无关的。只需要对每道题单独讨论a种正确选项,b种可能选项对于某种正确选项,某人有1/b的概率做对总几率:1/b/a。而这样的正确选项有min(a,b)种。恩,就是这样。代码:#include #

2015-01-19 20:07:18 1762

原创 【BZOJ2434】【NOI2011】阿狸的打字机 AC自动机

这是一道神题。首先我们需要建立AC自动机,然后再建个Fail树,之后发现    如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。然后这样做就很可以了,但是仍然不能AC,这时我们只需要按照Fail树的dfs序建立数据结构(我写了树状数组)进行区间查询就好了。这时对于以上的b串,

2015-01-19 16:48:58 2022

原创 【BZOJ3850】【HDU4882】ZCC Loves Codefires 数论,叉积,贪心 “再不刷它就土了”系列

毕竟是HDU收录的题,,我怀疑它要变土。。题意:有n个项目,然后第一行输入损失度,第二行输入耗时然后安排一下顺序,每一项的消耗为当前已经做了的(包括此项)总时间*损失度。求最小总消耗。首先这道题是贪心,我们可以贪心排序项目。策略: bool operator < (const YYC &a)const {return x*a.y证明:首先我们考

2015-01-18 23:45:09 1560

原创 【BZOJ3028】食物 母函数

不会,只能在题解上看到结论再来写。http://blog.csdn.net/popoqqq/article/details/42805975不妨看这篇。代码:(就是求C(n+2,3))#include #include #include #include #define N 505#define INV 1668#define MOD 10007using

2015-01-18 23:00:23 1216

原创 【BZOJ3879】SvT 后缀树+虚树

SVT什么意思?suffix virtual tree。没有错!后缀虚树好了,下面发一段以前的文字。话说其实后缀数组分治能写,当时想shei了。Vn:啊,水题。一看到“后缀”和这数据范围,肯定后缀数组、后缀自动机、后缀树走起!然后我们可以轻松构造出来一个后缀树,然后每次询问树形DP随便乱搞就能过了。但是这个时候显然会TLE,所以我们可以尝试利用【

2015-01-17 16:52:01 2754 7

空空如也

空空如也

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

TA关注的人

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