自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 数学知识

*卡特兰数的最后一个求法用的是wiki上面的C(2*n,n)- C(2*n,n+1)虽然看似没有区别,数值都一样但是在BZOJ 3907 n-1会挂

2017-01-20 21:10:28 264

原创 【BZOj 3781】小B的询问 莫队

不解释了。。。#include#include#include#include#include#define maxn 50021#define LL long longusing namespace std;int n,m,k,cnt[maxn],block,s[maxn],a[maxn];LL Ans[maxn],ans;struct node{ int l,r,i

2017-01-29 22:58:04 204

原创 【BZOJ 4031】[HEOI2015]小Z的房间 基尔霍夫矩阵

裸题,就是一开始把柱子当成树的节点然后wa了 已发#include#include#include#define LL long long#define Mod 1000000000using namespace std;int n,m,cnt,mat[85][85];LL a[85][85],ans=1;char s[12][12];inline int Q(int a,int

2017-01-29 19:37:49 268

原创 【BZOJ 4269】再见Xor 线性基

首先构造线性基求出最大的异或值,然后再用最大的异或值异或最小的线性基就是次大值。线性基这玩意比较好玩但是很迷,证明还是简单就不说了。#include#include#includeusing namespace std;int n,a[100021],ins[35],ans;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)sca

2017-01-29 18:38:35 251

原创 【BZOJ 2276】[Poi2011]Temperature 单调队列

题目要求求最长不下降,所以当一个新的元素加入的条件就是,这一天的最高温度大于或者等于这一段区间里面的最高的最低温度,因此,我们的任务就是维护这个最高的最低温度,又由于是单调的所以可以考虑用单调队列维护一个不上升的序列,当队首的温度大于当前最高温度把队首弹出。但其实这样是有一些问题的例如像4 3 2 6这样的数据,当6加入后,会从队尾弹出2 3 4但是有可能 4 3 2是合法可选的,所以我们还需要维

2017-01-29 14:20:04 342

原创 【BZOJ 4260】Codechef REBXOR 可持久化trie树

这道题用可持久化trie树到底是得有多慢,一开始我的方法是定义f[i]表示前i个数字作为一段区间的话的最大值,然后再倒着做一遍最后枚举i加起来更新一下ans就好了,我知道这样比较蠢,但复杂度应该也没多大影响吧,但是关键是我T了,郁闷。后来看博客发现大家的做法那个ff的预处理其实多余的,直接倒着枚举然后记录后面的最大值然后以当前i作为前一段的结尾最后一个依旧能够枚举完所有的情况。可是即便是这样,时间

2017-01-26 22:40:50 238

原创 【BZOJ 2561】最小生成树 最小割

拿到题再一看数据范围怎么也是思考生成树把,居然是网络流qaq。。。其实只要是换一个角度思考还是可以的,一棵树满足什么条件,至少就是任意两个节点之间有一条简单路径,而现在题目要求有不联通,那么再最优的情况下,至少应该有两个集合满足互相之间不联通,这样就能想到网络流的最小割模型了。至于网络流怎么构建模型,这条边(最小生成树为例)可能用上的情况在于:当且只有当比它小的边无法构成一颗最小生成树,即

2017-01-25 15:26:49 319

原创 【BZOJ 3940】[Usaco2015 Feb]Censoring AC自动机

同3940把kmp改成Ac自动机就可以了,用一个栈维护信息就好了。#include#include#include#define maxn 100021using namespace std;int ch[maxn][26],fail[maxn],n,m,tot,top,f[maxn],val[maxn],q[maxn*2],mx[maxn];char st[maxn*2],ss[

2017-01-24 21:58:31 293

原创 【BZOJ 2882】combination 推逆元+Lucas定理

题目描述。。。。很简单的求组合数,预处理阶乘和逆元就好了Lucas定理C(n,m)=C(n/Mod,m/Mod)*C(n%Mod,m%Mod)证明什么的这不重要。。。线性推逆元inv[i]=-(Mod/i)*inv[Mod%i]%Mod#include#include#include#define Mod 10007#define LL long longusing

2017-01-24 18:24:04 221

原创 【BZOJ 2054】疯狂的馒头 并查集

由于最后的答案纸只与最后的一次染色有关系,所以我们考虑倒过来做,每一次的染色暴力的染色,然后如果一段区间之前已经染色的话就跳过。那么我们就用并查集来维护这个跳跃的过程,fa[x]连向下一个需要染色的区域,如果fa[x]==x说明这个馒头(为什么不是饺子)需要染色#include#include#include#define maxn 1000051using namespace std;

2017-01-24 17:11:55 269

原创 【BZOJ 2005】 [Noi2010]能量采集 求gcd个数

