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

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

原创 博主简介

博主是一个很菜的高一蒟蒻,现在在全球最古老中学读书(停课)。可以看到有很多题都是口胡的。博主在学校天天被zxyoizxyoizxyoi吊打却无力反抗(毕竟实力不够。博主还是一个对线段树很感兴趣的蒟蒻,如果有想虐博主的可以通过qq交流。通过看博主的博客会看到NOIPNOIPNOIP模拟有关的博客都只有题解,并且题面和代码的传送门会传送到一个奇怪的地方。如果对模拟题感兴趣的话请加qq交流。...

2018-10-11 23:57:48 1048 7

原创 2018.10.31 NOIP训练 锻造(方程式期望入门题)(期望dp)

传送门根据题目列出方程:fi=pi∗(fi−1+fi−2)+(1−pi)∗(fi+1+fi)f_i=p_i*(f_{i-1}+f_{i-2})+(1-p_i)*(f_{i+1}+f_i)fi​=pi​∗(fi−1​+fi−2​)+(1−pi​)∗(fi+1​+fi​)但这会牵扯到iii之后的状态没法做。因此考虑如果合成失败会变成一个等级为i−2i-2i−2的武器。相当于消耗了一个等级为i...

2018-10-31 23:27:40 285

原创 2018.10.31 bzoj4737: 组合数问题(lucas定理+容斥原理+数位dp)

传送门这是一道让我重新认识lucaslucaslucas的题。考虑到lucaslucaslucas定理:(nm)≡(n%pm%p)∗(npmp)\binom n m \equiv \binom {n\%p} {m\%p}*\binom{\frac n p}{\frac m p}(mn​)≡(m%pn%p​)∗(pm​pn​​) (mod(mod(mod p)p)p)所以可以看成(nm)\b...

2018-10-31 21:41:54 261

原创 2018.10.31 bzoj3339&&3585mex(主席树)

传送门双倍经验直接上主席树,每个叶节点维护这个值出现的最右区间,非叶子节点维护当前值域内所有最右区间的最小值。查询的时候只用在以root[qr]root[qr]root[qr]为根的树上面二分。看左儿子满没有就只用看左边的最小值是不是大于qlqlql就行了。代码:#include<bits/stdc++.h>using namespace std;inline int ...

2018-10-31 20:17:14 238

原创 2018.10.31 vijos1052贾老二算算术(高斯消元)

传送门高斯消元模板题。写的时候反了sbsbsb错误消元的时候除数和被除数反了。所以把板子贴上来压压惊。代码:#include<bits/stdc++.h>using namespace std;inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-')w=-...

2018-10-31 19:31:45 188

原创 2018.10.31 NOIP模拟 一些情报(倍增)

传送门题目并不难(想)其实就是用倍增维护几个树上信息。也就这么几个:子树内最长链及其后继点。子树内次长链及其后继点。子树内第三场链(也就是dzyodzyodzyo口中鬼畜的次次长链)点iii的第2j2^j2j个父亲不计算iii这棵子树的最优值−dep-dep−dep点iii的第2j2^j2j个父亲不计算iii这棵子树的最优值+dep+dep+dep点iii的第2j2^j2j个祖...

2018-10-31 19:27:18 128

原创 2018.10.31 NOIP模拟 几串字符(数位dp+组合数学)

传送门如果观察到性质其实也不是很难想。然而考试的时候慌得一批只有心思写暴力233.下面是几个很有用的性质:c0,1+1≥c1,0≥c0,1c_{0,1 }+1 ≥ c_{1,0} ≥ c_{0,1}c0,1​+1≥c1,0​≥c0,1​,因为$ 10, 01 $是交替出现的。c1,0+c0,0c_{1,0 }+c_{0,0}c1,0​+c0,0​是000出现的次数。c0,1+c1,1...

2018-10-31 19:22:08 147

原创 2018.10.31 NOIP模拟 一串数字(数论+贪心)

传送门把每一个数aaa质因数分解。假设a=p1a1∗p2a2∗...∗pkaka=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}a=p1a1​​∗p2a2​​∗...∗pkak​​然后可以转化成a′=p1a1mod3∗p2a2mod3∗...∗pkakmod3a'=p_1^{a_1mod3}*p_2^{a_2mod3}*...*p_k^{a_kmod3}...

