自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Destiny

Just the same

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

原创 [面经]美团一面

面经

2023-09-08 17:32:35 204

原创 算法小分队刷题题解

的额外空间,把数组中val的值删除,返回最终数组中的元素。用golang来写十分方便,因为可以用切片。用一个tmp来统计当前有效指针,遇到一个不为val的值,就把它放在当前有效指针的位置,然后指针右移。遇到一个为val的值,就意味着最后数组要少一个元素,统计在cnt里。最后对数组进行cnt次减1的切片。没啥好说的,就是普通的二分查找,直接上代码。

2023-05-15 22:00:04 432

原创 力扣每日一题

【代码】力扣每日一题。

2023-03-31 16:30:39 637 1

原创 代码源div1

训练题目集

2022-10-05 14:27:40 576

原创 暑期多校赛

一副日本麻将,总共有34种花色,每种花色有4张牌。起初你有13张牌,之后每次你都从剩下的牌库中随机取出一张牌,然后判断当前手中的14张牌能否构成七个不同的对子。如果可以那么游戏结束,否则你从14张牌中选择一张牌把它放在一旁(注意这个牌并不放回牌库)。问:当你选取最优策略时期望需要多少回合可以结束游戏。首先先来分析一下如何是最优策略。考虑贪心。加入当前我有一对对子了,那么这两张牌我一定不会动,并且如果有多余的那我一定会踢出去。然后如果我当前手中有一张单牌,他还没有成对,那么我不会踢掉他,只会等下一张相同的牌。

2022-07-20 15:03:38 517

原创 牛客多校+cf+华为

牛客Eyjafjalla题目描述分析:1、首先一个很重要的思路,如果这个病毒能感染到我的祖先,那么祖先包含的子树里所有符合条件的城市都会被感染(因为一条链上越往上温度越高)。可以倍增的跳到不超过温度r的最高祖先,接下来的问题就是查询祖先包含的子树里,温度在[l,r]的有多少个节点。2、对于当个节点的查询,直接权值线段树即可。这道题显然需要多棵线段树,写线段树合并即可。易错点:1、可能最开始的城市就不符合病毒爆发,因此不用往上跳,直接输出0即可。2、线段树合并的时候,因为是优化了空间优化了时

2021-08-20 18:33:16 119

原创 杭电多校补题集

杭电多校补提集Calculus题目描述因为对于单个函数来说,都要保证求和是收敛的。那么显然常熟求和不收敛,C/x可以提出C,就是经典求和,记结论是发散的,其他同样提出C发现是发散的,所以系数C必须是0.对于最后一个函数,因为规定C是0到1e9的整数,所以C只能是0才能求和收敛。那么只需要判断所有系数是否为0就做完了。#include<bits/stdc++.h>using namespace std;int t,n;char s[110];int main(){ scanf

2021-08-16 19:20:49 120

原创 2021-02-02

数据结构ST表#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ll long longusing namespace std;const int N=1e5+10;int t,n,q,l,r;int a[N],d[N][20],f[20];int main(){ f[0]=1;

2021-02-03 14:51:17 72

原创 10.12

一个组合数问题问题描述: 给定一个nnn和mmm,通过寻找n个整数,使他们开根号之和等于m\sqrt{m}m​。同种选取,不同排列属于不同答案。求方案数。分析: 首先,一个整数开根号,只有两种情况。一个是直接等于整数,一个是等于一个整数乘上一个无理数。考虑一个整数x=p1c1p2c2...pncnx=p_1^{c_1}p_2^{c_2}...p_n^{c_n}x=p1c1​​p2c2​​...pncn​​,pip_ipi​均为质因子。我们把所有的cic_ici​ modmodmod 2,那么cic_

2020-10-13 17:51:26 120

原创 0/1分数规划+二分的思考

首先,二分再次强调一回。二分有两种写法:while(l<r){ int mid=l+r>>1; if(check(mid)) l=mid+1; else r=mid; }while(l<r){ int mid=l+r+1>>1; if(check(mid)) l=mid; else r=mid-1; }不管咋样,都是这两种格式。记住就好。然后具体用哪一个,按照实际情况来。实数二分同样如此,只不过1变成了eps。一般直接for循环100次就好,精度肯定够用了。0/.