首先我们设g[x]表示x为gcd(a,b)约数的(a,b)对数,那么显然有g[x]=(n/x)*(m/x)接着我们设f[x]表示gcd(a,b)=x 的(a,b)对数那么还是显然f[x]=g[x]-f[2*x]-f[3*x]-f[4*x].......那么我们直接倒着枚举x然后计算答案就好了。#include#include#include#define LL long long

2017-01-21 22:07:52 218

原创 【BZOJ 4173】 数学 数论

我还能说什么http://blog.csdn.net/zhhx2001/article/details/52300924#include#include#include#define LL long longusing namespace std;LL n,m;const LL Mod=998244353ll;LL phi(LL x){ LL ans=x; for(LL

2017-01-21 21:37:22 246

原创 【BZOJ 1951】[Sdoi2010]古代猪文 各种数论模板

其实题目挺裸的,很简单就是要用到好多的模板,也好基本做个总结嗯,这就是这道题需要用到的知识点,其他的就很裸了。还有就是提一下组合数的求法,因为mod的是999911658不是质数,是合数所以把它分解为几个质数然后分别求最后用中国剩余定理再来算就好了。#include#include#includeusing namespace std;typedef long long

2017-01-20 20:02:06 211

原创 【 BZOJ 3721】 PA2014 Final Bazarek 贪心

其实一开始的想法就是排序以后然后奇数偶数,奇数就直接输出,偶数就掉前面的最小奇数加上后面的最大的偶数或者反过来取更优。但是一直不知道怎么证明,看网上也大都没有证明(贪心不证明的话很容易gg啊。。。逃)后来一想其实还是好想。首先排序然后要满足前缀和为奇数,说明奇数一定出现奇数次,偶数随便出现多少次,那么当前缀和为偶数的时候也就意味着奇数出现了偶数次,此时我们考虑调整数列。1.减少或者增加

2017-01-19 22:12:08 244

原创 【BZOJ 3166】[Heoi2013]Alo 可持久化trie树+set

看到异或最大值容易想到trie树,至于区间异或最大值的话,可持久化一下就可以搞了。至于满足次大值那个。。。倒序排序权值,然后把它们的坐标插入set中,每一次lower_bound后找前继的前继和后驱就好了#include#include#include#include#include#define maxn 50010#define inf 0x3fffffffusing

2017-01-19 21:22:22 208

原创 【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆

很显然如果不够k的话就不用放回去,如果够了就需要放回去一个,这时候只要放回去的是之后用到的最远的一个就可以了,用一个nxt数组然后堆维护,最后就是弹出堆的时候需要判断一下这一个是否已经放回去了。#include#include#include#include#define MK make_pair#define maxn 500055using namespace std;int

2017-01-19 11:46:08 386

原创 【BZOJ 1857】[Scoi2010]传送带 三分套三分

很多细节,可以当一个版#include#include#include#include#includeusing namespace std;const double eps=1e-7;struct node{ double x,y;}A,B,C,D,aa,bb,cc,dd;double v[5];bool dcmp(double a,double b){return

2017-01-18 21:58:54 143

原创 【BZOJ 3931】[CQOI2015]网络吞吐量 dijkstra+最大流

很裸的题目,但是居然wa了几发,最后直接暴力替换int为long long过了,心塞。。。。。#include#include#include#include#define LL long long#define maxn 200021using namespace std;int head[1200],tot=1,n,m,q[maxn],h[maxn],vis[maxn],s,

2017-01-18 20:30:59 302

原创 【BZOJ 3545】 [ONTAK2010]Peaks 最小生成树+kruskal重构树

一个很显然的道理就是所有的边权中只有最小生成树上的边是有用的对吧(如果当前最小的边权都不能满足,再大一点就更不能了)。所以一开始把最小生成树做出来,然后用kruskal重构树,最后直接用主席树维护这个重构树,查询第k大就好了。#include#include#include#include#define maxn 300200#define maxm 5000200using na

2017-01-18 13:09:16 268

原创 【BZOJ 1670】[Usaco2006 Oct]Building the Moat护城河的挖掘 裸凸包

裸的凸包。。。。。#include#include#include#include#include#define maxn 10210using namespace std;struct P{ double x,y; P(int a=0,int b=0):x(a),y(b){}}q[maxn],p[maxn];typedef P Vec;Vec operator - (P

2017-01-17 22:13:41 196

原创 【BZOJ 1475】方格取数 最大点权独立集

首先可以很明确的是原图一定是二分图(i+j为奇数的和偶数的格子没有边),先摆出结论:最大独立点集=sum-最小割原因:我们这样建图,s向所有i+j为奇数的格子连边,点权是格子上面的数大小,i+j为偶数的格子向t连边边权也是格子上的权值,然后相邻的格子之间连边,边权为inf。这样的话每割掉一条边(连向s或者t的)就相当于不选这个节点,点之间的边权为inf,边两边连接的点有你无我,有我无你,也就意

