自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Oxer的专栏

新博客 -> https://oxer11.github.io/

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

原创 【bzoj1854】 SCOI2010游戏 二分图匹配

同1191,什么玩意?这么大都能过,二分图匹配真是太神了。#include#include#include#include#include#include#define maxn 10010#define maxm 1000010using namespace std;int head[maxm],next[2*maxm],to[2*maxm];int lk[m

2015-08-22 10:59:42 757

原创 【bzoj3175】 TJOI2013攻击装置 二分图最大独立集

比较裸的二分图最大独立集,不过复杂度是不对的,匈牙利算法跑得太快了,然后要注意为了不超时,每次匈牙利的时候不能清空vis的数组,而是把它进行标记。#include#include#include#include#include#include#define maxn 40010#define maxm 8*40010using namespace std;int

2015-08-22 10:46:10 869

原创 【bzoj2150】 部落战争 二分图匹配

裸的有向无环图最小不相交路径覆盖,直接拆点,然后原图点数-最大匹配就可以。数组开小了,WA了一发。#include#include#include#include#include#include#define maxn 2610using namespace std;int a[maxn][maxn],lk[maxn],f[maxn][maxn],num[maxn]

2015-08-17 20:24:24 1057

原创 【bzoj1143】 CTSC2008祭祀river 二分图匹配

貌似是我想少了,二分图不止只有最大匹配,先写一些结论吧,等着总结一下。参考:http://endlesscount.blog.163.com/blog/static/821197872012622103810976/二分图最小点覆盖(每条边至少一个顶点在集合里)=最大匹配二分图最小边覆盖(每个点至少连一条边)=二分图点数-最大匹配证明:考虑最大匹配后,每个未匹配的点连出一条边,即为

2015-08-17 20:03:16 2160 3

原创 【bzoj1059】 ZJOI2007矩阵游戏 二分图匹配

我会说我是随便YY的建图,就是大概每一行建一个点,每一列建一个点,然后貌似列交换是没有意义的?!因为交换前如果有一列没有1,那么交换后还是有一列没有1,那么只考虑通过行交换调整位置,那么就直接建边吧,第i行向第j列连边,那么如果存在一条边(i,j)在匹配中,就表示把第i行换到第j行。黄学长说,同行同列的点交换后还是同行同列,然后求能否找到n个互不同行互不同列的点。#include

2015-08-17 15:41:09 707

原创 【bzoj1191】 HNOI2006超级英雄Hero 二分图匹配

开始学习二分图匹配,基本概念不多说了,一般代码是很短的,主要是建图,然后匈牙利算法的基本思想就是找增广路,然后把这条增广路上的边全都翻转,这样一定比以前优,因为增广路一定是奇数的,然后未匹配的边比匹配的边多一条,所以算法是对的。这道题照着黄学长的代码学习了一下,如果第i个不能匹配的话就找不到增广路了,因为增广路总是能让匹配变大,如果找到了增广路,翻转一下,就能从原本只匹配i-1条边,变成现在匹

2015-08-17 15:14:57 486

原创 【bzoj3306】 树 dfs序+线段树

并不是太难,只要处理换根操作就好了,因为这棵树的形态是不变的。那么按照点1为根时的dfs序,若当前根在x点的子树外,则答案还是x的子树,若当前根是x,那么答案是整棵树,若当前的根在x的子树内,则答案就是抠掉根所在的那一枝后的答案(画个图就明白了)。#include#include#include#include#include#include#define maxn 100

2015-08-17 13:23:27 659

原创 【bzoj2083】 POI2010Intelligence test 乱搞

貌似这么水的一道题调很久不应该吧,但是我做到了,表示不会STL自带的vector的二分,于是手写的。就是开一个vector记录一下每个元素出现的位置,然后每进来一个元素,就在vector里二分找是否有可行的位置了。数据范围什么鬼?!#include#include#include#include#include#include#include#define inf

2015-08-13 16:37:22 602

原创 【bzoj2763】 JLOI2011飞行路线 分层最短路

我会说这是太神给NOIP入门的同学出的题么?!表示今天刚做,虽然以前学过,但这是第一次写,要注意建边的时候只需要建一层的就可以了,然后每次跑spfa的时候,看看能不能跑到下一层。#include#include#include#include#include#include#define maxn 200010#define inf 1000000000#define

2015-08-13 14:53:31 597

原创 感觉最近老被人叉

也是醉了,好多烦心事呀!!!!

2015-08-13 10:56:11 4378

原创 【bzoj4004】 JLOI2015装备购买 拟阵+线性基

感觉线性代数的题都会和高斯消元挂钩,学习了一下用高斯消元解决线性基问题,证明跟前面一样都是拟阵,然后就很裸了,为了一个除号的问题看了半天。#include#include#include#include#include#include#define eps 1e-5#define maxn 510using namespace std;struct yts{

2015-08-11 20:50:10 1478 3