2018-10-31 19:16:26 136

原创 2018.10.30 NOIP训练 【模板】树链剖分(换根树剖)

传送门纯粹是为了熟悉板子。然后发现自己手生了足足写了差不多25min而且输出的时候因为没开long longWA了三次还不知所云代码

2018-10-31 08:10:40 304

原创 2018.10.30 uoj#273. 【清华集训2016】你的生命已如风中残烛(组合数学)

传送门组合数学妙题。我们把这mmm个数都减去111。然后出牌的地方就变成了−1-1−1。然后发现求出每个位置的前缀和之后全部都是非负数。考虑在最后加入一个−1-1−1构成一个m+1m+1m+1个数的序列。那么对于这个序列的所有循环同构。只有当前这种是合法的。原因很简单。最后一个位置的前缀和是−1-1−1,因此除了当前这种之外的循环同构必定有一个前缀和是负数。反过来发现对于每一...

2018-10-30 22:01:36 253

原创 2018.10.30 bzoj4942: [Noi2017]整数(线段树压位)

传送门直接把修改的数拆成logloglog个二进制位一个一个修改是会TLETLETLE的。因此我们把303030个二进制位压成一位储存在线段树里面。然后维护区间中最靠左二进制位不为0/1的下标。手动模拟一波进/退位就行了。代码:#include<bits/stdc++.h>#define lc (p<<1)#define rc (p<<1|1)...

2018-10-30 20:29:22 109

原创 2018.10.30 NOIP模拟 有环无向图(dijkstra+巧妙建图)

传送门建图巧妙啊。对于每个点的出边,我们将它们排序之后依次连边。这样可以把O(m2)O(m^2)O(m2)的边数变成O(m)O(m)O(m)的了。连的权值就是max(edgemax(edgemax(edge_delta,0)delta,0)delta,0)然后用边代替点跑dijkstradijkstradijkstra就行了。代码...

2018-10-30 18:51:21 307

原创 2018.10.30 NOIP模拟 字胡串(单调栈+容斥)

传送门对于每个点,用单调栈求出它左右第一个比他大的位置。然后对每个点O(logai)O(log_{a_i})O(logai​​)求出第一个拥有跟它不同二进制位的位置。然后容斥一下就行了。代码...

2018-10-30 18:44:42 200

原创 2018.10.30 NOIP模拟 排列树(树形dp+组合数学)

传送门考试的时候乱搞过了。其实题目就是让你求拓扑排序方案数。直接树形dpdpdp然后组合数转移一下就行了。乱搞代码

2018-10-30 18:30:28 241

原创 2018.10.29 bzoj3718: [PA2014]Parking(树状数组)

传送门显然只用判断两个会相交的车会不会卡住就行了。直接树状数组维护前缀最大值就行了。代码:#include<bits/stdc++.h>using namespace std;const int N=5e4+5;struct Matrix{int x1,x2,w,id;}a1[N],a2[N];int n,T,W,pos[N],bit[N];inline int lo...

2018-10-29 16:49:36 161

原创 2018.10.29 NOIP训练 数据结构(带修改莫队)

传送门带修莫队板题。直接按照经典写法做就行了。代码

2018-10-29 15:12:11 114

原创 2018.10.29 bzoj4564: [Haoi2016]地图(仙人掌+莫队)

传送门根据原图建一棵新的树。把原图每一个环上除了深度最浅的点以外的点全部向深度最浅的点连边。然后可以搞出来一个dfsdfsdfs。这个时候我们就成功把问题转换成了对子树的询问。然后就可以对权值分块用莫队做了注意如果不用分块而是用树状数组维护是O(nlognsqrt(n))的代码:#include<bits/stdc++.h>using namespace std;in...