2017-01-17 21:55:47 370

原创 【BZOJ 1391】[Ceoi2008]order 最小割

建图s向每个任务建边,容量为收益,任务向机器建边,容量为租用机器花费,机器向汇点建边,容量为购买机器的费用,然后跑最小割,每割掉一条边就相当于放弃这个收益或者选择这个花销,

2017-01-17 21:21:34 240

原创 【BZOJ 1016】[JSOI2008]最小生成树计数 基尔霍夫矩阵||暴力

第一次写这道题的时候是直接暴力水过去的(貌似正解就是暴力),但是后来看到了关于基尔霍夫矩阵,回过来看感觉十分的有(e)趣(xin),就又写了一遍。至于基尔霍夫矩阵,证明什么的都去见鬼吧。。。会用就好咯:设基尔霍夫矩阵为C:1.C[i][i]为i这一个节点的度数                                 2.C[i][j]表示邻接链表,数值是i和j之间有多少连接的边

2017-01-17 19:25:35 350

原创 【BZOJ 2829】信用卡凸包 凸包

求一个凸包然后加上一个圆就没有了,主要是联系一下模板(我的主要是用的lrj的大白上面的)。#include#include#include#include#include#define maxn 100005using namespace std;int n,cnt;double r,len,wide,ans;const double eps=1e-7;struct P

2017-01-17 19:10:44 312

原创 【BZOJ 2260&&4349】最小树形图&&商店购物 朱刘算法

一天到晚没事干天天想着炸机房。。。。才学的朱刘算法。我:这道题朱刘算法裸题。。cja:什么,猪牛算法,什么鬼。。。莫非是诸葛亮和刘备发明的我:。。。。。。。#include#include#include#define maxn 10021 using namespace std;int n,m,times[maxn],nu[maxn],tot,head[

2017-01-16 20:44:29 411

原创 【bzoj1458】士兵占领 最大流

又是反过来考虑。。。。。直接计算会很复杂(毕竟每一行和每一列都会有一定的限制条件,很难同时满足),那么我们放过来思考,先把所有的各自都放上士兵一共n*m-k个,然后考虑拿走一部分士兵。源点向每行建边,边权是:m-L[i]-这一行的障碍格子数目,即是能够拿走的士兵数目,然后列向汇点建边,同理,每一个格子(可拿走)使得所在行和列连上边权为1得边,最后ans减去最大流就好了#include

2017-01-15 21:57:58 209

原创 【BZOJ 3942】 [Usaco2015 Feb]Censoring kmp

唯一需要注意的就是中间的一段消掉以后前后又连接在了一起,不过没关系,建立一个数组记录一下到这里的时候匹配到哪里就好了,然后维护一个栈就好了。#include#include#include#define maxn 1000021using namespace std;int nxt[maxn],val[maxn],lc,ls,top,l[maxn];char c[maxn],s[ma

2017-01-15 21:03:58 287

原创 【BZOJ 3689】异或之 trie+堆

