• 2024-09-13dp+知道结果求在过程的思维
    codeforcesC.Armchairsdp题,写不出来,我们应该这么去考虑,一共有n个苹果要放在n个箱子里,要全部放完使得苹果和箱子的总距离差值和最小,类似于背包,每个箱子放不放,放了确保最小的箱子容量不用考虑一一对应的。#include<bits/stdc++.h>#defineintlonglongusingnamespace
  • 2024-08-13暑假集训CSP提高模拟17
    A.符号化方法初探看最大数和最小数的绝对值大小,用至多\(n-1\)次让其符号相同,是正数就加前一个数,是负数就倒着加后一个数,最多\(n-2\)次。点击查看代码#include<bits/stdc++.h>constintmaxn=2e5+10;usingnamespacestd;intn,a[maxn],x[maxn],y[maxn],cnt,minn,maxx,
  • 2024-08-12zkw线段树
    介绍非递归线段树实现方法,码量较短。zkw线段树的构造原理:普通线段树采用堆存储,zkw线段树本质上是满二叉树(若没有该区间则为空点)但根据实际情况,原区间不一定构成满二叉树,据查询方式限制,空间开到最接近的\(2^n\)(据性质树值域=底层节点数),即不存在的点有虚点填充。既然不
  • 2024-08-072024杭电多校6-11
      CODE:1#include<bits/stdc++.h>2#definerep(i,a,b)for(inti=a;i<=b;i++)3#definedwn(i,a,b)for(inti=a;i>=b;i--)4#defineMAXN1025015#defineinf999999996usingnamespacestd;7typedeflonglongll;8inlinein
  • 2024-07-31二分答案
    P1182数列分段SectionII#include<bits/stdc++.h>usingnamespacestd;intn,m;intmaxx=0;inta[100005];//最大值最小化boolcheck(intx){longlongsum=a[0];intcnt=0;for(inti=1;i<n;i++){ if(sum+a[i]<=x) sum+=a[i]; else { cnt++;
  • 2024-07-29P2900 [USACO08MAR] Land Acquisition G
    P2900[USACO08MAR]LandAcquisitionG传送门思路:先将土地按照长\(H\)排序从后往前遍历如果有出现\(H[i]\leH[j]\\text{and}\W[i]\leW[j]\)则这块土地是没有贡献的(\(i\)与\(j\)拼单)处理完之后H从小到大有序,W从大到小有序方程:\(f[i]=f[j-1]+max(h[k])*
  • 2024-07-26Codeforces 913 div3 A-G
    A题意分析把给定的坐标的那一行和那一列的其他所有坐标都输出来C++代码#include<iostream>usingnamespacestd;intmain(){ intt; cin>>t; while(t--){ strings; cin>>s; for(inti=1;i<=8;i++){ if(i+'0'!=s[1])cout<<s[0]<<i<<end
  • 2024-07-25数据结构专题讲解
    数据结构专题讲解总结:1.绝大多数数据结构体题目本身都比较明显的有共通性,往往可以向树上转化2.对于二维的问题,我们往往可以将一维上建立树然后暴力处理另外一维来解决问题例题一P7476「C.E.L.U-02」苦涩题目简述:在YQH的梦中,他看到自己过去的记忆正在不断浮现在
  • 2024-07-01GESP 202406 四级认证 T1 题解
    大意:一个只包含000和111的矩形,边长为
  • 2024-06-22D. Yet Another Monster Fight
    cf链接洛谷链接方法一最大最小值问题我们很容易想到二分答案法。那么我们如何写出check函数呢?对于答案x,若x-i+1<a[i],则选定怪物一定不在i位置左侧,即L=i;若x-n+i<a[i],则选定怪物一定不在i位置右侧,R=min(R,i)。遍历数组,如果L<=R则答案符合题意;否则不符合。code #includ
  • 2024-06-13XOR的艺术
    #include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<algorithm>#include<cstdlib>#include<set>#include<map>#include<vector>#include<qu
  • 2024-06-08【模板】单源最短路径(Dijkstra + 堆优化)
    #include<iostream>#include<queue>usingnamespacestd;constintinf=2147483647;constintMAXX=2e5+11;intn,m,s,cnt;intdis[MAXX];intto[MAXX],nxt[MAXX],val[MAXX],h[MAXX];boolvis[MAXX];structnode{intv,w;friendbool
  • 2024-06-01数据结构复习笔记4:队列,双端队列,循环队列
    1.队列概念和特点        队列是⼀种特殊的线性表,特殊之处就在于它只允许在表的前端进⾏删除操作,在表的后端进⾏插⼊操作。和栈⼀样,队列也是⼀种操作受到限制的线性表。进⾏插⼊操作的端称之为队尾,进⾏删除操作的端称之为队头。队列中没有队列的时候,称之为空队列。
  • 2024-05-23CSP历年复赛题-P1085 [NOIP2004 普及组] 不高兴的津津
    原题链接:https://www.luogu.com.cn/problem/P1085题意解读:找到两数之和大于8且两数之和最大值的位置解题思路:不多说,送分题,直接模拟法即可100分代码:#include<bits/stdc++.h>usingnamespacestd;inta,b;intmaxx,maxn;intmain(){for(inti=1;i<=7;i++)
  • 2024-05-14难存的情缘
    抽象的题目(咱就是说,这个”难存的情缘“是指要把矿掏空吗)题目分析这个题目还是比较好理解的,我们需要干的有\(2\)个操作,但实际上有\(3\)个1:边权转点权2:单点修改3:链上最大值查询很明显是树刨板子题,操作中需要注意的有三点,如何转边权,最大值点权查多了,修改时的边
  • 2024-05-09洛谷题单指南-动态规划2-P4310 绝世好题
    原题链接:https://www.luogu.com.cn/problem/P4310题意解读:求最长的子序列长度,使得每相邻两个元素&操作不为0。解题思路:直观来看,可以通过类似最长上升子序列的算法,进行状态转移,但是复杂度为O(n^2),会超时状态表示:dp[i]表示前i个数能产生满足条件的子序列的最长长度状态转移:dp
  • 2024-05-05春季月考#3
    春季月考#3A.KillQuicksort经典的卡快排题。快排在数组正序/逆序是会到达最大的时间复杂度\(O(n^2)\),但是这个代码里边是随机选择的。我们发现他这个随机函数是定死的,而且种子已经告诉我们了。于是我们将计就计:先把所有数组元素值赋\(0\)模拟一遍快排把每一次查到的随
  • 2024-04-19P321. [NOI2002]荒岛野人Savage题解?!!!
    还是我容易(☚xzz说的)想出,x年后i号野人的位置为:\((C_i+P_i*x)\modm\)我们只要让任意方程:\((C_i+P_i*x)\modm=(C_j+P_j*x)\modm\)解小于\(L_i\)或小于\(L_j\)即可推式子!\[(C_i+P_i*x)≡(C_j+P_j*x)\(mod~m)\\⇿x*(P_i-P_j)+y*m=C_j-C_i\]然后就是拓展欧几里得模板了。
  • 2024-04-19P4168 [Violet] 蒲公英(题解)
    题目题目描述输入格式输出格式数据范围![]样例输入:63123212153615输出:121思路暴力本题求区间内的最小众数,容易想到去用数组sum[i]表示第i种花的个数,在去便利比较,但是复杂度nm一定会T,这时候就要对暴力进行优化。分块优化1如果我们将所
  • 2024-04-16洛谷题单指南-数学基础问题-P2660 zzc 种田
    原题链接:https://www.luogu.com.cn/problem/P2660题意解读:对一个长方形,切割出最少数量的正方形,计算所有正方形的边长。解题思路:长方形长、宽为x,y先判断x,y哪个长,哪个短长的作为l,短的作为s先切出s*s的正方形,一共可以切出l/s个,累加周长ans+=l/s*s*4在对剩下的s*
  • 2024-04-11长颈鹿烩面
    长颈鹿烩面题目链接solution直接考虑原问题是个dp,可以用数据结构优化dp来\(O(tn)\)求出\([1,t]\)中每个\(k\)的答案。也可以wqs二分\(O(n\logn)\)得到单点的答案。(实际上dp的时候还带并查集的复杂度)注意到wqs二分的斜率超过\(T\)时原序列会分成不超过\(O
  • 2024-04-042024-4-4 分块补题
    P3203[HNOI2010]弹飞绵羊记录每个位置跳出当前块所需要的步数和跳出的位置。从后往前统计#include<bits/stdc++.h>#definemaxn200100usingnamespacestd;intn,m,len;intpos[maxn],k[maxn];intnxt[maxn],stp[maxn];structfk{intl,r;}a[maxn];intread(){
  • 2024-03-31吉司机大杂烩
    CPU监控历史最大值可以让我们想到吉司机,然后发现这里有个就要考虑区间推平和区间加对lazytag的影响。我们要维护6个tag,maxx,hmaxx,ha,a,hc,c。考虑之前的线段树对于区间覆盖和区间加之怎么做的。我们发现如果我们有一个c标记,那么如果我们要下传一个ad标记,那么我们可以让c加上ad
  • 2024-03-31CF1557D (dx)(dp技巧)
    比较有意思的一道题。看到将一个区间涂黑可以想到线段树。然后看到最少删除,想到最多保留。然后我一开始想的是贪心,对于每条线段找到前面最近的,然后对于每个高度取min即可。然后测了一下样例,寄了。会被这个hack掉对于这个,我们在做2时会把中间删了,然后做1的时候就寄了。这就说明
  • 2024-03-26[题解]P5858 Golden Sword
    P5858「SWTR-3」GoldenSword第一道自己想出递推公式并且成功\(AC\)的\(dp\)绿题。题意简述有\(n\)种原料,每个原料有一个耐久度\(a[i]\),必须按照\(1,2,…,n\)的顺序放入炼金锅。但是炼金锅的容量是有限的,只有\(w\),所以在每次放入原料之前,都可以选择取出\(0\sims\)个原料再放