2018-10-29 15:05:22 322 1

原创 2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)

传送门求仙人掌的直径。感觉不是很难。分点在环上面和不在环上分类讨论。不在环上直接树形dpdpdp。然后如果在环上讨论一波。首先对环的祖先有贡献的只有环上dfsdfsdfs序最小的点。对答案有贡献的则是环上的任意两个点。对于环上任意两点(i,j)(i,j)(i,j)Ans=max(Ans,f[i]+f[j]+dist(i,j))Ans=max(Ans,f[i]+f[j]+dist...

2018-10-29 11:58:36 244

原创 2018.10.29 洛谷P4129 [SHOI2006]仙人掌(仙人掌+高精度)

传送门显然求出每一个环的大小。Ans=∏i(siz[i]+1)Ans=\prod_i(siz[i]+1)Ans=∏i​(siz[i]+1)注意用高精度存答案。代码:#include<bits/stdc++.h>using namespace std;inline int read(){ int ans=0; char ch=getchar(); w...

2018-10-29 11:53:01 180

原创 2018.10.28 洛谷 进化の水题:模拟赛

传送门T1T1T1一直过不了导致心态爆炸,导致打了不到两个小时就弃了。ranranrank#222222滚粗。说到底AAA了的也只有T2T2T2啊。。。T1T1T1不知道为什么答案一直是错的。T5T5T5写随机化贪心比暴力多过了5pts5pts5pts妙啊于是先贴一波T2T2T2的sbsbsb线段树代码:#include<bits/stdc++.h>#define lc...

2018-10-28 21:51:52 127

原创 2018.10.27 bzoj3209: 花神的数论题(数位dp)

传送门数位dpdpdp经典题。题面已经暗示了我们按照二进制位来数位dpdpdp。直接dpdpdp多少个数有111个111,222个111,333个111…,然后快速幂算就行了。于是我们枚举前几位跟nnn相同,后面比nnn小的方案数。这个显然是可以用组合数算的。注意nnn自己的也要算进贡献。代码:#include<bits/stdc++.h>using namespa...

2018-10-27 21:29:38 143

原创 2018.10.27 bzoj1984: 月下“毛景树”(树链剖分)

传送门唉蒟蒻又退化了,这道sb题居然做了20min,最后发现是updcovupdcovupdcov写成了updaddupdaddupdadd我还能说什么233233233就是让你转边权为点权之后,支持树上路径覆盖,单点覆盖,路径加,求路径最大。直接乱码一发居然AAA了?贴代码了(稍微有点长):#include<bits/stdc++.h>#define lc (p<&...

2018-10-27 20:59:08 168

原创 2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)

传送门状压dp入门题。按照题意建一个图。要求的就是合法的链的总数。直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数。然后从没被选并且跟iii连通的点转移就行了。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=...

2018-10-27 20:24:28 109

原创 2018.10.27 loj#2292. 「THUSC 2016」成绩单(区间dp)

