
比赛题解专栏
用来写下那些笔者比赛时遇见的经典题目与怪题
Avalon Demerzel
ICPC区域赛银牌+退役ACMer
展开
-
【动态规划】ST算法解决区间最值询问问题(RMQ问题)
一、前言RMQ问题、即区间最值问题,在遇到这类题目的时候,我们可以用暴力枚举两重for循环的方式来解决,但是这样的话会在时间上超时。如果想要不超时的话,我们也可以用线段树来解决该问题。但是我们在日常的训练中意识到:线段树的代码比较多并且比较复杂,稍有不慎的话就有可能出错。因此,在这里作者简单介绍一种写起来比较简单的算法-----ST算法。例题引入:Acwing 天才的记忆从前有个人名叫 WNB,他有着天才般的记忆力,他珍藏了许多许多的宝藏。在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果原创 2022-02-21 20:22:21 · 450 阅读 · 0 评论 -
【思维,暴力】奋发
一、题面分析题目链接:奋发题目分析:这里题目告诉我们给我们的有序单调不减数对。根据题意我们能够知道,A和B的值一定会从ai,bi到ai+1,bi+1,那么我们只需要找出每一次从ai,bi到ai+1,bi+1时A和B可能重复的次数就可以了,具体实现方法可以通过代码好好理解。二、代码分析#include <bits/stdc++.h>using namespace std;int t;int n, m;int l, r, tot;long long ans;int x[30000原创 2021-10-24 19:54:27 · 169 阅读 · 0 评论 -
【分层图最短路】通信线路
一、前言曾经有一场比赛分层图最短路的知识点不会导致一道比较简单的题目没写出来。然后今天看到了这道题,刚好巩固一下分层图最短路。在图论问题中,使用分层图最短路可以有效的解决有选择条件的最短路问题。不同维度之间用有向边单向连接,当状态从低维度通向高纬度时就代表进行了一次条件选择。二、题面分析题目链接:通信线路在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站 Ai 和 Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中原创 2021-10-15 09:53:19 · 208 阅读 · 0 评论 -
【二进制】Special Numbers
一、题面题目链接:Special NumbersTheofanis really likes sequences of positive integers, thus his teacher (Yeltsa Kcir) gave him a problem about a sequence that consists of only special numbers.Let's call a positive number special if it can be written as a sum o原创 2021-10-09 18:40:42 · 411 阅读 · 0 评论 -
【思维、费马小定理】CQXYM Count Permutations
一、题面题目链接:CQXYM Count PermutationsCQXYM is counting permutations length of 2n.A permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appe原创 2021-10-08 19:31:19 · 300 阅读 · 0 评论 -
【图论】新年好(最短路的综合问题)
一、前言这道题目的时间复杂度卡的很死,需要在算法设计和细节上仔仔细细的考虑才能通过。非常考验对最短路算法的基础理解和灵活运用,是一道值得细细品味的图论题。二、题面分析题目链接:Acwing:新年好重庆城里有 n 个车站,m 条 双向 公路连接其中的某些车站。每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。在一条路径上花费的时间等于路径上所有公路需要的时间之和。佳佳的家在车站 1,他有五个亲戚,分别住在车站 a,b原创 2021-09-30 12:20:34 · 550 阅读 · 0 评论 -
【排列组合、思维】Combinatorics Homework
一、前言CF经典折磨…如果没能想到结论的话就是疯狂的折磨,没有尽头的那种.这种题目也只能通过不断写写CF来长长见识了.一边写一边庆幸自己没打这场Div2,否则是真的太自闭了。二、题面讲解Combinatorics Homework先放出英文题面吧You are given four integer values a, b, c and m.Check if there exists a string that contains:a letters 'A';b letters 'B';c原创 2021-09-24 17:46:08 · 316 阅读 · 0 评论 -
【图论】昂贵的聘礼(最短路变形)
昂贵的聘礼一、前言二、题目展示三、题目分析四、题目代码讲解一、前言最近遇到的最恶心的最短路问题,题目又臭又长,理解起来也需要花时间。但是是一道不错的题目。二、题目展示题目链接:昂贵的聘礼年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要 8000 金币。如果你能够弄来他的水晶球,那么只要 50原创 2021-09-23 21:28:42 · 293 阅读 · 0 评论 -
【图论】最优乘车(最短路变形)
一、题面例题链接:Acwing 最优乘车H 城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到 H 城旅游,他很想去 S 公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达 S 公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士,这样换乘几次后到达 S 公园。现在用整数 1,2,…N 给 H原创 2021-09-22 21:35:35 · 355 阅读 · 0 评论 -
【数据结构】可以逃课其它字符串算法的字符串哈希算法
一、例题引入Acwing 字符串哈希给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数 n 和 m,表示字符串长度和询问次数。第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字原创 2021-09-17 14:19:01 · 222 阅读 · 0 评论 -
【数据结构】堆的手动模拟实现
例题链接:Acwing 模拟堆维护一个集合,初始时集合为空,支持如下几种操作:I x,插入一个数 x;PM,输出当前集合中的最小值;DM,删除当前集合中的最小值(数据保证此时的最小值唯一);D k,删除第 k 个插入的数;C k x,修改第 k 个插入的数,将其变为 x;现在要进行 N 次操作,对于所有第 2 个操作,输出当前集合的最小值。输入格式第一行包含整数 N。接下来 N 行,每行包含一个操作指令,操作指令为 I x,PM,DM,D k 或 C k x 中的一种。输出格式原创 2021-09-14 22:23:57 · 274 阅读 · 1 评论 -
【解题报告】Jury Meeting (9.8CF div2)
解题报告知识点总结题面思路正确代码知识点总结排列组合思维乘法取模题面题目链接:Jury Meeting (9.8CF div2)C. Jury Meetingn people gathered to hold a jury meeting of the upcoming competition, the i-th member of the jury came up with ai tasks, which they want to share with each other.原创 2021-09-09 09:06:07 · 487 阅读 · 0 评论 -
【解题报告】表达式求值(栈,表达式树)
题目链接:Acwing 表达式求值题面给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。注意:数据保证给定的表达式合法。题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现。题目保证表达式中所有数字均为正整数。题目保证表达式在中间计算过程以及结果中,均不超过 231−1。题目中的整除是指向 0 取整,也就是说对于大于 0 的结果向下取整,例如 5/3=1,对于小原创 2021-09-07 21:52:10 · 186 阅读 · 0 评论 -
C++生成题目样例文件的代码
//#pragma GCC optimize(2)#include<iostream>#include<iomanip>#include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<queue>#include<vector>#include<map>#include<stack>原创 2021-08-23 13:36:30 · 553 阅读 · 0 评论 -
【解题报告】图论基础练习(一)
涉及知识点1.拓扑排序2.Dijkstra求最短路3.Dijkstra变形4.Bellman_Ford算法题目1.拓扑排序描述由于今天上课的老师讲的特别无聊,小Hi和小Ho偷偷地聊了起来。小Ho:小Hi,你这学期有选什么课么?小Hi:挺多的,比如XXX1,XXX2还有XXX3。本来想选YYY2的,但是好像没有先选过YYY1,不能选YYY2。小Ho:先修课程真是个麻烦的东西呢。小Hi:没错呢。好多课程都有先修课程,每次选课之前都得先查查有没有先修。教务公布的先修课程记录都是好多原创 2021-07-29 16:58:35 · 230 阅读 · 0 评论 -
【动态规划】数位DP入门题:不要62
题目链接:LibreOJ 不要62解题思路:数位dp入门题目,数位dp是存在有模板的,可以通过一道题来领悟数位dp的思路。详细分析将放在代码中解释。//#pragma GCC optimize(2)#include<iostream>#include<iomanip>#include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<原创 2021-07-23 11:24:38 · 256 阅读 · 0 评论 -
【解题报告】动态规划进阶题(区间DP、树形DP、状压DP入门)
南华大学20级ACM队进阶动态规划练习解题报告1.石子合并(区间DP)题目链接:Acwing 石子合并题目分析:最后合并的石子堆的最优解可以分解为求合并前两堆石子的最优解,母问题可以被分解为子问题解决,因此可以选择DP解决//#pragma GCC optimize(2)#include<iostream>#include<iomanip>#include<cstdio>#include<string>#include<algorith原创 2021-07-20 20:46:42 · 233 阅读 · 0 评论 -
南华大学ACM队2021年7.14训练赛题解
总结:本次训练赛考到的算法较少,大多为模拟题和思维题。但是也是有些地方值得去反思与总结。A题-Binarize It题目描述 Professor Boolando can only think in binary, or more specifically, in powers of 2. He converts any number you give him to the smallest power of 2 that is equal to or greater than your numbe原创 2021-07-14 20:47:22 · 2967 阅读 · 0 评论 -
【题解专栏】南华大学19级软卓选拔赛题解
首先把去年的官方题解摆在这里大家可以看看19软卓选拔官方题解在我的题解里,我会把除了C题的代码进行力所能及的逐句分析,C题实在是到了现在也还没有想清楚…软卓选拔A 涛哥补足精神软卓选拔A这题没有考什么算法,就是一道考基础的模拟题,但是题意的确有些绕。写出这题还是需要比较扎实的c++基本功的#include<iostream>#define ll long longusing namespace std;int main(){ ll t = 0;//根据题意,有10%的数据原创 2021-04-21 18:56:16 · 2382 阅读 · 5 评论