自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [长期更新]经验总结

在使用treap维护一系列信息时时,求和,区间最大等等。。。我们不应总想着现场算出来,而应在每个节点多加一个变量,在update时维护即可,如果没有这种技巧,很多东西都会T....

2016-03-31 10:35:58 834

原创 BZOJ2728

这道题非常的神,第一步是看出NAND的性质:可以使用他来构造与非或这三种逻辑运算,这就很舒服。然后考虑两个数或的话,本质上是分成三个部分的(a&b,a-(a&b),b-(a&b)),所以我们可以尝试构造线性基,最后的答案只跟线性基里的元素或起来有关。所以说我们尝试枚举每一位,然后将所有数且起来,就得到这一位线性基的元素了,然后大概就可以像数位dp那样瞎算就完了#include<cstdio>#in

2017-09-27 09:53:52 4870

原创 bzoj3439: Kpm的MC密码

SB题,网上都用了主席树……… 其实只需要每个trie节点开一个vector,记录一下这个节点的子树有哪些字符串, 按顺序加入每个字符串,就可以保证vector是有序的,完了。#include<cstdio>#include<vector>#include<algorithm>#include<cstring>using namespace std;const int N = 1e5

2017-09-18 15:30:25 4773

原创 求最小树形图的朱刘算法

根固定时,就是对于每个非根节点贪心找最小的入边,很显然这样的话最后会构成一个基环树和树的森林,然后把每个环缩点,继续找就好,void ChuLiu (int n, int m) { for (int cnt, i, j, _m; ; m = _m, n = cnt) { for (vis[cnt = 0] = -1, i = 1; i <= n; ++i) pre[i] =

2017-09-13 17:22:18 4705 1

原创 原根

原根满足ar≡1(mod m)的最小r表示a对模m的阶,记作δm(a)满足a^r \equiv 1 (mod \ m)的最小r 表示a对模m的阶,记作\delta_{m}(a)若δm(a)=φ(m),则称a是模m的原根若\delta_{m}(a)=\varphi(m),则称a是模m的原根若m有原根,则原根个数为φ(φ(m))若m有原根,则原根个数为\varphi(\varphi(m)) 证明:首先

2017-09-10 20:21:04 4798

原创 Polya

Polya拉格朗日定理H是G的子群 |H||G:H|=|G||H||G:H|=|G| (|G:H||G:H|表示H在G中的陪集个数) |H||H|的每个陪集的大小与|H||H|相等,又由不同的陪集互不相交且不同陪集的并为GG得证 很显然这也说明了一个群的子群大小是整除该群大小的轨道与稳定化子定理对于一个被置换集合内的元素x 我们定义他的轨道为 Orbit(x)={n|n=f(x),f∈G}

2017-08-17 07:51:56 5026

原创 雅礼集训Day4

今天炸的1p。。。。。 T1,给你100次询问,每次L,R,选[L,R]中的若干数进行异或,求有多少种结果,1

2017-06-21 23:49:56 5047

原创 雅礼集训Day3-难题选讲

TC SRM558 div1 1000pts这道题很显然是个最小割,(u,v,w)代表边 我当时想到的程度是:先将棋盘黑白染色,白左黑右,x表示白,y表示黑。(s,x1,花费),(x1,x2,代价),(x2,y2,INF),(y2,y1,代价),(y1,t,花费), 然后就不知道该怎样下去了,发现题解多建了条(x1,y1,INF),恩,挺妙的,认真yy下,这条边保证了对于一个点来说,要么断掉s,x1

2017-06-20 23:57:55 4904

原创 51nod1376 最长递增子序列的数量

这道题很sb,但是绝大多数人是用了高级数据结构的,我这里介绍一种(自己yy的)不需要高级数据结构的方法。这道题不需要高级数据结构,考虑一开始的二分的方法,当我们们做到i时,我们维护的这个单调的序列的第j个位置表示的是 以min{A[x]},A[x]为原序列,其中以x结尾的LIS的长度为j.考虑在这个单调序列的每一个位置上开一个vector,表示出所有的x,容易发现,这个vector中x的A是单调不

2017-04-11 20:05:25 4796

原创 bzoj3233 [Ahoi2013]找硬币

a[i]a[i]表示第i个数是第i-1个数的多少倍 a[1]=1 那么第i个数b[i]=∑ij=1a[j]b[i]=\sum_{j=1}^{i}a[j] 那么对于一个价格为n的物品第ii个数用的次数nb[i]%a[i+1]\frac {n} {b[i]} \% a[i+1]。 所以我们可以考虑dp,f[i]表示最后一个数为,然后除了i以外前面的数的最小的硬币数量是多少.#include<cst

2017-03-08 16:57:17 4721 1

原创 bzoj2302: [HAOI2011]Problem c

bzoj2302: [HAOI2011]Problem cOI题有三种从一般到特殊,从暴力到优化,换角度思考 −WerkeyTom_FTD-_{WerkeyTom\_FTD} 这道题让我认识到了从题目到充要条件的转换这种解题思路 这道题我们可以看出他的充要条件为 ∀j,∑ni=1[ai>=j]<=n−j+1\forall j, \sum_{i=1}^n [a_{i}>=j ] <= n -

2017-03-08 12:24:05 4797 1

原创 [BZOJ 3864][HDU 4899]Hero meet devil(DP套DP)

题意 给你一个只由AGCT组成的字符串S(|S|≤15),对于每个1≤i≤|S| 询问有多少个只由AGCT组成的长度为m(1≤m≤1000)的字符串T,使得LCS(S,T)=i。 |S|<=15. m<= 1000$暴力显然就是2^m枚举,然后求lcs. 假设求lcs的dp数组为g[i][j]。 那么我们就把g[i]看成一个序列g[i][0],g[i][1],g[i][2],g[i][3

2017-03-08 10:12:44 4741

原创 bzoj2839 关于组合数的若干yy

考虑容斥,最后的答案为∑ni=k(−1)i−k∗Cin∗Cki∗(22n−i−1)\sum_{i=k}^{n}(-1)^{i-k}*C_{n}^{i}*C_{i}^{k}*(2^{2^{n-i}}-1) 实际上-1和最后一部分并不需要解释,然后我们看看如何证明这个的正确性。辣鸡的证明关于普通的容斥原理,我们可以用二项式定理yy 当我们发现对于每一个交集大小为n的选法,他最后被统计的次数是这个.

2017-02-27 09:40:47 4927

原创 bzoj4403: 序列统计

题意给定三个正整数N、L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量。输出答案对10^6+3取模的结果。自己xjbyy的解法设m=r-l+1. 那么我们先枚举一个i表示这个单调不降序列有多少个不同的数, 那么CinC_{n}^{i}就是选出i个不同的数的方案数,然后我们看剩下的n-i个数,很明显他们可以不选,或者成为这i个数中的一个,此时就对应球盒模型“n-i个相同的球放

2017-01-28 13:44:14 5309

原创 bzoj4173:数学

bzoj4173求φ(n)∗φ(m)∗∑kφ(k)∗e(m%k+n%k≥k) \varphi(n)*\varphi(m)*\sum_{k}\varphi(k)*e(m \% k+n \% k \geq k) 这玩意儿一眼不可做的感觉, 我们现在的任务是求出一个玩意儿,使得他与e(m%k+n%k≥k)e(m \% k+n \% k \geq k)相同。 我们不妨设n=q1k+r1,m=q2k+

2017-01-17 19:52:25 5201

原创 bzoj3309 DZY Loves Math

bzoj3309前戏∑ai=1∑bj=1f(gcd(i,j))\sum_{i=1}^{a}\sum_{j=1}^{b}f(gcd(i,j)) =∑ad=1∑ai=1∑bj=1e(gcd(i,j)==d)f(d)= \sum_{d=1}^{a}\sum_{i=1}^{a}\sum_{j=1}^{b}e(gcd(i,j)==d)f(d) =∑ad=1∑a/di=1∑b/dj=1e(gcd(i,j)=

2017-01-16 08:53:30 5386

原创 bzoj1367: [Baltic2004]sequence

题解首先我们看,对于一段区间[l,r],他们如果是递增的,那么最优解就是对于z[i]=t[i],i∈[l,r]z[i] = t[i], i \in [l,r] ,如果是递减的话那么最优解就是中位数了,即z[i]=t[(l+r)/2],i∈[l,r]z[i] = t[(l+r)/2], i \in [l,r] 如果我们把递增的区间拆成一个点一个点的,现在的序列就相当于有很多段递减的区间构成辣,那么现在

2017-01-03 08:42:37 4824

原创 (51nod1220) 2016.12.30 T3

2016.12.30 T3标签(空格分隔): 未分类原式=∑ni=1∑nj=1d(i∗j)原式=\sum_{i=1}^{n}\sum_{j=1}^{n}d(i*j) =∑ni=1∑nj=1∑i∗jd=1e(d|i∗j)∗d= \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{d=1}^{i*j}e(d|i*j)*d对推到下一步的解释现在考虑对于一个确定的ii,和一个确定的dd,

2016-12-31 12:20:43 4788

原创 [bzoj3174][Tjoi2013]拯救小矮人

DP+贪心前言说实话,我感觉网上大多数文章讲这篇都是在口胡,我发现znber同学的证明也是明显错误的(也许是我太蒻了).但有幸的是我遇上了这篇文章http://blog.csdn.net/commonc/article/details/51693992 他跨了一年,做出了这道题,心疼QAQ。但我觉得他这篇还是没有多详细,搜索引擎也不容易先搜到他,于是就写了这篇辣鸡题解QAQ。题意我一开始一直纠结于

2016-11-16 07:53:36 5314

原创 [bzoj1576] [Usaco2009 Jan]安全路经Travel

艾玛,突然发现,自己又有很久没写博客了,日常在bz上刷刷水,就来写一篇吧题意给你一张无向图,保证从一到每个点的最短路只有一条。 然后呢对于每个点删掉1到他的最短路上的最后一条边(就是这条路径上与他自己相连的那条边)后1到他的最短路的长度.解法我们可以发现,对于这张图,我们把从一到所有点的最短路拿出来后并在一起,就是一棵树了(并且这棵树是唯一的)。我们跑最短路时,最终松弛这个点的那个点就是他的父亲辣

2016-11-10 16:26:00 5213

原创 [坑][poj2396]有上下界的最大流

先给自己挖个坑。

2016-10-07 15:03:28 5085

原创 (坑)网络流24题

T1:裸的二分图 T2:一开始不会做,后面发现是裸的最大权闭合图模型,赶紧学了一发 T3:路径覆盖问题,还是不会,羞耻地看了solution T4:很容易二分答案,然后发现就是路径覆盖问题 T5:很简单的基础建模题(吧) T6:一开始以为一个点可以选多次,心想:这不是煞笔dp嘛?后面发现每个点只能选1次,网络流直接搞 T7:简单的基础建模题 T8:听说不可做,直接跳过 T9:染一下色

2016-10-04 20:14:49 465

原创 bzoj2442(单调队列优化)

我们很容易想到nk的做法: 定义f[i]为前i个数这样分的方法 那么转移为f[i]=max(f[j−2]+sum[j][i]) (i−k+1<=j<=i)f[i] = max (f[j - 2] + sum[j][i])\ (i - k + 1 <= j <= i) 改成前缀和f[i]=max(f[j−2]+sum[i]−sum[j−1]) (i−k+1<=j<=i)f[i] = max (

2016-08-23 11:40:57 830

原创 [lydsy2005]能量采集

原题地址前文:很久没有写博客了呢 ,一直没有时间(在浪)题意不提。最后要求的式子我们单独看这坨cegma我们可以在o(n)的时间筛出phi(d)。总复杂度o(n)代码:#include#include#include#include#include#include#includeconst int N = 1e5 + 7;

2016-07-19 19:01:48 555

原创 主席树

先%fotile主席话说本蒟蒻一直布吉岛主席树与可持久化线段树的区别。。。也许他们就是一个东西。。。首先很明显的,如果我们要在原线段树上进行一次单点修改,并将新的树保存下来,我们其实可以不用新建2n个空间,我们可以注意到,每修改一次单点,只对从根到那个叶节点路径上的点有影响,所以我们新建一棵树只需logn的空间开销,正如图中所示,我们把新的节点的另一个儿子,指向

2016-04-05 22:10:50 1978 2

原创 [noi2005][treap]序列维护

这道题能用辣鸡度搜出来的treap做法只有两三篇吧,并且没有详解。。。先看数据范围,本蒟蒻感觉nlogn过不了啊。。。 [主要是我是大常数选手] 其实可以勉强过,跪烂了那些只跑1s多的神犇%%%首先,四百万次的插入,如果你每次都申请一个新的空间,肯定是要MLE的。我们注意到数列中最多只有五十万个元素,也就是说我们最多同时用到五十万个空间。那么可以这样处理:维

2016-04-03 19:24:09 859

原创 [Apio2012][Treap]派遣

原题地址题意:在树中找到一个点i,并且找到这个点子树中的一些点组成一个集合,使得集合中的所有点的c之和不超过M,且Li*集合中元素个数和最大。现在有三种做法

2016-03-31 22:01:54 907

原创 [CodeVs][1514][Treap][书架]

这道题我全网就看到了一个treap,QAQ这道题有个难题,他每次是对一个编号的书进行操作,如果是对从左到右的一个排名的书进行操作还好办.....因此在网上一位大神的代码帮助下,我发现,可以在外界对每一个书的编号搞一个指针,然后用get_rank函数来求出这本书的排名,然后就很好搞了。。。get_rank 怎么写呢? 我们将当前节点往父亲爬,如果当前节点是

2016-03-31 21:17:16 874

原创 Treap的时间到了!!

到了晚上最后几个小时,是时候填坑了,有的题解网上的一片splay,treap几乎没有,妈蛋,作为treap的脑残粉,我将向你展示如何用treap来肛死splay (lct的话当我没说)...壮哉我大treap诚心诚念treap大法好,treap大法把你保!!!来一段clj的鸡汤:我还记得很久以前有人跟我说的话,自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来

2016-03-31 21:12:13 814 1

原创 [数学最安逸][UVa1638改编][第一类斯特林数+组合数]杆子的排列

有高为1,2,3,...,n的杆子各一根排成一行。从左边能看到l根,从右边能看到r根,求有多少种可能。 (l,r 给出T 组数据 (T  关于 O(TnLR) 或 O(nMAX(L,R)) 预处理,O (n) 查询的解法已有,现在我来安利安利汪神的无敌解法,我现在只服汪神!!!先说答案,答案为s(n-1,l+r-2) * C(l + r - 2,l - 1) (

2016-03-27 21:29:31 1006 1

原创 [Codevs][1296][营业额统计]

原题地址模板题,就不说了,相信做了前面几道题就会这个了。。。就找一找前驱和后继嘛。。。。注意一个点:这里一个数的“前驱”和“后继”应包括那个数本身。[因为数据中有重复的数,我用bitset判重会re,不知是不是因为毒瘤数据。。。]强上代码 :#include#include#include#include#include#include#incl

2016-03-25 12:47:10 565

原创 [洛谷][P1503][鬼子进村][Treap]

原题地址 题意就不解释了吧。看到这道题,一开始YY把所有点加进treap里面,然后完全跟着操作走,应该是可做的。[在treap里面找连续的一段应该很简单,只要有一定代码能力都行|||||||吧。。。。]可不幸的因为本人太弱,不想写,就不得不YY其它的做法,我们可以发现,被困士兵能通过的房子组成的序列的两个端点为被毁灭的两个房屋。[左端点有可能为零,即最左端,右端点可能为

2016-03-24 19:13:20 895

原创 [noi 2004] 郁闷的出纳员

原题地址 花了一两天真正的熟悉了Treap,对于一个东西,本蒟蒻认为,不应该要会,还应会熟练的写,【像哈狗写这个只需十分钟】好吧,话归正题 先推荐另类解法 戳进去  此题解法很多BIT , 权值线段树 ,各种平衡树(准备抽空写)。。。。 是一道很棒的模板题。这道题我们把每次全体加的工资和减的弄到一个变量,姑且叫为w,把当前操作的数叫为k,当我们加

2016-03-23 21:56:01 816

原创 bzoj 3224,tyvj 1728普通平衡树

原题地址这道题涵盖了平衡树的基本操作。。。先关注操作三,它指出要输出最小的排名,因此我们可以将重复的元素存在一个节点内,代码实现很简单。。。插入操作已讲。。。那么怎样删除呢?首先我们找到被删的点,如果它是重复的(该元素还剩很多个),那么就把个数减一即可。否则我们可以采用像堆的方式,将这个元素通过旋转不断地下移。。。问题来了,下移的时候是选择左旋还是右旋呢

2016-03-22 15:21:25 989

原创 Treap

作为蒟蒻的我一直觉得平衡树很高端,便从treap学起。。。。【为了省选?】treap ,  顾名思义 tree + heap....为了学它我先写了一份普通的二叉排序树(定义就不说了)#include#include#include#include#include#includeconst int N = 5e5+7;int n,a[N];int Ran

2016-03-22 08:03:27 1097 4

原创 [模拟赛]棘手的操作

一道模拟题,,,

2016-03-21 20:34:37 1082

安徽省选数据

安徽省选数据

2016-04-06

空空如也

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

TA关注的人

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