原创 【bzoj3105】 CQOI2013新Nim游戏 拟阵贪心

应晨神的要求,看了一下拟阵,感觉好扯淡,这道题感觉就是要取完之后,不能让对方有方案取到异或和为0就好了。要求取得最少,然后就要留得最多,从大开始留,如果留了之后,没有方法能把它和前面的异或成0就可以留。然后证明要用拟阵,第二个交换性,迷迷糊糊的,对线性无关理解还不够深刻,回去看一看线性代数。#include#include#include#include#include#

2015-08-11 14:57:07 963

原创 【bzoj4031】 HEOI2015小Z的房间 矩阵树定理

第一次做矩阵树定理的题,其实就是记了个结论也没太看证明,然后学了学怎么用高斯消元求行列式,整数消元还真别扭,要用辗转相除,然后要注意取模的问题,一开始以为hzwer写麻烦了,后来想了想不加外面那句话会有问题,因为取模了。#include#include#include#include#include#include#define mod 1000000000using

2015-08-10 20:17:23 1143

原创 【bzoj2141】 排队 树状数组+主席树

卧槽,为什么网上没有主席树的题解呀?!!!貌似分块也可以做,但是代码会长一点吧,真心良心题不卡空间,O(nlog^2n)随便水。结果发现自己忘考虑相同的数,一开始逆序对数求错了。#include#include#include#include#include#include#define maxn 8000100using namespace std;str

2015-08-07 19:22:08 764

原创 【bzoj2393】 Cirno的完美算数教室 容斥原理

这道题其实跟幸运数字一模一样,再写一遍,但是还是不知道为什么时间复杂度是有保证的?!!#include#include#include#include#include#includeusing namespace std;long long l,r;long long a[20010];bool tag[20010];long long ans;int tot

2015-08-07 15:33:18 618

原创 【bzoj2748】 HAOI2012音量调节 背包dp

一开始以为自己读错题了,这不是傻逼题么?!!!于是开始丧病的玩空间,结果发现那些200K的是怎么出来的?!!!#include#include#include#include#include#includeusing namespace std;bool f[2][1010];int n,m,s,c;int main(){ scanf("%d%d%d",&n

2015-08-07 15:20:13 723

原创 【bzoj3163】 HEOI2013Eden的新背包问题 多重背包

跪POPOQQQ神犇,一直在往容斥和2287的方向上想,虽然很明显不可行,其实只需要枚举左半边选多少右半边选多少就可以了,或者说的吊一点就是把左边看成一个泛化背包,右边看成一个泛化背包然后合并就好了。第一次写多重背包好激动呀!!!#include#include#include#include#include#includeusing namespace std;in

2015-08-07 12:36:04 1002

原创 【bzoj1042】 HAOI2008硬币购物 容斥原理+背包dp

