- 博客(738)
- 资源 (1)
- 收藏
- 关注

原创 注意事项(随时更新)
>>1是除以2向下取整,而/2是除以2向0取整记住观察数据的大小,longlong,longdouble不要小气不愿开不要直接将数组赋值为0x7fffffff,万一超过int,后果自负,一般推荐0x3f3f3f...
2018-07-30 22:31:03
315
1

原创 算法学习链接+学习小结
①树链剖分:传送门1传送门2②组合数各类性质,定理:传送门1③位运算:(1)取出整数N在二进制表示下的第K位:(N>>K) & 1(2)取出整数
2018-04-14 15:34:02
573

原创 题目&算法(未完成&未掌握)
算法: ①莫比乌斯反演 ②dijkstra+堆优化 ③容斥原理 ④gcd&exgcd +各类例题那些年待教的题目 +Q 27903605070
2017-03-22 16:11:23
671

原创 编程者的爱好网站
1.www.luogu.org 2.www.tyvj.cn 3.www.codevs.cn 4.usaco 网站:train.usaco.org/usacogate 翻译:www.nocow.cn/index.php/USACO_Training 5.noi.openjudge.cn 6.vijos.org 7.www.rqnoj.cn 觉得可以的话求点赞
2016-12-01 17:32:08
1068
3
原创 电迁移电压降/功耗分析
全芯片级和模块级分析的重要性。①电迁移与电压降的重要性。④电迁移与电压降仿真工具。电压降对芯片性能的影响。工艺节点缩小带来的挑战。精确建模与计算的必要性。工艺进步对功耗的影响。国内外研究团队与方向。分布式多机器仿真方法。
2024-06-13 23:32:25
306
原创 VP记录——The 2021 CCPC Weihai Onsite
的范围很像网络流,然后就往这方面想,后面发现每当多选择一个距离相当于是获得了。,我们要统一边权的性质,即我们可以想办法把问题变成最大贡献或者最小花费。签到题,我写的,题意是给一个入射角,求在圆内最少弹射多少次能回到原点。的贡献,每当修复了一个点,相当于是花费了。那么最小花费就是求最小割,直接网络流即可。,可理解成是反悔边,反悔这次距离的添加。源点向所有代表点连边,边权为无穷,所有具体点向汇点连边,边权为对应的。经典问题,队友直接秒了!队友写的KMP,签到题。个1,最长连续1 等于。题意是构造一个长度为。
2023-10-12 17:30:37
233
原创 Luogu P1858 多人背包___k优解01背包dp
求01背包前k优解的价值和设fi,jf_{i,j}fi,j表示恰好装满体积iii的第jjj优解若不考虑jjj,根据0/10/10/1背包的性质有fi=min(fi,fi−vo+wo)f_{i}=min(f_i,f_{i-v_o}+w_o)fi=min(fi,fi−vo+wo)那么就是枚举每一个物品ooo,然后因为fi−vof_{i-v_o}fi−vo跟fif_{i}fi中的优解肯定是递减的,利用归并思想O(K)O(K)O(K)合并即可时间复杂度:O(NVK):O(NVK):O
2022-07-04 21:54:47
244
原创 Luogu P1286 两数之和___规律+枚举
我们知道从n个非负整数中任取两个相加共有n*(n-1)/2个和,现在已知这n*(n-1)/2个和值,要求n个非负整数。2
2022-07-04 21:49:58
256
1
原创 湖南多校对抗赛 Vocabulary___dp
题目大意:给定333个字符串A,B,CA,B,CA,B,C,包括小写字母和$问有多少种填写方案,使得字典序问有多少种填写方案,使得字典序问有多少种填写方案,使得字典序A<B<C$max(∣A∣,∣B∣,∣C∣)<=1e6max(|A|,|B|,|C|)<=1e6max(∣A∣,∣B∣,∣C∣)<=1e6分析:考虑可能产生贡献的成分,不妨设fi,0/1/2/3f_{i,0/1/2/3}fi,0/1/2/3表示前iii个填完了,A<B<CA<B<
2022-05-19 13:21:27
161
原创 Luogu P2045 方格取数加强版___最大费用最大流
题目大意:n∗nn*nn∗n的矩阵,从[1,1][1,1][1,1]走到[n,n][n,n][n,n],每经过一个点可取走一个点的点值,一个点的点值只能取一次,每次可以向右或者向下走。求走了kkk次以后的最大路径和。n<=50,k<=10,ai,j<=1e3n<=50,k<=10,a_{i,j}<=1e3n<=50,k<=10,ai,j<=1e3分析:考虑怎么建模把每个点拆成入点跟出点①入点向出点连边,流为111,费用为ai,ja_{i,
2022-03-23 16:44:15
201
原创 Luogu P2057 [SHOI2007]善意的投票___最小割
题目大意:nnn个人,每个人有一个意愿000或111mmm对关系,表示(i,j)(i,j)(i,j)是一对好朋友,即意愿应该相同求最小冲突冲突数为与自身意愿冲突人数+与好友意愿冲突人数与自身意愿冲突人数+与好友意愿冲突人数与自身意愿冲突人数+与好友意愿冲突人数分析:明显是求最小割考虑建立源点汇点S,TS,TS,T①S−>意愿为0S->意愿为0S−>意愿为0②意愿为1−>T意愿为1->T意愿为1−>T③好友间连边考虑就是使得不存在S−>意愿为0−
2022-03-23 16:37:57
201
原创 哈尔滨理工大学2021新生赛 L 翻转卡片___dp
题目大意:n<=1e3n<=1e3n<=1e3分析:不考虑选择顺序,设fi,j,kf_{i,j,k}fi,j,k表示前iii个卡片,选了jjj个卡片,第iii个卡片是否正面朝上(1是0否1是0否1是0否)的合法方案数。假设到了第iii位,填111,则上一位必定是000,fi,j,1+=fi−1,j−1,0f_{i,j,1}+=f_{i-1,j-1,0}fi,j,1+=fi−1,j−1,0填000则上一位必定是111,fi,j,0+=fi−1,j,1f_{i,j,
2021-11-27 14:35:04
489
原创 拓展kmp学习小记
解决:求sss任意后缀与ttt的lcplcplcp实现:令nxti=tnxt_i=tnxti=t表示t[i..i+x−1]=t[1..x]t[i..i+x-1]=t[1..x]t[i..i+x−1]=t[1..x],对于s[1..n],t[1..m],n=∣s∣,m=∣t∣s[1..n],t[1..m],n=|s|,m=|t|s[1..n],t[1..m],n=∣s∣,m=∣t∣设fif_ifi表示s[i..i+fi−1]=t[1..fi]s[i..i+f_i-1]=t[1..f_i]s[i.
2021-11-27 13:12:03
780
原创 CF940F Machine Learning___带修莫队+分块
题目大意:给出一个长度为nnn的序列aaa,mmm个询问,询问有两种类型(1,l,r)(1,l,r)(1,l,r),表示将区间[l,r][l,r][l,r]的不同数分别的个数丢到一个子集,求最小的未出现的自然数(2,x,y)(2,x,y)(2,x,y),表示将axa_xax改成yyyn,m<=1e5,1<=ai,y<=1e9n,m<=1e5,1<=a_i,y<=1e9n,m<=1e5,1<=ai,y<=1e9分析:很明显的带修莫队,考虑
2021-11-25 19:25:13
338
1
原创 CF375D Tree and Queries___树上莫队+树状数组
题目大意:给出nnn个节点一棵树,每个节点有一个颜色aia_iai,mmm个询问,对于一个询问(u,k)(u,k)(u,k),回答以uuu为根的子树中,出现次数>=k>=k>=k的颜色有多少种。n,m<=1e5,0<=ai<=1e9n,m<=1e5,0<=a_i<=1e9n,m<=1e5,0<=ai<=1e9分析:树上莫队,先求欧拉序,然后序列上两个相同点之间的序列就包含了这个节点为根子树的所有节点,直接莫队即可。答案
2021-11-25 14:07:01
313
原创 CF1000F One Occurrence___离线+线段树
题目大意:给出长度为nnn的序列aaa,mmm个询问,每次询问一段区间内仅出现了一次的数,多个则输出任意一个,否则输出0n,m,ai<=5e5n,m,a_i<=5e5n,m,ai<=5e5分析:将询问离线,限制询问左指针考虑将所有数字当前对应的合法右端点区间处理出来每次左端点右移的时候将其对应数字的合法区间更新过程用线段树维护对于线段树上任一节点对应区间,记录其能被覆盖的时候,覆盖他的区间的左端点,并对这个左端点取maxmaxmax,因为如果这个区间不合法,肯定是过了左端
2021-11-21 18:35:49
484
原创 CF521D Shop___贪心
题目大意:给出一个长度为kkk的序列aaa,给出nnn个操作,操作有333种类型:①1①1①1 xxx yyy,即将axa_xax换成yyy②2②2②2 xxx yyy,即将axa_xax加上yyy③3③3③3 xxx yyy,即将axa_xax乘上yyy问最多选其中的mmm个操作,使得∏i=1nai\prod_{i=1}^{n}a_i∏i=1nai最大求最优的选择方案的操作选择次数,并按照操作的选择顺序输出操作的序号。1<=k<=1e5,1<=m<=n<
2021-10-23 19:41:20
167
原创 CF286C Main Sequence___贪心
题目大意:给出一个长度为nnn的正整数序列sss。规定其中的mmm个位置上的数必须符号取负,其他可正可负。在满足条件的情况下构造一个序列AAA,需要满足:对于一个AiA_iAi而言,若Ai>0A_i>0Ai>0,则其充当一种特别的左括号,能与其匹配的右括号位置AjA_jAj,需要满足i<j,Aj=−Aii<j,A_j=-A_ii<j,Aj=−Ai若Ai<0A_i<0Ai<0,则只能充当右括号问能否构造出一个合法的AAA,若能,则
2021-10-16 17:43:41
139
原创 Luogu P4107 [HEOI2015]兔子与樱花___贪心
题目大意:给出一颗nnn个节点的有根树,一个树某点的价值定义为儿子个数+点权,初始时树上任意节点满足点价值<=m<=m<=m一次合并操作,假设有节点xxx,其父亲为fafafa,则xxx的儿子全部变成fafafa的儿子,xxx的点权累加到fafafa的点权,再将节点xxx删除,一次合法的合并需要满足过程中点价值<=m<=m<=m。问最多进行多少次合并。n<=2e6,m<=1e5n<=2e6,m<=1e5n<=2e6,m<=1e5
2021-10-16 17:32:23
138
原创 CF220B Little Elephant and Array___莫队
题目大意:给出一段长度为nnn的序列,mmm个询问,每个询问给出区间[l,r][l,r][l,r],求[l,r][l,r][l,r]内有多少个数满足数大小为xxx,出现次数也是xxxn,m<=1e5n,m<=1e5n,m<=1e5分析:将询问排序用莫队解决即可注意数xxx出现xxx次->x+1x+1x+1次的变化以及xxx次->x−1x-1x−1次的变化即可代码:#include <bits/stdc++.h>#define rep(i, st,
2021-09-21 15:01:12
114
原创 Luogu P4867 Gty的二逼妹子序列___莫队
题目大意:分析:直接上莫队就可以了代码:#include <bits/stdc++.h>#define rep(i, st, ed) for (int i = st; i <= ed; i++)#define rwp(i, ed, st) for (int i = ed; i >= st; i--)#define N 100005using namespace std;typedef long long ll;struct Node { int
2021-08-22 22:00:06
102
原创 Luogu P2611 [ZJOI2012]小蓝的好友___treap
题目大意:给出一个R∗CR*CR∗C的010101矩阵,以及所有的111的位置(NNN个),问至少包含一个111的子矩阵的个数。R,C<=4e4,N<=1e5,数据随机R,C<=4e4,N<=1e5,数据随机R,C<=4e4,N<=1e5,数据随机分析:对于每一行求以该行为下边界的矩阵的合法情况对于列建立一个笛卡尔树,以资源最晚出现位置为keykeykey,建立大根堆,因为数据随机,以keykeykey为旋转指标不会被卡若做到了第iii行,jjj列在该行存在资
2021-08-20 18:48:35
104
原创 Luogu P4309 [TJOI2013]最长上升子序列___splay
题目大意:初始给出一个空序列。依次将111到NNN的数字插入到序列,第iii次将数字iii插入到一个特定的位置,每次插入完回答序列的最长上升子序列长度。N<=1e5N<=1e5N<=1e5分析:设fif_ifi表示 以位置iii结尾的最大子序列每次加入的数都是当前最大的数,只需要考虑求当前位置以前最大的fff即可因为有插入操作,所以可以考虑用splaysplaysplay动态维护修改位置前的fmf_mfm,若插入位置xxx,则最后数iii会到x+1x+1x+1的位
2021-08-19 20:22:35
108
原创 Luogu P7244 章节划分___ST表+分治
题目大意:分析:因为amaxa_{max}amax肯定会被算进某个子段的最大值所以答案肯定是amaxa_{max}amax的某个约数枚举amaxa_{max}amax的 约数,对于一个约数ddd,合法即他能分成>=k>=k>=k个子段如果计算最大的分段数,考虑分治,每次找到区间最大值的位置(通过预处理ST表O(1)O(1)O(1)查找),考虑当前区间[L,R][L,R][L,R],最大值位置axa_xax则区间分成[L,x−1],[x+1,R][L,x-1]
2021-08-19 20:04:07
119
原创 Luogu P5956 [POI2017]Podzielno___思维+二分
题目大意:分析:不考虑是B−1B-1B−1的倍数,发现XXX最大的组成即,高位填大数,先填aB−1a_{B-1}aB−1个B−1B-1B−1,然后aB−2a_{B-2}aB−2个B−2B-2B−2,以此类推然后我们发现,假设这样得到的是X′X'X′,一个合法的XXX,仅需满足各位相加为B−1B-1B−1的倍数,证明如下:::不妨把XXX写成c0∗B0+c1∗B1+…+cn∗Bn−1c_0*B^0+c_1*B^1+…+c_n*B^{n-1}c0∗B0+c1∗B1+…+cn∗Bn−1
2021-08-19 19:54:13
134
原创 Luogu P2042 [NOI2005]维护数列___splay
题目大意:分析:对于操作①①①,将新加入所有数建成一个新树,然后将原树通过splaysplaysplay使得pospospos位置为根节点,pos+1pos+1pos+1为根节点右儿子,则令根节点右儿子的左儿子为新树的根即实现合并对于操作②②②,将pos−1pos-1pos−1作为根节点,pos+totpos+totpos+tot作为根节点右儿子,删根节点右儿子的左子树即可对于操作③,④③,④③,④,同理将区间提取出来,分别打上标记即可对于操作⑤⑤⑤,一样弄到根节点的右儿子的左子树上,求子树
2021-08-19 19:38:09
121
原创 牛客 前缀和专题 简要题解
链接:前缀和专题A:做前缀乘即可,每次计算即sum[r]∗逆元sum[r]*逆元sum[r]∗逆元suml−1mo−2sum_{l-1} ^ {mo-2}suml−1mo−2代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mo = 1000000007;int a[100005], n, m;ll sum[100005];ll mul(ll x,ll y)
2021-08-17 22:17:04
219
原创 Luogu PCF1110E Magic Stones___思维
题目大意:分析:移项,有ci′−ci−1=ci+1−cic_i '-c_{i-1}=c_{i+1}-c_ici′−ci−1=ci+1−ci,发现了什么每次操作后,就相等于把差分值交换了那么只需要将 ccc的所有差分值看能否与ttt的所有差分值一一匹配(相等)即可代码:#include <bits/stdc++.h>#define N 100005using namespace std;int a[N], b[N], a1[N], b1[N], n;in
2021-08-13 12:00:56
126
原创 Luogu P2839 [国家集训队]middle___二分+主席树
题目大意:分析:考虑一个合法的答案ddd,一定满足区间内>=d区间内>=d区间内>=d的数的个数多于<d<d<d的个数,设差值为xxx,即 x>=0x>=0x>=0找到最大ddd满足x>=0x>=0x>=0,dmaxd_{max}dmax即最大中位数由于答案只可能是a1,a2..,ana1,a2..,ana1,a2..,an,考虑离散后对于每个可能的答案建立一个主席树假设bbb为aaa去重后的升序序列以bib_ib
2021-08-13 11:56:07
122
原创 Jzoj P4438 K小数查询___分块
题目大意:分析:分块,每个块记录用一个vectorvectorvector存对应的区间内的数,再用一个vectorvectorvector存对应区间内的数的升序序列用一个addiadd_iaddi记录块iii被整体操作累加的总和,以及一个aia_iai记录不计算整块操作,位置i的数值对于一个操作1,我们暴力改两端的散块,更新两端的vectorvectorvector,以及对应的升序序列,对于中间的所有整块,在对应的addaddadd上累加,因为存在对某一块的序列的排序重构,时间复杂
2021-08-12 09:14:58
398
原创 Luogu P4296 [AHOI2007]密码箱___数学
题目大意:给出nnn,求满足x2=1(modx^2=1(modx2=1(mod n)n)n)(x<n)(x<n)(x<n)的x的所有情况从小到大输出n<=2e9n<=2e9n<=2e9分析:x2=kn+1x^2=kn+1x2=kn+1移项发现是个平方差即(x+1)(x−1)=kn(x+1)(x-1)=kn(x+1)(x−1)=kn考虑拆解k,n考虑拆解k,n考虑拆解k,n①(x+1)=k1∗n1(x+1)=k1*n1(x+1)=k1∗n1②(x−1)=
2021-08-12 09:00:36
144
原创 Luogu P3203 [HNOI2010]弹飞绵羊___分块
题目大意:分析:分块,每个点记录当前点在哪一个块,跳出当前块需要多少步,跳出当前块以后走到了哪个点每次修改暴力重构当前整个块即可对于这个块中该点前面的点也需要更新代码:#include<bits/stdc++.h>#define N 200005using namespace std;struct Node { int bel, cnt, To;}cdp[N];int al[450], ar[450], b[N], siz, n, m;int main()
2021-08-11 21:39:48
120
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人