自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苟为蒟蒻又何妨

DianPiBoZhuBaoFuSheHui

  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 洛谷 P4784 [BalticOI 2016 Day2]城市(斯坦纳树)

传送门题意:给一个nnn个点mmm条边的带权无向图,让你构造一棵最小生成树使得kkk个关键点都在上面n≤1e5,m≤2e5,k≤5n\le1e5,m\le2e5,k\le5n≤1e5,m≤2e5,k≤5。思路:套上斯坦纳树板子:fi,jf_{i,j}fi,j​表示iii为根子树特殊点状态为jjj的最优值,然后分情况转移即可。枚举jjj子集枚举不同的根第二种式子写出来就是最短路的...

2019-03-30 21:58:12 209

原创 bzoj5463: [APIO2018] 铁人两项(圆方树+树形dp)

传送门题意简述:给你一张无向图,问你满足存在从a−>b−>ca->b->ca−>b−>c且不经过重复节点的路径的有序点对(a,b,c)(a,b,c)(a,b,c)的数量。思路:对每一个连通块建一棵圆方树,然后可以按照圆点和方点做不同的树形dpdpdp。圆点:找存在于两棵不同子树的点对数方点:找存在于三颗不同子树的点对数...

2019-03-29 23:35:08 149

原创 NOIP训练 友好国度(点分治+容斥)

传送门思路:直接上点分治+容斥计算每个因数对应的贡献即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)...

2019-03-29 23:30:11 139

原创 190328省选模拟

取石子这题分aaa是否等于111分类讨论一下,将[a,b][a,b][a,b]设成不可达状态来手玩sgsgsg函数值代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char ...

2019-03-29 23:27:16 130

原创 bzoj3323: [Scoi2013]多项式的运算(非旋treap)

传送门题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v将xLx^LxL到xRx^RxR这些项的系数加上某个定值v将xLx^LxL到xRx^RxR这些项乘上x变量将某个定值v代入多项式F(x),并输出代入后多项式的值,之后多项式还原为代入前的状况其中第四种操作不会出现超过...

2019-03-29 07:41:15 137

原创 bzoj3326: [Scoi2013]数数(数位dp)

传送门题意:一个人数数,规则如下:确定数数的进制B确定一个数数的区间[L, R]对于[L, R] 间的每一个数,把该数视为一个字符串,列出该字符串的所有连续子串对应的B进制数的值。对所有列出的数求和。结果用10 进制表示,对20130427取模。思路:我不知道为什么要从低位开始向高位处理2333333手动毒瘤然后肝了好久幸好没有推错不然就自闭了不过需要多预处理一点东西。...

2019-03-28 21:58:07 222

原创 bzoj3322: [Scoi2013]摩托车交易(kruskal重构树+贪心)

传送门题意咕咕咕思路:先把所有可以列车通的缩成一个点,然后用新图建立kruskalkruskalkruskal重构树。这样就可以倒着贪心模拟了。代码:#include<bits/stdc++.h>#define ri register int#define int long long#define fi first#define se secondusing n...

2019-03-28 21:45:50 165

原创 bzoj3325: [Scoi2013]密码(manacher+模拟)

传送门题意:现在有一个nnn个小写字母组成的字符串sss。然后给你nnn个数aia_iai​,aia_iai​表示以sis_isi​为中心的最长回文串串长。再给你n−1n-1n−1个数bib_ibi​,bib_ibi​表示以si,si+1s_i,s_{i+1}si​,si+1​中间空隙为中心的最长回文串串长。问你满足条件的所有sss串中字典序最小的那个。思路:可以根据aia_iai...

2019-03-28 21:43:28 146

原创 bzoj3597: [Scoi2014]方伯伯运椰子(01分数规划)

传送门题意咕咕咕有点麻烦不想写思路:考虑加了多少一定要压缩多少,这样可以改造边。于是可以通过分数规划+spfaspfaspfa解决。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen...

2019-03-28 21:39:27 113

原创 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)

传送门题意咕咕咕思路:直接上二维bitbitbit优化dpdpdp即可。代码:#include<bits/stdc++.h>#define N 10005#define K 5005using namespace std;int n,k,a[N],bit[6005][605],len=0,ans=0;inline long long read(){ long...

2019-03-28 21:35:40 99

原创 bzoj3598: [Scoi2014]方伯伯的商场之旅(带权中位数+数位dp)

传送门题意咕咕咕自己读吧挺简单的思路:由带权中位数的性质可以得到对于每个数放在每个二进制位的代价一定是个单调或者单峰函数,因此我们先把所有的数都挪到第一个位置,然后依次向右枚举峰点(极值点)把能挪的挪走即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;typedef long...

2019-03-28 21:32:59 136