2020-09-29 20:25:44 176

原创 排序复习

归并排序:nlogn核心思想:递归分治,每次先把左右两个区间排好序,然后合并代码:#include<bits/stdc++.h>using namespace std;const int N=5e6+10;int n,k,a[N],t[N];int read(){ int num=0,f=1;char ch=getchar(); while(!isdigit(ch)){ f=-1;ch=getchar(); } while(isdigit(ch)){ num

2020-09-17 23:37:39 112

原创 bsgs及exbsgs

bsgsbsgsbsgsAx≡B(mod C),gcd(A,C)=1A^x\equiv B(mod~C),gcd(A,C)=1Ax≡B(mod C),gcd(A,C)=1t=C,x=i∗t−j,Ait−j≡B(mod C)t=\sqrt{C},x=i*t-j,A^{it-j}\equiv B(mod~C)t=C​,x=i∗t−j,Ait−j≡B(mod ...

2019-04-04 10:21:00 165

原创 CRT&EXCRT 中国剩余定理及其扩展

中国剩余定理(孙子定理)有这样一个问题:{x≡a1(mod m1)x≡a2(mod m2)……x≡an(mod mn)\begin{cases}x\equiv a_1(mod~m_1)\\x\equiv a_2(mod~m_2)\\……\\x\equiv a_n(mod~m_n)\end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​x≡a1​(mod m...

2019-04-04 08:22:23 251

原创 [BZOJ5224]毁灭

菜的真实,今天打膜泥赛,想了半天只想到了(Tn2)(Tn^2)(Tn2)的暴力做法,30分本来觉得还可以了,神仙直接AAA了,自闭了。30分:我们发现OrzOrzOrz(膜法值)、atkatkatk(攻击力)、defdefdef(防御值)都是有枚举的范围的,而生命值没有。不过假如我们知道了前三个,生命值自然可以确定。枚举一个OrzOrzOrz,再枚举一个atkatkatk,那么我们就知道了攻...

2019-04-03 15:41:33 184

原创 [JSOI2018]列队

性质1:把若干个人塞到一个连续区间内,那么从左向右依次对应一定是最优的。性质2:一定存在一个分界点,左边的人都是在区间点的左边,右边的人都是在区间点的右边。因此,很显然有一个nlog2nnlog^2nnlog2n的做法,二分分界点,主席树查询第kkk大判断。但是,其实我们的二分是多余的,直接在主席树上二分就好了,边二分边计算答案。#include<bits/stdc++.h&g...

2019-04-02 21:01:38 200

原创 CODEFORCES ROUND #406 (DIV. 2) E. TILL I COLLAPSE

考虑暴力怎么做?对于每一个kkk,贪心地双指针扫一遍。如果加入下一个点就超过kkk个,那就结束当前段,并且将lll指针移到当前位置的下一位。考虑如何优化寻找的过程。整体二分可以在log n的时间复杂度找到区间第k大值在哪里。假如我们确定了某一个右端点,那么是不是可以快速的跳若干个点,并且保证这个区间是满足不超过kkk个的最长区间。因此我们用主席树做这道题。处理和HH项链那道题是一样的,钦定...

2019-04-02 16:17:12 236

原创 [SDOI2009]HH的项链

给定一个序列,多组询问,每次给定[l,r],求区间内本质不同的数的个数。写这道题是为了解决后面的一个问题,废话不多说。这题看着,其实思路挺多的。分块、莫队、树状数组、主席树……但对我后面有用的是树状数组和主席树,所以只讨论它们。一个thick是当右端点确定的时候,对于一个数出现多次,我们知道只有最靠右的是有用的,然后只需要求区间和就好了。询问排序,树状数组,完事。考虑在线怎么做。其实和那...

2019-04-02 14:36:03 168

原创 可持久化数组

嘿嘿,题目只是一个幌子,我还是肝主席树233。但是,为什么会有这样一个名字?考虑假如不管空间,我们有一个最暴力的写法。开一个m∗nm*nm∗n的数组,每次修改某一时刻某一位置的值,我们直接把它修改掉就好。然后把它当成新的时刻,所以需要O(n)O(n)O(n)的赋值。这个算法无论是空间还是时间,复杂度我们都无法接受。有了之前可持久化的思路,我们考虑能不能有一种可持久的数组,把空间和时间都降低呢...

2019-04-02 10:10:32 1028

原创 [FJOI2016]神秘数

^ _ ^可能是之前写过这道题(菜鸡当然是看题解的),有点印象的缘故,这次再看,思考了1h左右独立解决了问题qwq。本题的关键在于一个区间组成的数集的子集mexmexmex如何快速找出。假如子集mexmexmex为ans+1ans+1ans+1,那么[1,ans][1,ans][1,ans]这个区间内的数都可以组成。并且我们还知道这[1,ans][1,ans][1,ans]的数是由[1,le...

2019-04-02 08:48:16 433

原创 [SCOI2016]美味

这道题之前首先有一个最简化的版本,给定一个序列,求最大区间异或和。首先,区间[l,r]的异或和可以是[1,r]xor[1,l−1][1,r]xor[1,l-1][1,r]xor[1,l−1]。我们可以维护一个前缀异或和,每次将它插入之前贪心得从高位向低位尽可能选择最优的值与当前值异或。做完以后将这个前缀插入01trie里面。加强一点的:给定一个序列,多组询问,每次给定l,r,xl,r,xl...

2019-04-02 06:44:29 173

原创 主席树模板(带修改)

P2617 Dynamic Rankings显然单单写一个主席树是不够的,主席树可以维护的是静态区间第k大。本题要求动态修改,所以考虑带修改的主席树怎么写。首先很显然一个小thick是,我们把修改的部分和原本静态的分开,单独形成新的主席树。这样的好处有很多:处理方便,思路清晰,更好理解题目。如果暴力修改的话,每次修改一个点,我们最多需要修改n棵线段树。所以复杂度太高,无法接受。其实带修改的...

2019-04-01 19:30:33 936

原创 主席树模板

#include<bits/stdc++.h>using namespace std;const int N=2e5+10;int n,m,tot,sz,a[N],b[N],sum[N*20],ls[N*20],rs[N*20],rt[N];void discrete(){ sort(b+1,b+n+1); sz=unique(b+1,b+n+1)-b-1; for(in...

2019-04-01 15:59:49 108

原创 [HAOI2018]苹果树

……先自闭两个小时好吧,不会写,看了看题解,说一下思路吧。首先第一个小tricktricktrick是,按照题意去建树,nnn个点能组成的二叉树的数量正好是n!n!n!。因此求期望的时候我们不需要乘概率了,直接累加答案就好。再来描述一下问题:求所有不同的树上两两节点之间的距离之和。这个问题这样描述,真的很难求,考虑转化思路,求每一条边对答案的贡献。除了根节点每一个点都有一条连向父亲的...

2019-04-01 15:22:12 220

原创 [FJOI2016]建筑师

LOJ一个长度为n的排列,从左向右最大值更新了A次,从右向左更新了B次。求方案数。画一张图:画出的线段即为每一个max改变的峰。两峰之间可以插进去一些数。对于最高点左边的数来说,相当于每一个线段引领了一些数,这些数在它的右边,且都比他小。对于最高点右边的数来说,相当于每个右边的线段引领了一些数,这些数都在它的左边并且比他小。考虑转化其模型。每个线段+它引领的数,方案数相当于这若干个数组...

2019-04-01 08:20:11 151

原创 [AHOI2012]树屋阶梯

这题吧,就想想思路算了。又是高精度,还需要高精度除法,我是真的佛了。阶梯高度是nnn,然后你需要用nnn个长方体拼成这个形状。问本质不同的方案数。首先是感觉到与卡特兰数有关,然后发现每一列总会有一个钢材的上端和下端。为了保证方案合法,从上往下到达任意一个水平面,上端的数量都大于等于下端的数量。这不就是卡特兰数吗?哎,高精算了。粘了个所有高精模板的struct,luogu开O2O_2O2​...

2019-03-31 21:55:08 225

原创 [校内oj1881]项链染色 区间DP

一句话题意:环上区间染色,区间有长度限制,求染成所需颜色的最小次数。分析:先把环拆开。这题首先应该有一个基础的模型:给定一个长度为n的串,每个珠子都有颜色。你可以染一个任意长度的区间,求最小次数。考虑染色的时候其实只有两种情况,一个是先染了一个大区间,然后中间染了一些小的。一个是很多歌小区间拼成一个大区间。设f[i][j]f[i][j]f[i][j]表示(i,j)(i,j)(i,j)...

2019-03-31 19:02:05 219

原创 [BZOJ4563] 错位排列

每当一个位置(i,j)(i,j)(i,j)是一个障碍时,代表aia_iai​不等于jjj。每一行、每一列都恰好只有一个障碍,每一行、每一列都只能恰好选一个棋子,有障碍的位置不能放置棋子。其正好对应了一个排列,并且所有的aia_iai​一定不等于aja_jaj​。那就是求一个错位排列的方案数。答案就是D(n)D(n)D(n)。但是有恶心的高精度,蒟蒻我目前是粘的高精度板子来用,实在不想敲。...

2019-03-31 11:35:25 187

原创 [CTSC2017]吉夫特

CTSC2017一句话题意:这道题是我写的第三遍了,真是一点长进也没有……甚至还看了点题解。你要选择一个不上升子序列,并且使得Πi=2Cabiabi−1 mod 2&gt;0\Pi_{i=2}C_{a_{bi}}^{a_{bi-1}}~mod~2&gt;0Πi=2​Cabi​abi−1​​ mod 2>0。因为在modmodm...

2019-03-31 10:13:01 274

原创 [SHOI2015]超能粒子炮·改

SHOI2015一句话题意:      ~~~~~~      多组数据,给定n,kn,kn,k,,,求∑i=0kCni%2333,n,k&lt;=109\sum_{i=0}^kC_n^i\%2333,n,k&lt;=10^9∑i=0k​Cni​%2333,n...

2019-03-31 08:44:26 226

原创 组合数前缀和

问题描述直接暴力求,就算预处理了逆元,复杂度也得T∗mT*mT∗m吧。先看看式子能不能搞一搞啊。f(n,m)=∑i=0mCni%109+7f(n,m)=\sum_{i=0}^mC_n^i\%10^9+7f(n,m)=i=0∑m​Cni​%109+7=∑i=0m(Cn−1m+Cn−1m−1)=\sum_{i=0}^{m}(C_{n-1}^m+C_{n-1}^{m-1})=i=0∑m​(C...

2019-03-30 21:38:33 1711 2

原创 [SDOI2010古代猪文] Lucas定理+CRT合并

SDOI2010ans=p∑d∣nCnd%999911659ans=p^{\sum_{d|n}C_{n}^{d}}\%999911659ans=p∑d∣n​Cnd​%999911659n,p&lt;=1e9n,p&lt;=1e9n,p<=1e9。直接预处理阶乘肯定不行。首先根据欧拉定理的推论,ans=p∑d∣nCnd%999911658%999911659ans=p^...

2019-03-30 20:24:41 147

原创 [BZOJ5215商店购物]

BZOJ5215背包很显然,再求一个组合数。复杂度是m4m^4m4前缀和优化一下,复杂度n3n^3n3。菜死了现场没想到优化Coding#include<bits/stdc++.h>#define rint register int#define ll long longusing namespace std;const int N=2e7+10;const in...

2019-03-30 20:11:59 442

原创 欧拉定理

费马小定理若p是质数,则对于任意整数a,有ap=a(mod p)a^p=a(mod~ p)ap=a(mod p)。欧拉定理若正整数a,m互质,则aφ(p)=1(mod p)a^{\varphi(p)}=1(mod~p)aφ(p)=1(mod p)。欧拉定理的推论有针对a,m互质的推论,不过我们直接说扩展的。即m为任意数。if(b&amp...

2019-03-28 20:49:10 2038

原创 计数初步

计数初步Outline计数原理组合数/二项式系数错位排列卡特兰数/卡塔兰数斯特林数/斯特灵数三元环计数加法原理乘法原理定义计算小♂试牛刀∑i=1nXi=m,(Xi&gt;0)\sum_{i=1}^nX_i=m,(X_i&gt;0)∑i=1n​Xi​=m,(Xi​>0)的方案数。(把m个相同小球放在n个不同盒子,盒子不能为空的方案数...

2019-03-28 19:04:54 148

原创 小球与盒子的浪漫之旅

小球与盒子计数类问题有时候会涉及到小球与盒子的经典模型,因此有了本文。球相同/不同,盒子相同/不同,能/不能有空盒分成了多种不同问题。前置科技组合数:从n个物品(带编号)里选出m个物品的方案数:Cnm=n!m!(n−m)!C_n^m=\frac{n!}{m!(n-m)!}Cnm​=m!(n−m)!n!​排列数:从n个物品(带编号)里选出m个物品进行排列的方案数:Anm=n...

2019-03-28 08:55:20 221

原创 [九省联考2018]一双木棋

先分析状态。画几张图你发现,一个合法的状态,它从第一行到第nnn行,每一行上棋子的数量一定是单调不增的,并且棋子一定是从左到右紧密排列。写个dfsdfsdfs爆搜一下合法状态,最多也就181818万左右。因此可以状压爆搜。两人都想最优,这种情况一般维护一个差值。即我们维护一个maxmaxmax菲菲−-−maxmaxmax牛牛。为了两人在求解最值的过程中能互相限制,保证双方都是最优情况,我们...

2019-03-27 18:54:34 258

原创 [P2764最小路径覆盖问题]

模板题不多说,因为是以前写的代码,所以可能比较young。// luogu-judger-enable-o2#include<bits/stdc++.h>using namespace std;int ans=0,len=0,lin[500],din[50000],dout[50000],level[500],x,y,S,T,n,m,q[500];int q1[500],...

2019-03-27 17:02:26 128

原创 [P3355骑士共存]

P3355方格里面选若干个点放上骑士,骑士之间不能互相攻击到。问最多能放多少骑士。emm。可能是被费用流整自闭了,还以为这道题也是个神题,在想怎么用费用流跑。看了一下自己之前居然写过这道题,代码居然是匈牙利??好,再看一下题目。等等,最多放多少骑士,使得两两之间不冲突,那不就是最大独立集吗?对于任意一个点,如果没有障碍,把它所能攻击到的点都向它连一条边。可以证明,这样建的图一定是没有奇环...

2019-03-27 17:00:02 147

原创 [BZOJ2839]集合记数 容斥原理

BZOJ2839一个有N个元素的集合有2N2^{N}2N个不同子集(包含空集),现在要在这2N2^N2N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为KKK,求取法的方案数,答案模1000000007。交集元素个数至少为KKK的方案数好求,恰好元素个数为KKK的方案数不好求。设f[k]f[k]f[k]表示至少为KKK的方案数,g[k]g[k]g[k]表示恰好为KKK的方案数。...

2019-03-27 16:43:41 188

原创 [P1251餐巾计划问题]

luogu1251费用流是如此地令人自闭每天需要nin_ini​个干净的餐巾。它有三种来源,购买、之前的脏餐巾慢洗、快洗。三种花费均不相同。慢洗与快洗是使用过之后a,ba,ba,b天后才可以使用。为了保证每天一定有nin_ini​个干净餐巾来使用,我们从sss向iii连一条容量为nin_ini​,代价为fff的边,同时从iii向ttt连一条容量为nin_ini​,代价为000的边。但是这只...

2019-03-26 20:56:27 150

空空如也

空空如也

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

TA关注的人

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