- 2024-11-21数据结构与算法——二分查找(自学笔记)
本文参考二分查找-LeetBook-力扣(LeetCode)全球极客挚爱的技术成长平台基本概念前提条件:数组必须是有序的(升序或降序均可)。核心思想:每次比较中间元素与目标元素的关系,将查找区间一分为二。根据目标元素与中间元素的大小关系,决定接下来查找的区间是左半部分还是右半
- 2024-11-19P10304 [THUWC 2020] 道路修建
注意到\(1\)到一个\(b\)子树内的点\(x\)的路径可以拆成\(1\top\toq\tox\)的形式,其中\(1\top\)走树边,\(p\toq\)为在点\(p\)从树边走出去,在点\(q\)走回来,然后\(q\)再走树边走到\(x\)。考虑\(f_i\)为最小的\(d\),满足断掉\(i\)深度为\(d\)的祖先到\(i
- 2024-11-19P1083 [NOIP2012 提高组] 借教室
题目在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来 nn 天的借教室信息,其中第 ii 天学
- 2024-11-19[71] (多校联训) A层冲刺NOIP2024模拟赛24
bydT3放道这种题有什么深意吗flowchartTB A(选取字符串) styleAcolor:#ffffff,fill:#00c0c0,stroke:#ffffff确实是签,但是一直在想组合意义,最后因为没提前处理逆元遗憾离场了,赛后看题解发现的确是往树上转化更简单点赛时的组合意义代码没过#include<bits/stdc++.h>us
- 2024-11-19数的范围(二分模板题)
给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回-1-1。 //将求左右边界转化为二分模板的向上和向下取整#include<algorithm>#include<iostream>usingna
- 2024-11-19Public NOIP Round #6 D 排序 题解
Description今天是YQH的生日,她得到了一个\(1\simn\)的排列作为礼物。YQH是一个有强迫症的女孩子,她希望把这个排列从小到大排序,具体的,她可以进行这样的操作:把\([1,n]\)分成若干个区间,假如是\(m\)段,依次为\([l_1,r_1],[l_2,r_2],\dots,[l_m,r_m]\),其中\(l_1=1,r_m=
- 2024-11-19二分查找(折半查找)(内含CodeForces - 1760F )
在数组中想要找到一个元素,我们最先想到的就是遍历数组,用if语句判断它们是否相等,但时间复杂度太高,我们也不想遍历数组中的每个元素,感觉太麻烦了。这时就可以用二分查找的方法:先将数组排序,然后不断折中数组,只需比较中值与目标值的大小,更新中值的大小就行了,这样可以大大减少时间
- 2024-11-18P1314 [NOIP2011 提高组] 聪明的质监员
题目[NOIP2011提高组]聪明的质监员题目描述小T是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi。检验矿产的流程是:给定m个区间[li,ri];选出一个参数W;对于一个区间[li,ri],计算矿石在这
- 2024-11-18常用代码模板1——基础算法
算法基础课相关代码模板活动链接——算法基础课快速排序算法模板——模板题luogu785.快速排序voidquick_sort(intq[],intl,intr){if(l>=r)return;inti=l-1,j=r+1,x=q[l+r>>1];while(i<j){doi++;wh
- 2024-11-18luogu P1314 聪明的质监员
[NOIP2011提高组]聪明的质监员题目描述小T是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有\(n\)个矿石,从\(1\)到\(n\)逐一编号,每个矿石都有自己的重量\(w_i\)以及价值\(v_i\)。检验矿产的流程是:给定$m$个区间\([l_i,r_i]\);选出一个参数\(W\);对
- 2024-11-18ybtoj:二分算法
A:数列分段点击查看代码#include<bits/stdc++.h>usingnamespacestd;intm,n;inta[100002];intl,r;boolcheck(intlimit){ intcnt=1,sum=0; for(inti=1;i<=n;i++) { if(sum+a[i]>limit){ cnt++; sum=a[i]; } else{ sum+=a[i]; } }
- 2024-11-17搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例1:输入:[1,3,5,6],5输出:2示例2:输入:[1,3,5,6],2输出:1示例3:输入:[1,3,5,6],7输出:4示例
- 2024-11-17noip模拟15
A暴力操作(opt)B异或连通(xor)C诡异键盘(keyboard)D民主投票(election)这道题很简单。。。首先,对于一个节点\(u\),如果\(siz[u]-1\)大于了其他所有节点能得到的最大值,那么它一定能胜利。那考虑怎么找到一个值,满足所有节点能得到的最大值最小?用二分答案即可。对于一次
- 2024-11-17最近做题小结
https://www.luogu.com.cn/problem/AT_abc374_e这题是一个小学数学问题但是我还是没做出来首先做这道题要有一个性价比的思想我们肯定优先使用性价比高的机器为什么呢注意到数据范围aibi都是小于100的也就是说最极限的情况就是1001这样的也就是说性价比的机器我们
- 2024-11-17K-D Tree
0.前言K-DTree是一种能够处理高维空间信息的数据结构,其在一些情况下能够代替CDQ分治以及树套树,较优秀地处理\(k\)维空间上的信息。参考资料:OI-wiki题单:\(\tt{Link}\)1.KDT的原理KDT的结构与BST类似,其每一个非叶子节点都具有超平面的作用,建树时会选择\(k\)维中某
- 2024-11-17AtCoder Beginner Contest 380 A - E
link赛时是ABC,D一眼要找规律,跳了,E题思路想了接近半个小时,然后发现假了,最后没调出来,问一下dalao发现其实很简单维护。。。基础线段树没切掉,哎呦不过发现比赛打多了,理解速度和手速都有些提高,幸好前三题秒掉了,要不然rating又会是一坨A-123233B-HurdleParsingC-M
- 2024-11-17归并排序
先递归为多个小部分再进行排序#include<iostream>usingnamespacestd;constintN=1e5+10;inta[N],tem[N];voidmerge_sort(inta[],intl,intr){ if(l>=r)return; intmid=l+r>>1; merge_sort(a,l,mid),merge_sort(a,mid+1,r);//
- 2024-11-16洛谷 P6874 [COCI2013-2014#6] KOCKICE
动笔算算样例可得一个性质,只要确定中间位置的数是多少,其他位置就可以直接求出。如果我们暴枚中间的数,必然超时。于是我们需要用二分。如果中间位置上的数是答案,那么无论什么数,操作次数一定多于他。所以我们只要判断关系就能判断往哪边找。代码:#include<bits/stdc++.h>using
- 2024-11-16炼石计划 NOIP 模拟赛 #20
A.\(kx+(\sum_{i=1}^{k}a_i-1)\timesy=k(x-y)+y\times\sum_{i=1}^{k}a_i\)\((a_1-1)*1+(a_2-1)*(a_1-1)*1+(a_3-1)*(a_2-1)*(a_1-1)*1\)$\prod_{i=1}^{k}a_i>N$两数和相等时乘积最大,因此\(a\)数组中任意两个数的差的绝对值
- 2024-11-16二分查找 理论 例题
递归代码intbinary_search(intarr[],intleft,intright,intkey){ if(left>right){//区间无效 return-1; } intmid=left+(right-left)/2;//直接平均可能会溢出 if(arr[mid]==key){ returnmid; }elseif(key>arr[mid]){ returnbinary_s
- 2024-11-16NOIP2024 前集训:NOIP2024加赛 5
前言music《浮光》看指尖拨响蝴蝶扇动一场离别我推开无声岁月续梦一页你我只是打个照面可曾有过誓约走进熟悉却陌生的思念啊……啊……你的眼眸装满了时间你的身后拥故事成篇此生如梦愿细数流年与你同写沧海桑田浮光掠影重山彩云间你的伏线
- 2024-11-16[Tricks-00003]CF1989F 套路叠加,高级分治
先说一个简单问题:给定一个\(n\timesm\)的黑白网格图,每次可以将一行或者一列染成同一种色,判断是否能到达?经典做法:倒过来考虑,每次将颜色全相同或为*的一行全染成*,判断是否可以将这张图染成全*。经典网格图转二分图,如果\(s_{i,j}='W'\)则将\(i\)向\(j'\)连一条有向边,否
- 2024-11-15P3853 [TJOI2007] 路标设置
P3853[TJOI2007]路标设置#[TJOI2007]路标设置题目背景B市和T市之间有一条长长的高速公路,这条公路的某些地方设有路标,但是大家都感觉路标设得太少了,相邻两个路标之间往往隔着相当长的一段距离。为了便于研究这个问题,我们把公路上相邻路标的最大距离定义为该公路的“空旷
- 2024-11-151.11--06:月度开销
月度开销题目传送门思路给定连续N天的开销,需要将这些天分成M个财政周期,使得开销最多的财政周期的开销尽可能少。首先,我们可以确定一个财政周期的长度l,即将N天平均分成M个财政周期。这样每个财政周期的长度就是N/M。然后,我们需要计算每个财政周期中的开销总和。假设当前财政
- 2024-11-15P11232 [CSP-S 2024] 超速检测(官方数据)
[CSP-S2024]超速检测(官方数据)题目描述小D新入职了某国的交管部门,他的第一个任务是负责国家的一条长度为LLL的南北主干道的车辆超速检测。为了考考小D,上司首先需