原创 bzoj3595: [Scoi2014]方伯伯的Oj(splay+map+set)

传送门题意简述:给一个有优先级的nnn个人的序列,初始的时候第iii个人排名为iii,现在有mmm个操作,种类如下:把编号为xxx的改成yyy,输出改前xxx的排名把编号为xxx放到队首,输出改前xxx的排名把编号为xxx放到队尾,输出改前xxx的排名输出排名为xxx的编号。强制在线,n≤1e8,m≤1e5n\le1e8,m\le1e5n≤1e8,m≤1e5思路:本蒟蒻的第...

2019-03-28 21:29:01 129

原创 bzoj4448: [Scoi2015]情报传递(归并排序+树链剖分)

传送门题意简述:给一棵nnn个点的树,树上每个点表示一个情报员,一共有mmm天,每天会派发以下两种任务中的一个任务:1.搜集情报:指派T号情报员搜集情报2.传递情报:将一条情报从X号情报员传递给Y号情报员一个情报员在搜集情报之前危险度为000,从开始搜集的第二天起每天危险度加一。每条情报都有一个风险控制值C,现在要求对于每个任务,参与传递的情报员有多少个,其中对危险度大于这条情报的CC...

2019-03-26 14:31:46 189

原创 bzoj4446: [Scoi2015]小凸玩密室(树形dp)

传送门题意简述:给一棵完全二叉树,有点权aia_iai​和边权,每个点有一盏灯,现在要按一定要求点亮:任意时刻点亮的灯泡必须连通点亮一个灯泡后必须先点亮其子树费用计算如下:点第一盏灯不要花费,之后如果点一盏灯uuu,且上一盏点的是vvv,花费是au∗distu,va_u*dist_{u,v}au​∗distu,v​问把所有点都点亮的最小花费。思路:树形dpdpdp好题。考虑到...

2019-03-26 14:24:06 157

原创 bzoj4444: [Scoi2015]国旗计划(线段树+倍增)

传送门题意简述:现在给你一个长度为mmm的环,有nnn条互不包含的线段,问如果强制选第iii条线段至少需要用几条线段覆盖这个环,注意用来的覆盖的线段应该相交,即[1,3],[4,5][1,3],[4,5][1,3],[4,5]不合法[1,4],[4,5][1,4],[4,5][1,4],[4,5]合法。思路:把坐标先离散化,然后破环为链,接着用线段树维护每个点向左走一步最多走到哪个点,然后就...

2019-03-26 14:17:14 125

原创 bzoj4447: [Scoi2015]小凸解密码(线段树)

传送门题意简述:咕咕咕思路:考虑预处理出bbb数组,然后每次改动aaa都只会对第iii和i+1i+1i+1这两个位置产生影响,于是可以用线段树来维护bbb数组。现在求答案的方法是断环为链,倍增整个数组,然后就可用线段树维护000段的一些信息。代码:#include<bits/stdc++.h>#define ri register intusing namespace ...

2019-03-26 14:12:34 167

原创 bzoj4572: [Scoi2016]围棋(轮廓线dp)

