• 2024-06-23力扣-1630. 等差子数组
    1.题目介绍题目地址(1630.等差子数组-力扣(LeetCode))https://leetcode.cn/problems/arithmetic-subarrays/题目描述如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是等差数列。更正式地,数列s是等差数列,只需要满足:对于每个有效的i,s[i
  • 2024-06-20三个数可分等差数列
    #include<iostream>#include<vector>usingnamespacestd;voidprintGroups(vector<int>&sequence1,vector<int>&sequence2,vector<int>&sequence3,vector<int>&sequence4){cout<<"Gro
  • 2024-04-25洛谷题单指南-动态规划2-P4933 大师
    原题链接:https://www.luogu.com.cn/problem/P4933题意解读:求有多少个子序列可以组成等差序列解题思路:1、暴力DFS如果实在想不出动规的方法,对于n<=20的数据,可以DFS枚举所有子序列的子集,再判断是否是等差数列。30分代码:#include<bits/stdc++.h>usingnamespacestd;const
  • 2024-04-20银行笔试——数量关系
    竟然还有三级等差数列这样神奇的存在 等比数列  位数这样反复横跳的可能是等比保证符号一正一扶,要是连续负或正则可能是位数问题 
  • 2024-04-08等差数列-
    importjava.util.Arrays;importjava.util.Scanner;//1:无需package//2:类名必须Main,不可修改publicclassMain{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);//在此输入您的代码...intN=
  • 2024-04-042024.4 做题记录
    299.CF1534ELostArray难崩。题意转化为每次翻转\(m\)个\(01\)序列的元素,要把全\(0\)翻成全\(1\)。不想分讨。考虑直接最短路求最小步数,转移就枚举选多少个原本已经有的数。交互就记录方案就行了。300.P9537[YsOI2023]CF1764B很棒的题。考察终态,可以发现最后输
  • 2024-04-01P9537 [YsOI2023] CF1764B
    洛谷传送门很棒的题。考察终态,可以发现最后输的人拥有的数的数量大概率是比赢家的数量少的。唯一的例外是等差数列,因为一个长为\(n\)的等差数列只能组成\(n-1\)个不同的差值。考虑若一开始先手就是一个公差为\(d\)的\(n+1\)项等差数列,后手是一个公差为\(d\)的\(
  • 2024-03-242024 蓝桥打卡Day18
    洛谷刷题P8682[蓝桥杯2019省B]等差数列题目[P8682[蓝桥杯2019省B]等差数列](https://www.luogu.com.cn/problem/P8682)题解P8682[蓝桥杯2019省B]等差数列题目P8682[蓝桥杯2019省B]等差数列题解importjava.util.Arrays;importjava.util.S
  • 2024-03-12abc234E 不小于X的数位构成等差数列的最小数字
    给定X,求不小于X的整数,满足各个数位正好构成等差数列。1<=X<=1E17直接枚举首项和公差,找出所有可行的解,取最优值即可。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definerep(i,a,b)for(inti=a;i<=b;i++)#defineper(i,a,b)for(inti=b;i>=a;
  • 2024-03-10线段树维护区间等差数列
    线段树维护区间等差数列我们采用用两个懒标记分别维护等差数列首项k和公差d维护时有个细节是假如我有左右两个区间需要合并信息时我们对于左边还是k和d但是对于右边信息此时k应该变成k+len*d,公差还是dlen表示的是右边区间长度牛牛的等差数列#include
  • 2024-03-09[蓝桥杯 2019 省 B] 等差数列
    实际上这道题不需要先排序再求gcd,因为无论是哪两项之前作差,都不会影响最后的gcd的结果。因为公差是从a2-a1开始算的,因此i=1时要特殊处理,不能把a1-0计入贡献,否则会算出错误的gcd。即作差时不要加上a1-0,统计最值时不要漏掉a1#include<iostream>#include<stdio.h>#include<a
  • 2024-02-25Note - border 听课笔记
    border是什么?记住了,border是可以吃的。好吃好吃。为什么这么
  • 2024-02-16CF1928
    第一次写整场CF的题解。A:只有一边长度是$2$的倍数才可以选择剪下拼成另一个长方形,两边都判一下就行了:记录B:容易发现,加上某个排列长度为$n$的后,最多可以使两个相减为$n-1$的两个元素相等,于是双指针即可。记录C:先枚举他所得到的数是若干轮$2k-2$中的前$k$个还是
  • 2024-02-15CF1928E题解
    ModularSequence题目传送门题解发现\(a_i+y\)与\(a_i\bmody\)均不改变\(a_i\)模\(y\)的余数,所以答案序列的每个元素均可表示为\(x\bmody+ky\)的形式,先让\(s\)减去\(n\times(x\bmody)\),再除以\(y\),这样原序列可以被划分为一个从\(\lfloor\dfrac{x}{y}\rflo
  • 2024-02-07牛牛的等差数列(树状数组,区间加等差数列、区间求和)
    https://ac.nowcoder.com/acm/contest/5157/C区间加等差数列,区间求和树状数组,二阶差分\(b_i=a_i-a_{i-1}\)\(c_i=b_i-b_{i-1}\)\[\sum_{i=1}^na_i=\sum_{i=1}^n\sum_{j=1}^ib_j=\sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^jc_k\\=\sum_{k=1}^nc_k\sum_{i,j}[k\
  • 2024-02-02【模板】 与等差数列结合的线段树
    题面代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineIOSios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#definerep(i,a,n)for(inti=a;i<=n;i++)#defineper(i,a,n)for(inti=n;i>=a;i--)#definefifirst#definesesecond#defin
  • 2024-02-01CF125D 题解
    思路首先可以发现前三个数中的两个数一定为一个等差数列中,所以我们对于前三个数枚举哪两个数是一个等差数列中的,设这两个数的差为\(w\),在原数列中找到一个最长的公差为\(w\)的等差数列,记为\(A\),剩下的数记为\(B\),此时有三种可能。\(|B|=0\),此时可以知道原数组就是等差数列
  • 2024-01-31洛谷 P1438 无聊的数列
    这题题解的做法千奇百怪,有写了两棵线段树的,有线段树套差分的,还有线段树套二阶差分的。我承认是我看不懂所以我决定写一篇只用一棵线段树的题解。分析众所周知,普通线段树的懒标记存的是一个待更新的量。那对于这个题来说,直接存和(也就是add操作在这个线段上的影响)肯定是不切实际
  • 2024-01-10P5722题解
    说两句哈,等差数列求和公式是\((A_1+A_n)\timesd\over2\),所以其实可以一行代码解决,但是我没高斯聪明,于是我不打算用等差数列求和公式。//(等差数列求和公式)intn;cin>>n;cout<<(1+n)*1/2;思路1.定义及输入截止的数/计数器intn,cnt=0;//计数器必须归零!cin>>n;2.循环
  • 2023-11-30浅谈一类高斯求和问题
    引入相信大家都知道高斯求和公式:首项加末项的和乘项数除以二等于等差数列的和。实际应用中往往不会这么简单,常常会告诉你等差数列的和然后让你反过来求等差数列的信息,这时候对于边界的处理就很重要。P1014[NOIP1999普及组]Cantor表显然可以\(O(N)\)模拟,但这太慢了。先
  • 2023-10-15二阶前缀和和二阶差分
    马上就要csps了还啥也不会,真就是酸菜鱼了。定义二阶差分就是在差分数组的基础上再做一次差分。举个很板的栗子就是对一个序列进行一个等差数列式的一个减法,这个时候我们可以通过二阶差分,在\(O(1)\)的复杂度进行修改,之后就是\(O(n)\)的二维前缀和,就可以维护出来我们的一个
  • 2023-10-11P4062 [Code+#1] Yazid 的新生舞会
    题外话我记得第一次看见这道题是几个月前刚开始集训的时候,当时一点思路都没有,但是今天自己做出来了,很喜欢这种感觉!\(\text{Links}\)原题传送门可能更好的阅读体验题意求给定序列中有多少个子区间满足众数出现次数严格大于区间长度的一半。题解题目要求满足条件的子区间
  • 2023-10-07如何处理一类多区间问题
    形如\(\sum_{i=l}^rM(L+i,R+i,x)\)一类问题不难发现这个东西实际上就是一堆等差数列,考虑这样高维差分我们在\(i\)处放一个1,就相当于在这里生成了一个公差为1等差数列,先在\(L+l\)处生成一个数列111111111111111111111 111111111
  • 2023-10-02二阶差分——进行一个等差数列的加
    一般的差分用于对一段区间进行加减,但如果在该区间内加减的是一段等差数列呢?对于一段区间[l,r],加一段首项为s,末项为e的等差数列。其公差d=(s-e)/(r-l+1)为简化问题讨论,先假设这段区间都为0。原数组:0000000添加后的数组:0046800第一次差分:00422-8
  • 2023-09-22 String Rearrangement in Phantom
    先考虑一个\(O(nq)\)的暴力,令\(s_{1}=S[l_{1},r_{1}],s_{2}=S[l_{2},r_{2}]\),令\(t=\operatorname{rev}(s_{2})\),则我们仅需求\(s_{1}=A+B+C,t=\operatorname{rev}(A)+B+\operatorname{rev}(C)\)的数量,对于每一个前缀和后缀求出其翻转是否与其相等即可,这个可以通过\(\text{