• 2024-05-26小猴编程周赛C++ | 环形最大子段和
    学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!附上汇总贴:小猴编程C++|汇总-CSDN博客【题目描述】给出一个长度为n的环形数组a1
  • 2024-05-21CSP历年复赛题-P1023 [NOIP2000 普及组] 税收与补贴问题
    原题链接:https://www.luogu.com.cn/problem/P1023题意解读:给定商品单价和对应销量表,计算使得采用预期价格销售得到最大利润时的最小补贴或者税收。解题思路:1、样例模拟31281303012031110-1-115政府预期价格:31商品成本:28,按成本价售卖销量:130商品单价:30,对应销量:120
  • 2024-05-13P1854 花店橱窗布置
    原题链接题解第\(i\)朵花的选择范围为\([i,m-n+i]\),而它一定是由第\(i-1\)朵花的某种选择继承而来的code#include<bits/stdc++.h>usingnamespacestd;intn,m;intdp[105][105]={0},pre[105][105]={0},a[105][105];intmain(){cin>>n>>m;for(inti=1;i<
  • 2024-04-19L2-023 图着色问题
    原题链接题解说用k种颜色,没说用少于k种code#include<bits/stdc++.h>usingnamespacestd;vector<int>G[505];intvis[505]={0};intcolor[505]={0};intv,e,k,n;intsolve(){for(inti=1;i<=v;i++){for(autonext:G[i]){
  • 2024-04-18莫队
    简介莫队是一种离线求区间信息的算法,可以做到\(O((N+Q)\cdot\sqrt{N})\)。莫队中使用了分块的思想。首先考虑一个问题:给定一个长度为\(N\)序列\(A\)和\(Q\)次询问,每次询问查询区间\([X_i,Y_i]\)的和。(请先忘掉前缀和、线段树、树状数组什么的)比如以下数据:54322
  • 2024-04-12M. Triangle Construction
    原题链接题解如果存在某一条边的\(a_i>=2*(sum-a_i)\)那么这条边一定有点剩余无法连接,为什么?这条边上每取两个点作为底边点,就一定能去外面一个点作为顶点,且无交叉(顺时针或逆时针)code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){ll
  • 2024-04-01点分治
    最近学了点分治,觉得挺厉害的,准备写一下加深印象。树上的东西都很抽象,所以自然要用抽象的东西来做,就比如点分治,点分治的思路是在当前的子树中找重心,然后用重心做事情,为什么用重心,因为重心可以使得复杂度降到log级别,然后再在这个子树里找你要的东西就行了,因为是每次都会用子树做,所
  • 2024-03-09点分治
    点分治是树分治的一种形式,通常用来求满足某种要求的路径数量。引入有\(n\)个数,问是否存在一个\(l,r\)使得区间和为\(k\),强行用分治做,可以将数组分成两半,递归后处理左边\(l\)右边\(r\),然后就用前缀和加\(map\)加归并的并做就可以了。思路可以将这个思路放到树上,分为
  • 2024-02-04【算法】树分治
    1.算法简介树分治(Treedivision),是处理树上路径类问题的算法。树分治又可以分为点分治与边分治。考虑这样一个问题:给定一棵有\(n\)个点的树,询问树上距离为\(k\)的点对是否存在。暴力的做法就是枚举两个点然后计算距离,统计答案。这样显然\(O(n^2)\)的。我们发现瓶颈在于
  • 2023-10-08456. 132模式
    链接https://leetcode.cn/problems/132-pattern/description/思路这题其实不难,就是边界条件难想。我们可以先保证单调栈里是逆序,然后判断单调栈中较小的值是否大于当前元素(满足132的1和2的关系)。代码classSolution:deffind132pattern(self,nums)->bool:
  • 2023-06-15621. 任务调度器
    难度中等1159给你一个用字符数组 tasks 表示的CPU需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在1个单位时间内执行完。在任何一个单位时间,CPU可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的
  • 2023-06-12AIM Tech Round 3 (Div. 1)-C. Centroids
    原题链接C.CentroidstimelimitpertestmemorylimitpertestinputoutputTree isaconnectedacyclicgraph.Supposeyouaregivenatreeconsistingof n vertices.Thevertexofthistreeiscalled centroid
  • 2023-06-05常用数学分析的记号:“∃ ”:“存在”或“可以找到”,“∀ ”: “对于任意的”或“对于每一个”, maxS:数集S极大值,minS:数集S极小值
    常用数学分析的记号:“∃”:“存在”或“可以找到”,“∀”:“对于任意的”或“对于每一个”。例如:A⊂B⇔∀x∈A,有x∈B,A⊄B⇔∃x∈A,使得x∉B。minS:极小值与maxS:极大值设S是一个数集,minS:如果∃ξ∈S,使得∀x∈S,有ξ≤x,则称ξ是
  • 2023-05-20AC自动机
    前言在学习AC自动机前,请确保已经学习并能熟练运用:KMP匹配字典树引入在漫长的OI路途,我们难免要接触到一种叫字符串的东西。在解决关于字符串的问题时,我们又难免要解决两个字符串匹配的问题,比如,在一个字符串s中,字符串t出现了多少次这些问题。(详见KMP匹配)而在OI路途也
  • 2023-05-052432. 处理用时最长的那个任务的员工
     分析:题目有点绕,但是大概意思就是给出的数组是多个任务logs[i][0]是员工编号,logs[i][1]是处理完当前i任务结束的时间而i任务需要的时间就是logs[i][1]-logs[i-1][1]求得最长的任务时间,如果有多个,就取员工编号最小的那个建立一个maxes量存最大时间,一个maxs存员工编号遍历数
  • 2023-04-30剑指 Offer II 119. 最长连续序列
     分析:题目意思是数组里面能组合起来最长的连续数组然后直接sort排序,如果中间差数不是1就不再连续,count归零当nums[i]和nums[i-1]相等的时候,跳过代码:1classSolution(object):2deflongestConsecutive(self,nums):3"""4:typenums:List[
  • 2023-04-20每日打卡·
    //#include<iostream>//#include<stdio.h>//#include<string>//usingnamespacestd;//char*search(char*s,char*t);//intmain()//{//chars[30]="";//charc;//c=getchar();inti=0;//while(c!='\n
  • 2023-01-1055. 跳跃游戏
    问题链接https://leetcode.cn/problems/jump-game/description/解题思路对这个题目进行贪心,对于每个格子,我们都可以求出从它可以跳到最远的那个格子。我们用一个t_maxs
  • 2022-11-0111. Container With Most Water
    Given n non-negativeintegers a1, a2,..., an,whereeachrepresentsapointatcoordinate(i, ai). n verticallinesaredrawnsuchthatthetwoendpoi
  • 2022-10-28【ARC068F】Solitaire(dp,计数,思维)
    首先发现那个双端队列一定长这样:也就是说,这个队列中的数先单调递减,然后再单调递增,最小值为\(1\)。现在考虑从双端队列中取数,那么当我们取到\(1\)这个数时,我们会在原
  • 2022-10-25POJ 3122(二分答案)
    二分答案……Programpie;constlef=0.00001;vart,n,f,i,j:longint;r:array[1..10000]oflongint;s:array[1..10000]ofdouble;maxs:double;procedures
  • 2022-08-13[2008年NOIP普及组] 排座椅
    用桶排排序,用贪心找出最优解#include<bits/stdc++.h>usingnamespacestd; intm,n,k,d,l,a,b,c,e,maxs,bj;inti,j,ii,mm[33000],ll[23000],ms[33000],ls[33000];intmai