自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stargazer的博客

祈求不幸

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

原创 【BZOJ4012】【HNOI2015】—开店(动态点分治)

传送门感觉和幻想乡那道题差别不是很大每一层排序后用一个数据结构来维护因为没有修改直接每个点维护子树信息排序后每次询问二分前缀和就可以了记录一下每个点自己的答案和对父亲的贡献相减一下就可以了具体可以参考代码#include<bits/stdc++.h>using namespace std;#define ll long long#define re registe...

2019-03-30 19:52:24 112

原创 【BZOJ4543】【POI2014】Hotel加强版(长链剖分)

传送门题意:求树上满足三点之间距离两两相等的三元组个数n≤1e5n\le 1e5n≤1e5原题数据是n≤5000n\le5000n≤5000考虑怎么做f[u][i]f[u][i]f[u][i]表示uuu为根,深度为iii的点的个数g[u][i]g[u][i]g[u][i]表示uuu为根,满足2点到lcalcalca的距离减去lcalcalca到uuu的距离为iii,即dep[x]+de...

2019-03-30 19:47:52 253

原创 【BZOJ3809】—GTY的二逼妹子序列(莫队+权值分块)

传送门考虑如果没有美丽度的限制就是个很简单的莫队板子了现在有限制考虑怎么做考虑对美丽度权值分块则每次散块暴力统计有没有当前权值的妹子整块直接移动的时候统计答案#include<bits/stdc++.h>using namespace std;#define pb push_backconst int RLEN=1<<18|1;inline char n...

2019-03-30 19:38:36 185

原创 【BZOJ2878】【NOI2012】—迷失游乐园(基环树期望dp)

传送门考虑没有环的时候怎么做之前做过一次类似的简单题,只不过是有向图考虑无向图的时候记录一个sis_isi​表示iii向儿子走的期望长度,downidown_idowni​表示向儿子走的长度之和downu=∑v=sonusv+vale,su=downusonudown_u=\sum_{v=son_u}s_{v}+val_e,s_u=\frac{down_u}{son_u}downu​=v=...

2019-03-30 19:33:53 188

原创 【2019省选模拟】—树(并查集+容斥)

先不考虑修改考虑直接不好求,改成求gcdgcdgcd不为1的个数容斥一下就是一个质数时联通的点对个数-2个质数的积时联通的点的个数+3个质数积联通的点的个数……发现实际上就是μ\muμ联通的点的个数实际上很好求,用并查集维护一下,mergemergemerge的时候加一个sizsizsiz的积就可以了但每次不能直接重置,用一个指针维护一下回收被修改的sizsizsiz和fafafa,并查...

2019-03-30 19:07:48 163

原创 【BZOJ2120】—数颜色(带修莫队)

传送门带修莫队版题记录多记一维是第几次修改,记录一下修改之前是什么颜色就可以了块大小不能开n\sqrt nn​,那样复杂度没有变化大概n23n^{\frac 2 3}n32​或者n34n^{\frac 3 4}n43​的时候最优#include<bits/stdc++.h>using namespace std;#define ll long long#define p...

2019-03-29 22:00:43 130

原创 【BZOJ3597】【SCOI2014】—方伯伯运椰子(分数规划)

传送门显然流量不变的时候是最优的考虑如果把一条边流量减一花费是a−da-da−d扩大一次花费是b+db+db+d想象一下,实际上最优操作就是对于2条起点终点相同的有向路径压缩一条,扩大一条把扩大看成正向,压缩看成反向的实际上就变成了一个环实际上我们现在就是要让一个环上的∑−costlen\frac{\sum -cost}{len}len∑−cost​最小因为有边的数量考虑分数...

2019-03-27 19:58:17 313

原创 【BZOJ3598】【SCOI2014】方伯伯的商场之旅(数位dp)

传送门似乎做出来之后很简单了显然对于每一个数都是在带权中点最优假设先把所有数都移到最后一位再枚举有多少能往左移更优考虑显然在找中点的时候能往左移的条件是当前位置前缀大于后缀而前后缀之差的范围是很小的,可以直接作为状态维护统计出所有更优的状态减一下就是了具体看代码吧我tm在口胡什么啊(逃)#include<bits/stdc++.h>using namespace ...

2019-03-27 19:49:50 161