传送门g[i][j][k][l]g[i][j][k][l]g[i][j][k][l]表示将区间l,rl,rl,r变成最小值等于kkk,最大值等于lll时的花费的最优值。f[i][j]f[i][j]f[i][j]表示取掉区间l,rl,rl,r的最优值。考虑ggg数组的转移。g[i][j+1][min(k,w[j+1])][max(l,w[i+1])]=min(g[i][j+1][min(k,...

2018-10-27 16:58:15 326

原创 2018.10.27 loj#6035. 「雅礼集训 2017 Day4」洗衣服(贪心+堆)

传送门显然的贪心题啊。。。考试没调出来10pts滚了妙的一啊直接分别用堆贪心出洗完第iii件衣服需要的最少时间和晾完第iii件衣服需要的最少时间。我们设第一个算出来的数组是aaa,第二个是bbb,然后令ccc数组是bbb的一个任意排列。于是要求minminmin{maxmaxmax{a1+c1,a2+c2,...al+cla_1+c_1,a_2+c_2,...a_l+c_la1​+c1​,...

2018-10-27 16:50:41 464

原创 2018.10.27 codeforces402D. Upgrading Array(数论+贪心)

传送门唉我觉得这题数据范围1e5都能做啊。。。居然只出了2000考完听zxyzxyzxy说我的贪心可以卡但过了?可能今天本来是0+10+00+10+00+10+0只是运气好T1T1T1骗了100pts100pts100pts吧233.下面讲讲贪心:令wi=∏i=1kpiaiw_i=\prod_{i=1}^kp_i^{a_i}wi​=∏i=1k​piai​​令A=∑aipi是好质数,B...

2018-10-27 16:42:46 169 2

原创 2018.10.26 bzoj2721: [Violet 5]樱花(数论)

传送门推一波式子:1x+1y=1n!\frac 1 x+\frac 1 y=\frac 1 {n!}x1​+y1​=n!1​=>xy−x∗n!−y∗n!xy-x*n!-y*n!xy−x∗n!−y∗n! = 000=>(x−n!)(y−n!)=(n!)2(x-n!)(y-n!)=(n!)^2(x−n!)(y−n!)=(n!)2于是把(n!)2(n!)^2(n!)2质因数分解就行...

2018-10-26 21:56:49 179

原创 2018.10.26 poj3421X-factor Chains(数论+排列组合)

传送门排列组合入门题。令X=p1a1p2a2..pkakX=p_1^{a_1}p_2^{a_2}..p_k^{a_k}X=p1a1​​p2a2​​..pkak​​那么答案1就等于∑i=1kai\sum_{i=1}^ka_i∑i=1k​ai​答案2等于(∑i=1kai)!∏i=1ka[i]!\frac {(\sum_{i=1}^ka_i)!} {\prod_{i=1}^ka[i]!}∏i=...

2018-10-26 20:23:47 142

原创 2018.10.26 洛谷P4551 最长异或路径(01trie)

传送门直接把每个点到根节点的异或距离插入01trie。然后枚举每个点在01trie上匹配来更新答案就行了。代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;inline int read(){ ...

2018-10-26 19:42:03 210

原创 2018.10.26 NOIP训练 数数树(换根dp)

传送门换根dpdpdp傻逼题好像不好码啊。考虑直接把每一个二进制位拆开处理。先dfsdfsdfs出每个点到1的异或距离。然后分类讨论一波:如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为111的,如果当前二进制位到这个点距离为111的就是到根节点距离为000的。如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进...

2018-10-26 18:29:16 411

原创 2018.10.26 NOIP模拟 图(最小生成树+线段树合并)

传送门首先最开始说的那个一条路径的权值就是想告诉你两个点之间的贡献就是瓶颈边的权值。那么肯定要用最小生成树算法。于是我考场上想了30min+30min+30min+的树形dpdpdp发现转移是优秀的nlognnlog_nnlogn​,总时间复杂度O(n2logn)O(n^2log_n)O(n2logn​)妙啊然后有了弃疗的想法。突然想到没有利用kruskalkruskalkruskal...

2018-10-26 16:13:32 316 3

原创 2018.10.26 NOIP模拟 瓶子 (dp/贪心)

传送门正解是dp并不想去想了。自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦!所以我讲讲如何贪心。考虑到最后都只会合并成一种颜色,所以我们直接枚举变成哪种,然后让其它的全部强制直接变成那一种就行了。欢乐95pts95pts95pts代码(加了特判)...

2018-10-26 16:02:31 157

原创 2018.10.26 NOIP模拟 性感手枪(搜索)

传送门vis[x][y]vis[x][y]vis[x][y]记录这个点是否在之前被搜过,且被搜过的坐标是什么。然后搜索的时候记录一个循环的下标和不循环的下标就行了。代码...

2018-10-26 15:55:55 262

原创 2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)

传送门有点难调啊。其实是我自己sb了不过交上去1A1A1A还是平衡了一下心态。所以这道题怎么做呢?我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/r/u/d/l/r/u/d/l/r/u/d/棵树,那么对于这个点Ans=(lk)∗(rk)∗(uk)∗(dk)Ans=\binom {l} {k}*\binom {r} {k}*\binom {u} ...

2018-10-25 21:52:54 127

原创 2018.10.25 洛谷P4187 [USACO18JAN]Stamp Painting(计数dp)

传送门其实本来想做组合数学的2333.谁知道是道dpdpdp.唉只能顺手做了还是用真难则反的思想。这题我们倒着考虑,只需要求出不合法方案数就行了。这个显然是随便dpdpdp的。f[i]f[i]f[i]表示到第iii个格子不合法的方案数。那么有两种情况。i<ki<ki<k,则无论怎么当前格子染都不合法,f[i]=f[i−1]∗mf[i]=f[i...

2018-10-25 19:37:50 195

原创 2018.10.25 bzoj4517: [Sdoi2016]排列计数(组合数学)

传送门组合数学简单题。Ans=(nm)∗1Ans=\binom {n} {m}*1Ans=(mn​)∗1~(n−m)(n-m)(n−m)的错排数。前面的直接线性筛逆元求。后面的错排数递推式本蒟蒻竟然推出来了。首先说说为什么Ans=(nm)∗1Ans=\binom {n} {m}*1Ans=(mn​)∗1~nnn-mmm的错排数。考虑首先选出mmm个排列正确的数有(nm)\binom ...

2018-10-25 18:45:35 213

原创 2018.10.25 uoj#308. 【UNR #2】UOJ拯救计划(排列组合)

传送门有一个显然的式子:Ans=∑A(n,i)∗用i种颜色的方案数Ans=\sum A(n,i)*用i种颜色的方案数Ans=∑A(n,i)∗用i种颜色的方案数这个东西貌似是个NPCNPCNPC。于是需要仔细观察数据范围。咦模数等于666?那么对于A(n,i)A(n,i)A(n,i)在i≥3i\geq 3i≥3的时候模666都是000了。因此只用讨论i=1i=1i=1和i=2i=2i=2...

2018-10-25 15:53:03 209

原创 2018.10.25 atcoder Leftmost Ball(计数dp+组合数学)

传送门dp妙题啊。我认为DZYODZYODZYO已经说的很好了。强制规定球的排序方式。然后就变成了一个求拓扑序数量的问题。代码:#include<bits/stdc++.h>using namespace std;inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(...

2018-10-25 12:12:51 346

原创 2018.10.25 uestc上天的卿学姐(计数dp)

传送门看了DZYODZYODZYO的题解之后发现自己又sbsbsb了啊。直接dpdpdp是O(2d)O(2^d)O(2d)更新,O(1)O(1)O(1)查询或者O(1)O(1)O(1)更新,O(2n)O(2^n)O(2n)查询的。然后我就不会了233.显然可以利用分块暴力的思想。每次枚举前半段来计算当前答案,然后枚举后半段来更新dpdpdp数组。这样效率O(n∗2d2)O(n*2^{\...

2018-10-25 10:47:05 138

原创 2018.10.25 bzoj3928: [Cerc2014] Outer space invaders(区间dp)

传送门区间dpdpdp好题。首先肯定需要把坐标离散化。然后在数轴上面区间dpdpdp.对于当前区间,区间中最大的数一定会被选。于是我们记f[i,j]f[i,j]f[i,j]表示所有左端点在iii以及其后面,右端点在jjj以及其前面的所有外星人gggggg的最小花费。由于最大的一定被选。于是我们枚举它是在哪个时间点被选的。然后用f[i][k−1],f[k+1][j]f[i][k-1...

2018-10-25 09:54:59 225

segment--tree

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

2018-08-20

空空如也

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

TA关注的人

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