以前做过类似的题目,不同的是把异或改成加法。。。。。。还以为异或和加法没有太大的区别,把初始的几个数字放进优先队列里面,一个一个的取出来,得到次大值,再放进去,一直重复知道k个,至于找一个数和其他树异或的k大值可以用trie树轻松解决。原因嘛,很显然对于每一个数经过我们构造出来的数字是单调递增的,然后放进堆里面每次保证取出堆里面的数字也是单调递增的(有点类似于dijkstra的样子,当时是

2017-01-15 20:42:15 444

原创 【BZOJ 3083】遥远的国度 树剖

一开始看到有换根操作可是把我吓了一跳,我还以为要上top-tree呢,结果一开题解。。。。。。。。。。心塞如果除去换根操作的话就是一道裸的树链剖分了,没什么难度,但是加上换根操作以后,别怕,其实联系查询的点和现在的根节点只有4种可能(分3种操作),这里的讨论均基于以1为根节点的有根树讨论1.x==rt                     直接查询整个树2.rt是x的祖先      

2017-01-15 17:04:35 225

原创 【BZOJ 3011】[Usaco2012 Dec]Running Away From the Barn 可并堆

类似于BZOJ2809的做法,直接合并可并堆就ok了,区别可能就在于多了一个lazy标记吧,记得下放就没什么了,但是。。。。坑:1.是找       2.开long long(wa了多少发啊,最后一气之下,直接替换)#include#include#include#define LL long long#define maxn 500021using namespace st

2017-01-15 15:07:53 199

原创 【BZOJ 1025】[SCOI2009]游戏 置换+dp

又是一个套路。。。。我们把每一种关系当作一条边,那么最后会形成一个n个点n条边的图,每出现一个环就是循环了,所以问题就是求这些环的最小公倍数的种类,手画一下会很容易发现,这个图由于是n个点n条边,所以至少出现一个环,而且环与环不会相交,也就是说,∑环的边数#include#include#include#define maxn 1020#define LL long longus

2017-01-15 08:38:09 224

原创 【BZOJ 1299】[LLH邀请赛]巧克力棒 博弈论

自己想了一个方法:只要能找到一段子序列的xor和为0,那么先手必胜。原因:情况一:除了这一段子序列,其他任意子序列的xor和都不为0,那么很显然,先手只需要把这一段选出来以后,后手如果选择吃,那么是必败态,而如果选择拿,那么留给先手的一定是必胜态。情况二:还有其他的序列xor和为0,那么先手只需要在拿上一段子序列的时候连同这一部分拿了就好了,然后变成情况一。情况三:没有xor和为0

2017-01-14 22:29:59 256

原创 【BZOJ 2038】 [2009国家集训队]小Z的袜子(hose) 莫队

现在看来还是蛮简单的(手动滑稽)。。。。。。。。#include#include#include#include#include#define maxn 50020#define LL long longusing namespace std;int n,m,col[maxn],bl[maxn],block;LL ans,sum[maxn],ans1[maxn],ans2

2017-01-14 16:06:01 203

原创 【BZOJ 3142】[Hnoi2013]数列 数学+差分

很有趣的一道题目呀,涨知识了。。。。。答案=n*m^(k-1)-(m*(m+1))/2*m^(k-2)*(k-1)推导过程:点击打开链接#include#include#include#define LL long longusing namespace std;LL n,m,p,k;LL mull(LL x,LL y){ LL ans=1; for(;y;y>>=1

2017-01-14 14:40:51 311

原创 【BZOJ 1355】[Baltic2009]Radio Transmission kmp

跑kmp,得到nxt数组后用n-nxt[n]就是了#include#include#include#define maxn 1000023using namespace std;int n,nxt[maxn],len;char s[maxn];void get(){ for(int j,i=1;i<n;i++){ j=nxt[i]; while(j&&s[j]!=

2017-01-14 11:40:12 220

原创 【BZOJ 2223】 [Coci 2009]PATULJCI 主席树

刷水有益健康#include#include#include#define maxn 6000020using namespace std;int m,n,rt[maxn],sum[maxn],tot,ls[maxn],rs[maxn],c;void insert(int x,int& y,int l,int r,int id){ y=++tot;ls[y]=ls[x],rs[y

2017-01-14 10:52:55 235

原创 【BZOJ 1024】[SCOI2009]生日快乐

因为需要切的每个人分得相同面积蛋糕,又必须与x,y平行,n又那么小,枚举切的位置然后爆搜就好了。#include#include#includeusing namespace std;double n,m;int z;double dfs(double x,double y,int k){ if(x<y)swap(x,y); if(k==1)return x/y; dou

2017-01-14 09:48:05 191

原创 【BZOJ 1251】序列终结者 splay

基本模板,只是。。。。。一开始写的指针版本的,写到一半维护空指针快把我恶心吐了,有删了写了一个数组版本的。。。还有,为什么你们的那么快啊。。。。#include#include#include#define ls(u) ch[u][0]#define rs(u) ch[u][1]#define maxn 100020#define inf 0x7fffffffusing name

2017-01-14 08:58:54 225

原创 【BZOJ 3282】Tree LCT

LCT裸题,只是一开始rotate函数中吧fa[ch[u][d]]赋值成了u的爷爷,而不是父亲,wa了几发,结果一直以为是LCT哪里写错了,心塞。。。。还去网上学习了一发连通性。。。#include#include#include#define ls(u) ch[u][0]#define rs(u) ch[u][1]#define maxn 300020using namespace

2017-01-13 20:14:49 166

原创 【BZOJ 2809】[Apio2012]dispatching 可并堆

只有我一个人纠结了半天没读懂题吗?心塞。就是给你一个关系子图,选一个点作为管理者,他可以派遣自己为根的这棵子树的所有的忍者,但是总费用不超过m,满意度等于派遣出去的忍者数目*管理力(自己也可以被自己派遣)。首先考虑,如果选当前节点为管理者派遣的忍者费用已经超过了m,那么对于他的父亲节点,费用肯定也是不够的。所以每一次都要维护不超过m的忍者,基于贪心的思想,忍者的费用对答案无贡献只有数目有,所以

2017-01-12 08:36:33 240

opencv3.4.1

虽然opencv可以直接在官网上下载,但是很坑的是opencv3居然不能直接用surf特征检测,之前需要一系列的准本工作,所以分享了这个压缩包可以直接使用

2018-09-28

空空如也

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

TA关注的人

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