自定义博客皮肤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的博客

祈求不幸

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

原创 【BZOJ5394】【Ynoi2016】—炸脖龙(树状数组+广义欧拉定理)

传送门考虑广义欧拉定理直接暴力从左到右扫这样最多logloglog次模数就变成1了然后就没了注意快速幂的时候记一下取没取模每层不要乱取模,因为每次模数不一样复杂度O(nlog2n+p)O(nlog^2n+p)O(nlog2n+p)有点小卡空间#include<bits/stdc++.h>using namespace std;const int RLEN=1&...

2019-04-24 17:37:47 223

原创 【BZOJ2588】【Spoj10628】—Count on a tree(主席树)

传送门题意:求树上路径第kkk大值主席树菜题树上主席树就完了#include<bits/stdc++.h>using namespace std;const int RLEN=1<<21|1;inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ib==ob)&&(ob=(ib=ibuf)+...

2019-04-24 17:32:24 134 2

原创 SCOI2019爆零记+总结反思

Day-4&&Day-3考了一下十二省联考的题两天能做的都没做起,day2分段把自己分挂了感觉要凉Day-2&&Day-1敲了2天板子本来说一天打完计算几何数据结构字符串然而计算几何和数据结构就打了一天半两天下来数论图论多项式一个没打笔试也没背感觉要跪Day0早早的就来了机房背笔试然而背着背着就打开了手机…跟杜老师道别之后就动身前往神大...

2019-04-16 23:50:31 516 3

原创 【SCOI2019】—DAY1T1平台跳跃(打表+高精度)

太菜了只做出来了T1结果没考虑最后一次正反还挂掉了20ptsptspts口胡一下题解刷一波访问量可以发现显然iii个球的答案f[i]=f[i−1]∗3+(n−1)f[i]=f[i-1]*3+(n-1)f[i]=f[i−1]∗3+(n−1)但是m=1000m=1000m=1000高精度5002∗q500^2*q5002∗q也过不去我们可以打表第iii步的答案会发现显然连续的一段都是同一个...

2019-04-13 20:35:12 747

原创 省选模板复习—【字符串】