暴力就是裸的多重背包,但是肯定过不去,我们考虑转化,问题等价于求c1x1+c2x2+c3x3+c4x4=s (x1那么设集合S1={x1ans=S1∩S2∩S3∩S4=f[s]-{x1>d1}∪{x2>d2}∪{x3>d3}∪{x4>d4}=f[s]-f[s-c1(d1+1)]-f[s-c2(d2+1)]-f[s-c3(d3+1)]-f[s-c4(d4+1)]+f[s-c1(d

2015-08-07 11:06:11 571

原创 背包dp小结

昨晚太困了,于是就没有写,今天补上。首先是01背包,每个物品最多选一次。方程很简单,f[i][j]表示前i个物品花费j的空间的最大价值。f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]) (j>=v[i])然后,我们发现第一维是没有用的,就把它去掉,为了保证状态的合理转移,我们第二重循环要倒序循环(为什么呢?)。然后是完全背包,每个物品随便选。

2015-08-07 10:12:16 514

原创 【NOIP2014】 飞扬的小鸟 完全背包dp

这道题是一道变过的完全背包,先写出dp方程。f[i][j]=min{f[i-1][j+y[i]],f[i-1][j-k*x[i]]+1}(j-k*x[i]>=0)(a[i][j]=1)      =inf (a[i][j]=0)那么很明显,这跟完全背包的方程非常相似,相当于一个物品价值为1,费用为x[i],然后要求总费用最小,直接完全背包就可以了,但是有一点要注意,这道题要先把选的计算

2015-08-07 09:43:31 3975

原创 【bzoj2287】 消失之物 背包dp+dp

好一道dp套dp,或者说dp套容斥,一开始想简单了,后来算着算这才明白,首先是01背包,然后其实可以认为是完全背包了吧,要注意初始化的细节,只有f[0][0]是合法方案,因为必须要装满。第i个物品丢掉的方案数等于总方案数-选第i个物品的方案数=f[n][m]-f[n][m-w[i]]+f[n][m-2*w[i]]-f[n][m-3*w[i]]+……=f[m]-f[m-w[i]]+f[m

2015-08-07 09:39:12 1230

原创 【bzoj3295】 CQOI2011动态逆序对 树状数组+主席树

对于每一个位置我们处理出刚开始它左边比他大的数的个数,和它右边比它小的数的个数,然后每次删除就在主席树里修改,最后答案就要减去a1+a2-左边比他大的被删除了的数的个数-右边比他小的被删除了的数的个数。一开始傻逼了,还对整个序列建前缀主席树,还以为省空间,结果发现树状数组直接预处理就好了,最后在不断地RE过程中,艰难的A了,看来卡空间的题真是非常不爽呢。#include#incl

2015-08-06 17:26:04 851

原创 【bzoj3772】 精神污染 dfs序+主席树

PoPoQQQ的题解太神了,表示看了好久才看懂,于是自己写了一份题解祸害人类。    首先有一个结论对于一条路径x-->y,如果它的两个端点x和y都在另一条路径上,则这条路径被另一条路径包含。    那么问题转化为了对于一条路径,判断两个端点都在这条路径上的路径有多少条。    那么对于每一个节点x,我们用一个vector来存节点y,当且仅当存在一条路径x-->y。    我们说主

2015-08-06 15:56:27 1590

原创 主席树小结

简直卧槽了,充满RE的一天,没有太完成目标,算上昨天刷的一道主席树一共五道,算是入门了吧。主席树可以认为是一种前缀和,表示的是每一个数出现的次数(当然必须要离散化),一种类似线段树的建法,为了节省空间就跟可持久化线段树一样了,这样一开始建出一个空树,每次就相当于在上一棵树的基础上进行修改,空间就是O(n log n)的了(还是很大呀!!!),写法跟前缀和非常像。这样我们在查询区间【l,r】

2015-08-05 23:43:32 3679

原创 To Do List

实在没心情写题了,来准备一下接下来的一个月的学习计划吧。感觉落下的东西太多了,还有一些要复习的东西。要学习的东西:1.主席树 2.动态树 3.矩阵树定理 4.背包九讲 5.后缀自动机 6.二分图匹配 7.容斥原理 8.fft要巩固的东西:1.整体二分、cdq分治 2.斜率优化dp 3.后缀数组 4.强连通分量 5.网络流相关 6.kd tree文化课相关:语文还

2015-08-04 21:20:51 635 2

原创 【bzoj1853】 SCOI2010幸运数字 容斥原理

跪烂晨神,一上来先想数位dp,结果根本没法做,然后看了看晨神的题解,发现幸运数字一共就2000来个,然后加一些剪枝,用容斥原理筛一下就好了,其实容斥就是选了奇数个就加,选了偶数个就减,要从大到小搜,这样容易爆,然后一定要判断如果爆了longlong,或者大于r的时候就退出,如果一个数是另一个数的倍数,那么就不用考虑这个数了。#include#include#include#inc

2015-08-04 11:40:39 895

原创 【bzoj2563】 阿狸和桃子的游戏 贪心

贪心好题,表示不会做然后膜拜了一下PoPoQQQ的题解http://blog.csdn.net/popoqqq/article/details/44495319。考虑每个点选对答案的贡献为w,不选的贡献为-w,每一条边两个端点都不选的贡献为-c,选一个端点的贡献为0,选两个端点的贡献为c,于是我们计算ans的时候先全部都减去,然后就变成了,一个点选的贡献为2w,不选的贡献为0,一条边两个端点都

2015-08-04 11:03:30 1023

原创 【bzoj3620】 似乎在梦中见过的样子 KMP

一开始看到数据范围是15000就往后缀数组上想,想了好久没想出来怎么处理同一子串的问题,后来看了看题解才发现O(n^2)就可以过,用KMP类似NOI2014动物园的算法一样。枚举左端点,对于每个右端点处理出以右端点为结尾最大长度使得从左端点开始的前缀等于以右端点结束的后缀,即next数组。然后一直往前跳,直到长度小于子串长度的一半为止。#include#include#includ

2015-08-04 09:59:49 2919 1

原创 【bzoj3916】 Baltic2014 friends hash

非常裸的hash,不过是第一次写hash,比较手生,看到WA了以后,果断改成双关键字,最后才发现原来是possible拼错了。。。#include#include#include#include#include#include#define maxn 2001000#define base1 23333#define base2 233using namespace

2015-08-04 08:41:23 605

原创 【bzoj1726】 Usaco2006 Nov Roadblocks第二短路 次短路模板

第一次写次短路,正好碰上给学弟们出题,就写一写,次短路跟最短路不一样,大概就是多讨论一下就好了,类似O(n)求序列第二小数。嗯,其实就是讨论一下就好了,严格次短路还是比较蛋疼的,刚开始初始化的时候把起点的第二短路长度设为0会wa。#include#include#include#include#include#include#define maxn 5010#defi

2015-08-03 22:19:22 1166

空空如也

空空如也

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

TA关注的人

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