原创 【BZOJ3594】【SCOI2014】方伯伯的玉米田(dp)

传送门显然的一个性质就是每次拔高都拔高一段[x,n][x,n][x,n]最优考虑朴素dpdpdpf[i][j][k]f[i][j][k]f[i][j][k]表示前iii株玉米,拔高了jjj次,当前最高的为kkk的数量发现iii这一维没有用,可以直接省去考虑转移是每次找之前满足x≤h[i]+j,y≤kx\le h[i]+j,y\le kx≤h[i]+j,y≤k的f[x][y]f[x][y]...

2019-03-27 19:43:01 77

原创 【BZOJ4827】【HNOI2017】—礼物(FFT)

传送门实际上旋转总共只会有nnn种不同的配对方案ans=∑i=1n(ai−bi+c)2ans=\sum_{i=1}^{n}(a_i-b_i+c)^2ans=∑i=1n​(ai​−bi​+c)2拆开后=∑(a2+b2−2ab+c2+2c(a−b))=\sum (a^2+b^2-2ab+c^2+2c(a-b))=∑(a2+b2−2ab+c2+2c(a−b))∑a2+b2\sum {a^2+b^...

2019-03-27 19:37:00 111

原创 【BZOJ4539】【HNOI2016】—树(主席树)

传送门真⋅树套树真·树套树真⋅树套树因为每次复制的都是原树的子树所以我们考虑直接在新树上加一个点来记录这是原树中的哪个点的子树边权设为儿子在父亲子树中连接的点到父亲的根的距离至于编号是一段连续的区间,可以直接记录每一段二分查找具体的点相当于原树子树中查找第kkk大,一个主席树记录一下查询距离的时候先计算出u,v,lcau,v,lcau,v,lca三个根之间的距离然后分类讨论一下u,...

2019-03-27 07:42:07 113

原创 【BZOJ4448】【SCOI2015】—情报传递(主席树)

传送门相当于求路径上小于i−k−1i-k-1i−k−1的值的数量直接上主席树,带修O(nlog2n)O(nlog^2n)O(nlog2n)发现后面的修改是不可能对前面的询问有影响离线先把所有修改了建树上主席树每次找lcalcalca区间求一波就可以了#include<bits/stdc++.h>using namespace std;#define ll long l...

2019-03-26 21:52:32 180

原创 【BZOJ4445】【SCOI2015】—小凸想跑步(半平面交)

传送门发现满足面积为最小也就是一号边和其他所有边的夹角的角平分线一侧裸地半平面交Debug2h后发现一个x,yx,yx,y写反了。。。#include<bits/stdc++.h>using namespace std;#define ll long longinline int read(){ char ch=getchar(); int res=0,f=1; w...

2019-03-26 19:20:37 172

原创 【BZOJ4444】【SCOI2015】—国旗计划(倍增+贪心)

传送门有点有趣的一道题先拆环为链并倍长发现由于路径之前没有覆盖关系所以对于一条路径,接下来走的下一条是一定的,贪心选最远的那一条那对于每一条路径的下一条可以在O(n)O(n)O(n)求出来的考虑倍增f[i][j]f[i][j]f[i][j]表示从iii开始走2j2^j2j条路径会走到哪里然后对于每个人暴力跳一下看多久跳到mmm就可以了复杂度O(nlogn)O(nlogn)O(nlo...

2019-03-26 19:06:29 104

原创 【BZOJ4443】【SCOI2015】—小凸玩矩阵(二分+最大匹配)

传送门简单题考虑二分转化成判断性问题既然总共能选且只能选nnn个那也就变成了能否选出n−k+1n-k+1n−k+1个比他小的元素dinicdinicdinic跑最大匹配就完了#include<bits/stdc++.h>using namespace std;#define ll long longinline int read(){ char ch=getchar...

2019-03-26 18:50:38 153

原创 【BZOJ4518】【SDOI2016】—征途(斜率优化dp)

传送门题意:有nnn个数,要把这些数分成连续的mmm段使方差最小由于s2=∑i=1n(d−di)2ms^2=\frac{\sum_{i=1}^{n}(d-d_i)^2}{m}s2=m∑i=1n​(d−di​)2​则s2∗m2=m∗∑i=1n(d−di)2s^2*m^2=m*\sum_{i=1}^{n}(d-d_i)^2s2∗m2=m∗∑i=1n​(d−di​)2令sumk=∑i=1kdis...

2019-03-25 20:28:58 153

原创 【BZOJ4199】【NOI2015】—品酒大会(后缀数组)

传送门很显然kkk相似就是所有k≤lcpk \le lcpk≤lcp的后缀排序后不断加入,用个并查集维护一下合并两段的信息,大小,最大值,最小值就可以了据说某些题解过不了样例?#include<bits/stdc++.h>using namespace std;#define ll long long#define re registerinline int read(...

2019-03-25 19:00:52 126

原创 【BZOJ3160】【2013湖北互测week1】—万径人踪灭(FFT+Manacher)

传送门题意:给定一个串,问有多少个满足位置对称的不连续回文子序列考虑计算出出所有位置对称的回文子序列和所有连续回文子串后者可以直接用ManacherManacherManacher求出考虑前一部分怎么求对于每个对称轴的位置iii单独考虑发现和a,ba,ba,b没有关系,只需要看s[i−k]s[i-k]s[i−k]和s[i+k]s[i+k]s[i+k]相等的个数就可以了即∑k[s[i+...

2019-03-25 16:18:43 159

原创 【BZOJ3566】—概率充电器(树形+概率dp)

传送门简单dpdpdp考虑到充的上电的概率不好求求出每个点充不上点的概率减一下就完了令f[i]f[i]f[i]表示iii的儿子们没法给自己充电或自己没电的概率g[i]g[i]g[i]表示iii的父亲没法给自己充电的概率h[i]h[i]h[i]表示iii没法给父亲充电的概率那显然h[i]=f[i]+(1−f[i])∗pi,faih[i]=f[i]+(1-f[i])*p_{i,fa_i}...

2019-03-25 09:08:51 146

原创 【SPOJ】—Qtree系列题解

Query on a treeSPOJ洛咕把边权丢给儿子就可以了注意一下细节,其他的没什么还有洛咕和SPOJSPOJSPOJ要求不一样这是洛咕的#include<bits/stdc++.h>using namespace std;#define ll long longinline int read(){ char ch=getchar(); int...

2019-03-22 19:11:06 153

原创 【BZOJ2816】【洛谷】【ZJOI2012】—网络(LCT)

BZOJ传送门洛咕传送门tmtmtm注意最后要加一个“...”没注意就奇怪的挂了……发现C&lt;10C&lt;10C<10,直接对于每一个颜色暴力维护一颗LCTLCTLCT就可以了判断的话应该比较简单,反正连边个人喜欢用一个mapmapmap来记录注意queryqueryquery及时下传信息否则会出错#include<bits/stdc++.h>...

2019-03-20 19:35:38 144

原创 【洛谷P1501】【国家集训队】Tree(LCT)

传送门就和线段树维护区间加、乘标记一样板子题注意虽然模数很小但任然会爆intintint#include<bits/stdc++.h>using namespace std;#define ll long long#define int unsigned intinline int read(){ char ch=getchar(); int res=0...

2019-03-20 14:22:22 116

原创 【BZOJ2739】—最远点(决策单调性+分治)

传送门把环倍长,只考虑iii~i+ni+ni+n的点发现最远点满足决策单调性分治求解就可以了#include<bits/stdc++.h>using namespace std;#define ll long longinline int read(){ char ch=getchar(); int res=0,f=1; while(!isdigit(ch)){if...

2019-03-20 09:43:17 247

原创 【BZOJ2961】【国家队清华集训2012~2013】—共点圆(CDQ分治+凸包)

传送门其实也不是很难,但是没考虑周全调了半天……我还是tcltcltcl显然可以直接对圆反演后用平衡树维护动态凸包考虑到对于一个点(x0,y0),(x_0,y_0),(x0​,y0​),在圆(x,y)(x,y)(x,y)中即(x0−x)2+(y0−y)2≤x2+y2(x_0-x)^2+(y_0-y)^2\le x^2+y^2(x0​−x)2+(y0​−y)2≤x2+y2化简后即x02+y...

2019-03-18 19:46:01 203

原创 【BZOJ3669】【NOI2014】—魔法森林(LCT维护最小生成树)

传送门把aaa排序,此时我们所关注的就是1~n路径上bbb的最大值考虑维护一个bbb的最小生成树,实际上就是连了一条边之后找到路径上的最大值看是否更优更新一下答案就是了注意LctLctLct无法维护边权要把边变成点#include<bits/stdc++.h>using namespace std;inline int read(){ char ch=getchar(...

2019-03-18 19:24:22 121

原创 【BZOJ4259】—残缺的字符串(FFT)

BZOJ题面link这套路……真是绝了发现这个∗*∗导致我们无法使用相关的字符串算法定义差异函数fA,B=∑i=0n−1(A[i]−B[i])2A[i]∗B[i]f_{A,B}=\sum_{i=0}^{n-1}(A[i]-B[i])^2A[i]*B[i]fA,B​=∑i=0n−1​(A[i]−B[i])2A[i]∗B[i]可以发现只有当A=BA=BA=B时f=0f=0f=0令∗=0*=0...

2019-03-14 18:59:23 157

原创 【Codechef】—Prime Distance On Tree(点分治+FFT)

传送门fftfftfft水题看到询问路径就想到点分治令cnt[i]cnt[i]cnt[i]表示当前中心,深度为iii的点的个数ans[i]ans[i]ans[i]表示长度为iii的路径的个数则ans[i]=∑j=0icnt[j]∗cnt[i−j]ans[i]=\sum_{j=0}^{i}cnt[j]*cnt[i-j]ans[i]=∑j=0i​cnt[j]∗cnt[i−j]也就是cntc...

2019-03-14 16:06:31 344

原创 【BZOJ3509】【CodeChef】—COUNTARI(分块+FFT)

传送门BZOJBZOJBZOJ看不了权限题怎么办?把网址中的problemproblemproblem改成showshowshow就可以了(虽然没法提交)可以从darkbzojdarkbzojdarkbzoj上下数据啊考虑处理222个东西l[i][j]l[i][j]l[i][j]表示iii前面,值为jjj的个数,r[i][j]r[i][j]r[i][j]表示iii后面,值为jjj的个数...

2019-03-14 15:55:18 187

原创 【BZOJ3527】【ZJOI2014】—力(FFT)

传送门这题简单到我这种菜鸡都能A把两个式子分开考虑前一半就是ansi=∑j=1i−1qj(i−j)2ans_i=\sum_{j=1}^{i-1}\frac{q_j}{(i-j)^2}ansi​=j=1∑i−1​(i−j)2qj​​令f[i]=1i2f[i]=\frac 1{i^2}f[i]=i21​则ansi=∑j=1i−1qjfi−jans_i=\sum_{j=1}^{i-1}q_j...

2019-03-14 15:35:04 103

原创 【COGS2652】—天文密葬法(分数规划+长链剖分)

COGS传送门(已咕咕)一眼分数规划二分一个midmidmid,找到∑ai−∑bi∗mid\sum{a_i}-\sum{b_i}*mid∑ai​−∑bi​∗mid最小的路径,如果路径长大于0,下界调高,否则上界调低考虑f[i][j]f[i][j]f[i][j]表示以iii为根,深度为jjj的路径的最小值显然对于一个点只有可能是往下一整条链或者2条链拼起来发现fff第二维只和深度有关,就可...

2019-03-12 12:41:12 190 1

原创 【BZOJ3611】【HeOI2014】—大工程(虚树+dp)

传送门首先肯定建出虚树考虑三种答案如何分别统计路径长度和显然示是对于每条边考虑一下上下有多少个点,乘一下就可以了最大值显然就是树的直径最小值可以考虑树形dpdpdp,考虑mn[i]mn[i]mn[i]表示iii到其子树中最近的距离显然可以类似直径树形dpdpdp解决#include&lt;bits/stdc++.h&gt;using namespace std;#define l...

2019-03-12 11:00:36 145

原创 【BZOJ1758】【WC2010】—重建计划(点分治+分数规划)

传送门%%%wcrwcrwcr太巨辣一眼分数规划,二分一个midmidmid,每条边减去midmidmid,现在就变成了是否存在一条路径满足L≤len≤UL\le len\le UL≤len≤U且权值和大于000显然可以点分治考虑对于当前分治中心,处理出一个fff表示已经遍历的子树中的每个深度的最大值,然后遍历当前某个子树,再处理出每个深度的最大值,然后就可以维护一个单调队列来做了但是发...

2019-03-12 07:58:32 236 1

原创 【BZOJ4765】—普通计算姬(分块+BIT)

传送门其实很简单考虑修改一个点对于所有块的影响我们可以预处理出一个数组ef[i][j]ef[i][j]ef[i][j]表示修改iii对第jjj块会影响几个点显然只会影响iii的祖先这个数组可以在dfsdfsdfs的时候继承父亲的O(n)O(\sqrt n)O(n​)得到询问整块直接返回散块相当于对于每一个点询问子树和转成dfsdfsdfs序上区间求和就可以了注意极限数据会爆lon...

2019-03-11 10:11:51 157

原创 【BZOJ3821】【UOJ#46】【清华集训2014】—玄学(线段树分治)

UOJ传送门我们发现实际上可以不用在乎给出的xxx,可以先记录一个a,ba,ba,b的系数显然这个每次很好计算贡献显然离线的时候我们可以用线段树分治氵过去那在线呢?二进制分组?好像不太行得通,因为在一个组内可能只取一部分继续考虑线段树分治显然在一个操作出现之前不会被统计到那就可以在每次加一次操作后对于已经填满的区间pushuppushuppushup一下突然发现似乎pushup...

2019-03-08 16:17:22 300

原创 【BZOJ5319】【JSOI2018】—军训列队(主席树)

传送门显然是直接按照位置来排队最优考虑每次是把编号一段拿出来,考虑建一颗主席树可以在主席树上二分找到在kkk前的人要站到哪儿注意有可能二分到的位置可能还是被放到特判+1即可然后随便算一下就可以了#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long longinline int read(){ c...

2019-03-08 14:45:25 113

原创 【BZOJ5314】【JSOI2018】—潜入行动(树形dp)

传送门似乎和曾经一道简单树形dpdpdp类似?f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示iii的子树点亮jjj个,当前这个点点不点亮的方案只不过这个是自己不会点亮自己于是f[i][j][0/1][0/1]f[i][j][0/1][0/1]f[i][j][0/1][0/1]多一维表示自己是否被点亮要考虑的情况似乎有点多?卡空间毒瘤差评#include&...

2019-03-08 11:59:49 342

原创 五维偏序模板(bitset+分块)

很简单的维护一下分块就可以了似乎也不需要多讲什么#include&lt;bits/stdc++.h&gt;using namespace std;inline int read(){ char ch=getchar(); int res=0,f=1; while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();} whi...

2019-03-08 07:46:52 508

原创 【BZOJ5328】【SDOI2018】—物理实验(扫描线+双指针)

传送门题解:#include&lt;cstdio&gt;int main(){int t;cin&gt;&gt;t;while(t--)puts("nan");}真的AAA了……有个0ms0ms0ms就是我说正解先把导轨转到xxx轴上发现这时候xxx长度相同的时候覆盖的长度和线段斜率是成正比的于是我们可以把斜率当做价值同时可以发现同一xxx轴只需要维护yyy最小的一段可以...

2019-03-07 17:01:04 122

原创 【VIOLET3】【BZOJ2716】天使玩偶(cdq分治)

传送门把四个象限分开讨论(不然没法做对吧)对于一个点(x,y)(x,y)(x,y),也就是求min(∣x′−x∣+∣y′−y∣)min(|x&amp;#x27;-x|+|y&amp;#x27;-y|)min(∣x′−x∣+∣y′−y∣)考虑左下角,其他的类似则求min(x−x′+y−y′)=min(x+y−x′−y′)min(x-x&amp;#x27;+y-y&amp;#x27;)=min...

2019-03-06 20:51:24 463

原创 【BZOJ3295】【CQOI2011】—动态逆序对(cdq分治)

传送门简单cdqcdqcdq分治离线后变成一个个插入考虑实际上就是对于(time,pos,val)(time,pos,val)(time,pos,val)满足timei&amp;lt;timej,(posi&amp;lt;posj&amp;amp;&amp;amp;vali&amp;gt;valj)∣∣(posi&amp;gt;posj&amp;amp;&amp;amp;vali&amp;...

2019-03-06 19:35:25 188

空空如也

空空如也

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

TA关注的人

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