KMP略Manacherinline void manacher(){ int len=strlen(s); now[0]='!',now[1]='$',n=1; for(re int i=0;i<len;i++){ now[++n]=s[i],now[++n]='$'; } now[n+1]='@'; mx=mid=1...

2019-04-11 16:15:13 248

原创 省选模板复习—【数据结构】

树状数组略线段树略平衡树splay:splay:splay:注意哨兵节点fhq−treapfhq-treapfhq−treapLCT维护子树STSTST表求LcaLcaLca(四倍空间)注意二维哪一维在前(二维寻址常数优化)长剖(注意dep[v]dep[v]dep[v]的范围以及边界(最好每次多开大点但相应数组就要开n∗moren*moren∗more))i...

2019-04-11 10:35:23 136

原创 【BZOJ3572】【HNOI2014】—世界树(虚树+倍增+dp)

传送门考虑将虚树建出来我们先对于每个虚树的点点求出被哪个地方支配然后考虑对每一条边考虑如果两边点被同一点支配就不用管了否则考虑倍增找到中点分别计算一下贡献可以处理一个remremrem表示子树中除去已经被计算过的剩下的sizsizsiz也就可以方便统计那些没有关键点的子树了具体可以看代码#include<bits/stdc++.h>using namespace ...

2019-04-10 21:24:03 150

原创 【BZOJ4399】—膜法少女LJJ(线段树合并)

传送门坑比题面c≤7c\le 7c≤7考虑到3、43、43、4操作可行的只有平衡树或者权值线段树维护大力上线段树合并用并查集维护一下联通块至于权值积转成对数加就可以了#include<bits/stdc++.h>using namespace std;const int RLEN=1<<21|1;inline char gc(){ static char...

2019-04-10 16:58:30 203

原创 省选模板复习—【计算几何】

头文件:const double eps=1e-8;const double pi=acos(-1);inline double P(double x){ return x*x;}inline int sign(double x){ return fabs(x)<eps?0:(x>0?1:-1);}struct point{ double x,y; point(d...

2019-04-10 15:39:42 132

原创 【BZOJ2115】【WC2011】—Xor(线性基)

传送门发现最后路径一定是一条路径加上很多个环因为重复走的路径已经被消除了就只需要把所有环找到求出线性基就可以了#include<bits/stdc++.h>using namespace std;#define ll long longinline int read(){ char ch=getchar(); int res=0,f=1; while(!isdigi...

2019-04-09 21:57:46 144

原创 【洛谷P5290】【十二省联考2019】春节十二响(贪心+启发式合并)

传送门首先可以显然的发现段数一定是最长链的长度手玩一下样例似乎可以贪心,每次把最大的一个个丢?事实证明这是对的这样就有60pts60pts60pts了再把链写了就可以拿到75pts75pts75pts的好成绩考虑100分,如果合并2条子树的链由排序不等式可以证明第2边第iii大的数放一起是最有的那就可以利用优先队列启发式合并做看起来复杂度是O(nlog2n)O(nlog^2n)...

2019-04-09 16:51:46 262

原创 【BZOJ5461】 【PKUWC2018】—Minimax(线段树合并优化dp)

传送门发现其实就是左右2棵子树,左儿子选到某个值的概率就是选最大值的概率∗右儿子的值比它小的概率选最大值的概率*右儿子的值比它小的概率选最大值的概率∗右儿子的值比它小的概率+选最小值的概率∗右儿子的值比他大的概率+选最小值的概率*右儿子的值比他大的概率+选最小值的概率∗右儿子的值比他大的概率右儿子类似由于保证所有值都相等然后上线段树合并mergemergemerge的时候dpdpdp一...

2019-04-06 21:59:59 733

原创 【LOJ#3043】【洛谷P5280】【ZJOI2019】—线段树(计数dp+线段树)

LOJ传送门洛谷传送门早上在知乎看到吉司机说这是一道期望+数据结构一脸懵逼原来就是把计数看成期望乘上情况分析一波复制操作就可以发现其实就是求每次操作有///没有的2t2^t2t种情况的tagtagtag之和如果按照线段树这个样子似乎……可以直接用线段树维护?维护一个tr[u]tr[u]tr[u]表示线段树上点uuu当前有多少种情况为111没有影响到的点显然tagtagtag是...

2019-04-06 15:41:00 217

原创 【省选模拟】—猎人杀(概率dp)

和加特林轮盘赌差别不大(虽然我没做过……)考场上想了一个利用树状图转移的n3n^3n3做法但是觉得写不出来就没做…实际上可以很简单的列出dpdpdp式f[i][j]f[i][j]f[i][j]表示剩iii个人,第jjj个人活下来的概率f[i][j]=(f[i−1][j−1]+f[i][j−k])/2f[i][j]=(f[i-1][j-1]+f[i][j-k])/2f[i][j]=(f[i...

2019-04-05 20:30:31 203

原创 【BZOJ4828】【HNOI2017】—大佬(LmyAKIOI!)

传送门发现其实具体哪一天攻击并不重要我们首先只需要保证用最少的天数不死就可以了于是可以首先f[i][j]f[i][j]f[i][j]表示前iii天,信心为jjj的最多的可以用来攻击的天数这个转移很简单那现在就变成了能不能用ttt天时间击败大佬具体有哪些伤害也不好求出来只能用搜索来得到只攻击一次击败大佬是很好判断的假设有2次攻击,用时分别为dx,dydx,dydx,dy,伤害为fx...

2019-04-05 20:25:20 621

原创 【LOJ#2324】【清华集训 2017】—小 Y 和二叉树(贪心)

传送门情况有点多…显然的贪心就是我们要让最小的一个叶子节点作为最左边的点然后考虑从这个点向上走对于2个儿子显然是把子树最小值小的那一个设成右儿子另一个当成父亲然后讨论的情况有点多…反正自己咕咕了具体选哪个根不重要#include<bits/stdc++.h>using namespace std;const int RLEN=1<<17|1;#de...

2019-04-05 20:13:54 184

原创 【BZOJ2436】【NOI2011】—NOI嘉年华(dp)

传送门发现这要把一段的活动归到一边去先离散化时间num[l][r]num[l][r]num[l][r]表示全部在[l,r][l,r][l,r]内的活动的个数pre[i][j]pre[i][j]pre[i][j]表示前iii的时间内给一边jjj个另一边最多有多少个则pre[i][j]=Maxkmax(pre[k][j]+num[k][i],pre[k][j−num[k][i]])pre[i...

2019-04-04 18:49:45 224

原创 【BZOJ2726】【SDOI2012】—任务安排(斜率优化dp)

传送门有一个显然的O(n2)dpO(n^2)dpO(n2)dpf[i]f[i]f[i]表示前iii天的最小花费tottottot是费用的前缀和ttt是时间的前缀和f[i]=min(f[j]+(totn−totj)∗(s+ti−tj))f[i]=min(f[j]+(tot_n-tot_j)*(s+t_i-t_j))f[i]=min(f[j]+(totn​−totj​)∗(s+ti​−tj​...

2019-04-04 17:19:13 149

原创 【BZOJ4892】【TJOI2017】—DNA(后缀数组+ST表)

传送门考虑3个不同的位置就是枚举AAA的一个子串,看和BBB是否有超过3个位置不匹配可以建立后缀数组之后跳lcplcplcp,如果有333个位置以上不匹配就不行似乎直接哈希二分就完了啊写个p的后缀数组#include<bits/stdc++.h>using namespace std;inline int read(){ char ch=getchar(); int...

2019-04-04 12:01:31 221 1

原创 【BZOJ1563】【NOI2009】—诗人小G(决策二分栈优化dp)

传送门O(n2)dpO(n^2)dpO(n2)dp应该都会吧……f[i]=min(f[j]+(sum[i]−sum[j]−L)pf[i]=min(f[j]+(sum[i]-sum[j]-L)^pf[i]=min(f[j]+(sum[i]−sum[j]−L)p我们发现这个ppp次方是单调的考虑2个决策点对后面的贡献一定存在一个分界点满足前面从第一个决策转移更优,后面从第二个转移更优我们...

2019-04-04 11:58:03 190

原创 【洛谷P5249】【LnOI2019】—加特林轮盘赌(概率dp)

传送门手动消元令f[i][j]f[i][j]f[i][j]表示还剩iii个人,第jjj个人最后活下来的概率显然f[i][j]=p0∗f[i−1][j−1]+(1−p0)∗f[i][j−1]f[i][j]=p0*f[i-1][j-1]+(1-p0)*f[i][j-1]f[i][j]=p0∗f[i−1][j−1]+(1−p0)∗f[i][j−1]发现这个是带环的,但是所有人概率加起来显然是等于...

2019-04-03 22:03:46 308

原创 【Ural1519】— Formula1(轮廓线dp)

传送门看这个大佬的博客吧,讲的很详细:传送门#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;#define ll long long#define gc getcharinline int read(){ char ch=gc(); int res=0,f=1; whil...

2019-04-03 21:52:27 180 2

原创 【BZOJ3728】【PA2014】—Final Zarowki(思维题)

传送门考虑对于每一个房间,肯定是选择差最小的那个灯泡而如果满足的灯泡不够了就需要换一个过来最后如果还有剩下可以换的肯定是要把差最大的给换掉那就有个大致的做法了将房间和灯泡从大到小排序维护一个堆表示比当前房间大的剩下还可以用的灯泡如果还有剩的就选一个最小的,并将他们的差再放入一个堆里面没有的话就花一次机会换一个灯泡过来最后如果有剩下的机会再换差最大的几对#include<b...

2019-04-03 20:26:44 249

原创 【BZOJ3730】—震波(动态点分治)

传送门珍爱生命,远离动态点分治显然对于每一个分支中心维护一个BitBitBit,统计深度为iii的所有点的valvalval之和每次暴力跳fafafa统计自己的答案减去对父亲的贡献主要在于如何维护一个BitBitBit,暴力建显然是不可能的空间开不下我们可以利用vectorvectorvector的assignassignassign动态开点就好了(主要是不会用new in...

2019-04-02 20:22:11 184

原创 【Hackerrank (70)】—Range Modular Query(莫队+暴力)

传送门有说保证数据随机或者不充分么。。。我为什么没看到……直接调和级数证明暴力复杂度是O(nnlogn)O(n\sqrt nlogn)O(nn​logn)的#include<bits/stdc++.h>using namespace std;const int RLEN=1<<18|1;inline char gc(){return getchar(); s...

2019-04-02 15:28:47 162

原创 【省选模拟】—Cactus(圆方树+dfs序)

传送门割点也建一个方点要好做一点建出圆方树后就差不多了吧。。。处理一下lcalcalca如果是方点会对上面那个圆点有贡献开个桶记一下就完了#include<bits/stdc++.h>using namespace std;const int RLEN=1<<18|1;inline char gc(){ static char ibuf[RLEN],*ib...

2019-04-02 11:48:10 94

原创 【BZOJ2125】—最短路(圆方树+树链剖分)

传送门题意:询问仙人掌上2点之间最短路先建出圆方树,每个圆点到方点的距离为到这个环最高点的最短距离每次询问分类讨论一下圆点方点如果是方点的话找到到这个环的那个入点,计算2个入点之间最短距离就可以了#include<bits/stdc++.h>using namespace std;const int RLEN=1<<18|1;#define file fre...

2019-04-02 11:44:53 190

原创 【Codeforce 487E】【UOJ#30】—Tourists(圆方树+树链剖分)

传送门题意:求无向图2点之间简单路径最小值直接对无向图建出圆方树后树链剖分,每个方点维护一下儿子最小值用可删堆维护一下就好了#include<bits/stdc++.h>using namespace std;#define ll long longconst int RLEN=1<<18|1;#define gc getcharinline int r...

2019-04-02 11:38:30 176

原创 【省选模拟】—River(贪心)

传送门很显然可以发现对于某一天,一定是选择到达下一步所用时间最小的那一天也就是在ppp的决策是选择i+ai−pi+a_i-pi+ai​−p最小的一天而且对于一个ppp决策一定是固定的对每一天处理一个下步走多少天的nxtnxtnxt那在n≤1e6n\le 1e6n≤1e6就可以简单解决了inline ll calc(int p=1,int k=n){ ll res=0; for(in...

2019-04-02 11:30:54 154

空空如也

空空如也

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

TA关注的人

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