- 2024-11-15笔记-CDQ 分治
CDQ分治分治,分而治之,一般采取递归的形式,先将要处理的部分分开分别处理,再合并计算。而CDQ分治正是基于分治思想的离线算法。具体地,CDQ分治对询问进行分治,对于一个询问区间\([l,r]\),CDQ分治进行以下操作:处理\([l,mid]\)。处理\([mid+1,r]\)。计算\([l,mid]\)中的修
- 2024-11-14归并排序的实现
基本思想归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。
- 2024-11-14[JXOI2017] 加法 题解
[JXOI2017]加法最小值最大,一眼二分。贪心地,每次尽量对包含当前序列最小值的区间做加法操作,也就是说,对于当前二分的答案\(x\),任何的\(A_i<x\)都需要被操作。从左到右地考虑答案。我们认为当前点之前的所有值都已经满足条件,于是我们只需考虑每次区间对当前点之后答案造成的贡
- 2024-11-14二分——E. Klee's SUPER DUPER LARGE Array!!!
题目Klee有一个数组a长度n包含整数[K,K+1,...K+n]按此顺序。Klee想要选择一个索引i(1<=i<=n),使得x=|a1+a2+...+ai-ai+1-...-an|最小化。请注意,对于任意整数z,|z|表示x.输出x.输入第一行包含t(1≤t≤1e4)—测试用例的数量。每个测试用例包含两个整数n和k(2≤n,k≤109)—数
- 2024-11-14每日
includeusingnamespacestd;intmain(){intm,n,num;cin>>m>>n;intarr[999999];ints[999999];for(inti=0;i<m;i++){cin>>arr[i];}for(inti=0;i<n;i++){cin>>num;intst=0;in
- 2024-11-14NOIP 模拟赛 #20
已经好久没写模拟赛题解了啊。。。A.邻间的骰子之舞一个结论,可以打表,每一次复制后跟的粘贴数量要尽量相同,差不超过1,所以枚举复制了几次,然后二分最大的出来答案小于\(n\)的数\(mid\),然后枚举多少个复制后的粘贴数为\(mid+1\),出来的答案可以\(O(1)\)算,大于\(n\)直接输出
- 2024-11-14NOIP2024 前集训:MX 炼石计划 NOIP 模拟赛 20
前言今天不知道为啥去打MX了,bug不少啊,包括但不限于赛时能通过自己主页看自己题过没过,赛时可以进入“补题”的比赛交从而直接成IOI赛制,文件还有点问题?0+100+12+0,T1读假题:\(\ge×,>√\),喜提爆零,但是本来就不会正解,我去我表都打出来了不知道二分??!?!!?不打T4是错误的,乱搞能得的分
- 2024-11-142024.11.14 鲜花
双调排序的正确性证明暨第八交响曲题解推歌:DoubleAgent好多题解都写的或多或少有问题(包括那篇\(30\)分钟速通),终于是整明白了。首先给出双调序列的定义:满足一下条件之一的序列\(\existsk,\foralli<k,a_i>a_{i+1}\land\foralli>k,a_i<a_{i+1}\)即是单谷。其可以通过
- 2024-11-14[68] (炼石计划) NOIP 模拟赛 #20
学了一个挺帅的MerMaid所以用一下MerMaid就是你们接下来会看到的好看小标题但是实际上它是用来画流程图的……flowchartTB A(邻间的骰子之舞) styleAcolor:#ffffff,fill:#00c0c0,stroke:#ffffff考虑每次复制以后一定会粘贴若干次(大于零,否则没有意义),因此将复制粘贴捆绑
- 2024-11-14MX 炼石计划 NOIP 模拟赛20(我真做过1~19吗?)
MX炼石计划NOIP模拟赛#20T1邻间的骰子之舞二分答案,发现性质,签到,过。记得开__int128没开,挂30.码:CODE#include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;constintN=2e5+100;#ifdeflinux#definegetchargetchar_unlocked#define
- 2024-11-14二分找最小绝对值
Klee'sSUPERDUPERLARGEArray!!!每次测试时间限制:2秒每次测试的内存限制:256MB题目描述Klee拥有一个长度为n的数组a,数组中的元素依次为[k,k+1,...,k+n-1]。Klee希望选择一个索引i(1≤i≤n),使得x=|a1+a2+⋯+ai-ai+1-⋯-an|最小。其中对于任意
- 2024-11-14整数二分查找 leetcode35. 搜索插入位置 leetcode704. 二分查找
这两道题的本质是一样的,都是整数二分查找。题目给出的条件比较强,序列是严格单调递增的。但是我这个即使序列存在重复的元素也可以满足需求35.搜索插入位置classSolution{public:intsearchInsert(vector<int>&nums,inttarget){intsize=nums.size();
- 2024-11-14[LeetCode] 2064. Minimized Maximum of Products Distributed to Any Store
Youaregivenanintegernindicatingtherearenspecialtyretailstores.Therearemproducttypesofvaryingamounts,whicharegivenasa0-indexedintegerarrayquantities,wherequantities[i]representsthenumberofproductsoftheithproducttype
- 2024-11-14每日一题:https://www.luogu.com.cn/problem/P2249
includeusingnamespacestd;intmain(){intp,sum;cin>>p>>sum;intarr[p];for(inti=0;i<p;i++){cin>>arr[i];}for(inti=1;i<=sum;i++){intmubiao;intmin=0;intmax=p-1;cin>>mubiao;for(;
- 2024-11-14每日一题 :https://www.luogu.com.cn/problem/P2249
includeusingnamespacestd;intmain(){intp,sum;cin>>p>>sum;intarr[p];for(inti=0;i<p;i++){cin>>arr[i];}for(inti=1;i<=sum;i++){intmubiao;intmin=0;intmax=p-1;cin>>mubiao;for(;;){if(arr[0]mubiao){printf(
- 2024-11-13P11103 [ROI 2022 Day 2] 挑战
题目可以看成一个最大流模型。源点\(S\)往所有机器人连边,容量为\(c_i\);所有容器往汇点\(T\)连边,容量为\(a_i\);机器人\(i\)往容器\(j\in[l_i,r_i]\)连边,容量\(+\infty\)。最大流即为答案。最大流不好计算,考虑最小割。不妨令选取容器集合为\(S\),不被\(S\)包含的区间
- 2024-11-13线段树
线段树题目:https://www.acwing.com/problem/content/1277//*题目:https://www.acwing.com/problem/content/1277/给定一个正整数数列a1,a2,…,an,每一个数都在0∼p−1之间。可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成n+1;询问
- 2024-11-13处理回文串的两种方法:动态规划 | 马拉车(Manacher)算法
一.前言对于回文串的处理方法有很多,还有中心扩展、哈希等方法。这里只是介绍两种我觉得有用的方法。这里的两种方法不针对的某一种特定题目,他们是一种解题思路,这两个算法像一个工具一样,在有需要的时候使用。二.一维动态规划首先介绍一下这个算法的作用,我们预处理出一个一维d
- 2024-11-13[NOI2021] 轻重边
气死我了这题,还是写一下题解首先有一个非常好的转化,你可以把给定操作转为树上颜色问题假设将操作\(1\)改成“将从\(x\)到\(y\)路径上的所有点都涂上一种新的颜色”,那么可以发现,与路径上的点相邻的所有非路径点,与路径上的点颜色必然不同,路径上的点之间两两必然相同因此就
- 2024-11-13力扣刷题——3261. 统计满足 K 约束的子字符串数量 II
看了题目的两个初始用例,感觉能用前缀和和滑动窗口来解决,前缀和设定为从下标0到当前位置所有符合条件的答案数量,于是先写了一个:vector<longlong>countKConstraintSubstrings(strings,intk,vector<vector<int>>&queries){intn=s.size();vector<longlong>pre
- 2024-11-13baka's trick
众所周知,双指针适用于一类固定左端点,右端点具有单调性的问题,由于每个点只会被删一次,所以令加入/删除的时间复杂度为\(O(B)\),总时间复杂度\(O(nB)\)。而对于一些信息,加入是简单的,但是删除是困难的(例如gcd、min)等,这时我们考虑baka'strick把删除扔掉。考虑设一个阈值\(p\),假
- 2024-11-13P10856 【MX-X2-T5】「Cfz Round 4」Xor-Forces题解
题意:给定一个长度为\(n=2^k\)的数组\(a\),下标从\(0\)开始,维护\(m\)次操作:给定\(x\),设数列\(a'\)满足\(a'_i=a_{i\oplusx}\),将\(a\)修改为\(a'\)。其中\(\oplus\)表示按位异或运算。给定\(l,r\),查询\(a\)的下标在\(l,r\)之间的子数组有多少颜色段。不保
- 2024-11-13数列分段(二分)
[数列分段SectionII]题目描述对于给定的一个长度为\(N\)的正整数数列\(A_{1\simN}\),现要将其分成\(M\)(\(M\leqN\))段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列\(4\2\4\5\1\)要分成\(3\)段。将其如下分段:\[[4\2][4\5][1]\]第一段和为
- 2024-11-13P11071 「QMSOI R1」 Distorted Fate题解
题意:给定一个序列,给定两种操作:将一个区间异或上一个给定的值。给定\(l,r\)求\[{\large(\sum_{i=l}^r\bigcup_{j=l}^iA_j)\bmod2^{30}}\]\(0\lea_i,x<2^{30}\),\(1\lel\ler\len\)思路由于操作数以及区间过大,一位一位地去模拟肯定是不行的。因此考虑去离线
- 2024-11-12整数二分—建造水族馆
建造水族馆每次测试时限:2秒每次测试的内存限制:256兆字节输入:标准输入输出:标准输出题目:你喜欢养鱼,所以你决定建造一个水族馆。你有一块由n根柱子组成的珊瑚,其中i根柱子高ai个单位。之后,你将在珊瑚周围建造一个水族箱,具体如下:选取一个整数h>=1--水箱的高度。在水箱两侧建