传送门题解可以参见zjjzjjzjj神仙的,写的很清楚。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;typedef long long ll;const int mod=1e9+7;inline int add(const int&a,const int&b){...

2019-03-25 23:41:31 160

原创 bzoj4568: [Scoi2016]幸运数字(倍增+线性基)

传送门题意:给你一棵带点权的树,多次询问路径的最大异或和。思路:线性基上树??倍增维护一下就完了。时间复杂度O(nlog3n)O(nlog^3n)O(nlog3n)代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace st...

2019-03-25 21:56:27 153

原创 bzoj4567: [Scoi2016]背单词(trie+贪心)

传送门题意:给你n个字符串,不同的排列有不同的代价,代价按照如下方式计算(字符串s的位置为x):1.排在s后面的字符串有s的后缀,则代价为n^2;2.排在s前面的字符串有s的后缀,且没有排在s后面的s的后缀,则代价为x-y(y为最后一个与s不相等的后缀的位置);3.s没有后缀,则代价为x。求最小代价和。思路:显然把所有字符串倒序建一个trietrietrie树出来。然后在上面贪心...

2019-03-25 18:32:15 121

原创 bzoj4539: [Hnoi2016]树(主席树+倍增)

传送门题意:给一棵大树,令一棵模板树与这棵树相同,然后进行mmm次操作,每次选择模板树中的一个节点aaa和大树中一个节点bbb,把aaa这棵子树接在bbb上面,节点编号顺序跟aaa中的编号顺序相同。最后有qqq次询问问大树上两点距离。思路:真·树套树把每棵树所成一个点,然后相当于先把两个点跳到一个块中再求它们的lcalcalca,可以用主席树维护块中编号第kkk大来维护块中对应点,实现...

2019-03-25 18:27:44 182

原创 bzoj2329: [HNOI2011]括号修复(fhq_treap)

传送门题意简述:给一个括号序列,要求支持:区间覆盖区间取负区间翻转查询把一个区间改成合法括号序列最少改几位思路:先考虑静态的时候如何维护答案。显然把所有合法的都删掉之后序列长这样:))...)))(((...(())...)))(((...(())...)))(((...((于是可以给(((赋值成−1-1−1,)))赋值成111,这样只用维护前缀最大值aaa和后缀最小值...

2019-03-25 16:53:34 179

原创 NOIP训练 匹配(match)(贪心)

题意简述:思路:直接考虑把人和物品都看成二维平面上面的a,ba,ba,b两类点,然后一个aaa和bbb匹配的条件是xa≤xb&amp;&amp;ya≤ybx_a\le x_b\&amp;\&amp;y_a\le y_bxa​≤xb​&&ya​≤yb​,要求最后选出的bbb的横坐标之和最小。这样的话,我们把a,ba,ba,b两类点分别按照xxx...

2019-03-25 16:45:24 200

原创 Codeforces 845 简要题解

文章目录A题B题C题D题E题F题G题传送门A题传送门题意:2n2n2n个人下棋,分为两个阵营,每个阵营nnn个人,每个人有一个积分,积分高的能赢积分低的,问如果你可以随意选人,然后每场比赛随机安排对局,最后AAA阵的棋手能否全胜。思路:看积分nnn大的和n+1n+1n+1大的积分是否相同代码:#include<bits/stdc++.h>#define ri re...

2019-03-22 14:16:59 631

原创 Codeforces 1065 简要题解

文章目录A题B题C题D题E题F题G题传送门GGG题略难,膜了一波zhouyuyang{\color{red} zhouyuyang}zhouyuyang巨佬的代码。其余都挺清真的。A题传送门题意:你有sss元钱,现在每颗糖ccc元,每买aaa颗会送你bbb颗,问最多买几颗糖。思路:按照题意模拟。代码:#include<bits/stdc++.h>#define ...

2019-03-20 14:43:04 550

原创 Codeforces 863 简要题解

文章目录A题B题C题D题E题F题G题传送门简要题解?因为最后一题太毒不想写了所以其实是部分题解。。。A题传送门题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数。思路:直接模拟。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1...

2019-03-18 19:02:31 401

原创 Codeforces 888 简要题解

文章目录A题B题C题D题E题F题G题传送门A题传送门题意简述:给一个数列,问有多少个峰值点(同时比两边都大/小的点)思路:按照题意模拟。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespace std;const int rlen=1&lt;&lt;18|1;inline char gc()...

2019-03-18 15:31:14 389

原创 Codeforces 884 简要题解

文章目录A题B题C题D题E题F题传送门A题传送门题意简述:一个人要完成一件事总共需要ttt秒,现在有nnn天,每天有aia_iai​不能做事,问他可以在第几天做完。思路:按照题意模拟。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespace std;const int rlen=1&lt;&...

2019-03-16 17:16:10 412

原创 Codeforces 873 简要题解

文章目录A题B题C题D题E题F题传送门A题传送门题意:一个人要做nnn件事,时间花费分别为a1,a2,...,an,a1≤a2≤a3≤...≤ana_1,a_2,...,a_n,a_1\le a_2\le a_3\le...\le a_na1​,a2​,...,an​,a1​≤a2​≤a3​≤...≤an​现在可以把至多kkk件事分别花xxx时间做完,问做完的最小总花费。思路:按照...

2019-03-15 14:45:04 521

原创 Codeforces 837 简要题解

文章目录A题B题C题D题E题F题G题传送门并没有找到难度评级但感觉是div3div3div3场。A题题意:一个单词的价值是里面大写字母的个数,一篇文章的价值是里面所有单词的价值的最大值。求一篇文章的价值。思路:按照题意模拟。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespace std;c...

2019-03-14 15:27:47 539

原创 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解

传送门听说比赛的时候T4T4T4标程锅了???WTF换我时间我要写T3啊于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl。T1 快速多项式变换(FPT)题意:给两个整数表示m,f(m)m,f(m)m,f(m),要求你构造一个nnn次多项式f(x)f(x)f(x),nnn自己定大小,要求所有系数非负,最高项系数不为000。思路:直接...

2019-03-12 20:32:49 603

原创 codeforces739E. Gosha is hunting(dp凸优化)

传送门题意:nnn个物品,有aaa个XXX道具和bbb个YYY道具,XXX道具移走第iii个物品概率为pip_ipi​,YYY道具移走第iii个道具概率为uiu_iui​。对于每个物品每种道具最多用一次且只能被移走一次,现在问对于道具的所有分配方案中移走物品的总个数的期望最大值是多少。思路:有一个很显然的O(n3)dp:fi,j,kO(n^3)dp:f_{i,j,k}O(n3)dp:fi...

2019-03-12 19:25:11 253

原创 Codeforces 1120 简要题解

文章目录A题B题C题D题E题F题传送门A题传送门题意简述:给你一个mmm个数的数列,现在规定把一个数列的1,2,...,k1,2,...,k1,2,...,k分成第一组,把k+1,k+2,...,2kk+1,k+2,...,2kk+1,k+2,...,2k分成第二组,…,这样把前n∗kn*kn∗k个数分成nnn组,现在给你sss个数,你可以删去至多m−n∗km-n*km−n∗k个数使得新数...

2019-03-12 12:49:32 975

原创 COGS2652 秘术(天文密葬法)(分数规划+长链剖分)

传送门题意:nnn个点的树,每个点两个值a,ba,ba,b,问长度为mmm的路径∑ai∑bi\frac{\sum a_i}{\sum b_i}∑bi​∑ai​​的最大值。思路:一眼要01分数规划,考虑checkcheckcheck可以用点分治水掉。然而也可以用长链剖分,复杂度降低一个logloglog。代码:#include&amp;lt;bits/stdc++.h&amp;gt;#define r...

2019-03-11 18:43:24 178

原创 bzoj4813: [Cqoi2017]小Q的棋盘(贪心)

传送门考虑最后所有走过的点构成的树,显然除了最长链走一遍以外每条轻链都走两遍。于是求一波最长链搞一搞就完了。注意几个小细节特判qwq代码:#include&lt;bits/stdc++.h&gt;#define ri register int#define fi first#define se secondusing namespace std;const int rlen=1...

2019-03-11 18:21:56 179

原创 bzoj5371: [Pkusc2018]星际穿越(主席树)

传送门题意简述:给一个序列,对于第iii个位置,它跟[limi,i−1][lim_i,i-1][limi​,i−1]这些位置都存在一条长度为111的无向边。称dist(u,v)dist(u,v)dist(u,v)表示(u,v)(u,v)(u,v)间最短路长度。qqq次询问,每次给出l,r,xl,r,xl,r,x,求∑i=lrdist(i,x)\sum_{i=l}^rdist(i,x)∑i=...

2019-03-09 15:37:14 182

原创 bzoj4999: This Problem Is Too Simple!(树链剖分+线段树动态开点)

传送门题意:给一颗树,每个节点有个初始值,要求支持将i节点的值改为x或询问i节点到j节点的路径上有多少个值为x的节点。思路:考虑对每种颜色动态开点,然后用树剖+线段树维护就完了。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespace std;inline int read(){ int ...

2019-03-09 11:01:59 239

原创 2019.03.09 bzoj4491: 我也不知道题目名字是什么(线段树)

传送门题意:给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串。思路:注意要求的是子串而不是子序列!!!然后直接用线段树维护最大子段和的方式合并一下就完了。注意要维护当前区间最靠左/右的数是什么。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespac...

2019-03-09 10:59:04 158

原创 codeforces620E. New Year Tree(线段树+状态压缩)

传送门题意:给一棵带颜色的树,可以给子树染色或者问子树里有几种不同的颜色,颜色值不超过606060。思路:颜色值很小,因此状压一个区间里的颜色用线段树取并集即可。代码:#include&lt;bits/stdc++.h&gt;#define ri register intusing namespace std;inline int read(){ int ans=0; char...

2019-03-09 10:56:14 252

原创 codeforces833B. The Bakery(线段树优化dp)

传送门线段树优化dpdpdp入门题。要求把nnn个数分成kkk段,每段价值为里面不相同的数的个数,求所有段的价值之和最大值。n≤35000,k≤50n\le35000,k\le50n≤35000,k≤50先考虑直接暴力dpdpdp,fj,if_{j,i}fj,i​表示把前iii个分成jjj组的最优值。显然fj,i=max⁡j−1≤k≤i−1{fj−1,k+W(k+1,i)}f_{j,i}...

2019-03-09 10:51:51 457

原创 JSOI2018 简要题解

潜入行动复杂度分析题。定义状态fi,j,0/1,0/1f_{i,j,0/1,0/1}fi,j,0/1,0/1​表示以iii为根子树放jjj个机器iii这个放不放,iii这个是否已放来进行dpdpdp可以通过分类讨论证明做树上背包的时间复杂度是O(nk)O(nk)O(nk)的。代码:#include&lt;bits/stdc++.h&gt;#define ri register int...

2019-03-08 20:04:14 191

segment--tree

一个线段树的ppt,里面主要讲了线段树,主席树,和树链剖分

2018-08-20

空空如也

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

TA关注的人

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