算法题
在实验室刷过的题
EP Fitwin
我必须承认 生命中大部分时光是属于孤独的, 努力成长 是在孤独里可以进行的最好的游戏。
展开
-
【算法】搜索专题狂练,内附题单
蓝桥杯、PAT 搜索类题目专练,内附题单原创 2021-04-07 20:23:31 · 285 阅读 · 0 评论 -
AcW 845 八数码 【BFS、queue、unordered_map】
#include <iostream>#include <set>#include <map>#include <queue>#include <vector>#include <cmath>#include <cstring>#include <algorithm>#include <unordered_map>#define inf 0x3f3f3f3fusing namesp原创 2021-03-15 16:26:05 · 164 阅读 · 2 评论 -
算法竞赛中常用的 C++ STL,有这一篇就够了
本文整理了常用到的C++ STL,个人感觉有其中的一部分就够用了。当然要想更好的 A 题,还需要对知识的熟练掌握和灵活运用。现整理如下:// size和empty是所有容器都有的方法 size() 返回元素个数 empty() 返回是否为空Tips:系统为某一程序分配空间时,所需时间与空间大小无关,而与分配次数有关。vectorvector// 变长数组,自动增长 // 定义 一个长度为10的vector 每一个值为-3 vector<int>原创 2021-03-08 20:51:24 · 1436 阅读 · 0 评论 -
CCF模拟题库: 201803-2
试题编号:201803-2 试题名称:碰撞的小球 时间限制:1.0s 内存限制:256.0MB 问题描述:问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为...原创 2019-09-08 12:03:56 · 138 阅读 · 0 评论 -
CCF模拟题库:201809-2
试题名称: 买菜时间限制: 1.0s内存限制: 256.0MB问题描述小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]…[cn,dn]...原创 2019-09-07 20:21:30 · 234 阅读 · 0 评论 -
差分:最高的牛详解
题目描述:有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。 当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。 但是,我们还知道这群牛之中存在着 M对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。 求每头牛的身高的最大可能值是多少。输入格式:第一行输入整数N,P,...原创 2020-03-31 19:10:24 · 530 阅读 · 0 评论 -
前缀和算法精讲
一维前缀和:适用题型:对于长度为 n 的序列,进行 m 次询问,每次查询区间 [L, R] 之间的数的和,朴素做法的复杂度为 n * m,而使用前缀和就将复杂度将为了 m 。已知a[1], a[2], ..., a[i] 则前缀和数组 s[1] = a[1], s[2] = s[1] + a[2], s[i] = s[i-1] + a[i] (规定s[0] = 0)那么,对于每次询问,s...原创 2020-03-31 10:41:14 · 313 阅读 · 0 评论 -
Hdoj 3746 Cyclic Nacklace、KMP:【题解】
Cyclic NacklaceTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem DescriptionCC always becomes very depressed at the end of this month, he has checked his cr...原创 2019-07-31 16:32:12 · 205 阅读 · 0 评论 -
Hdu1358 Period、KMP、循环节:【题解】
PeriodTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 KProblem DescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and ...原创 2019-07-31 16:09:19 · 178 阅读 · 0 评论 -
Hdoj 1711 Number Sequence、KMP:【题解】
Number SequenceTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 50957 Accepted Submission(s): 20470Problem DescriptionGiven two sequences...原创 2019-07-31 15:00:04 · 142 阅读 · 0 评论 -
Hdoj 1686 Oulipo、KMP:【题解】
OulipoTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29736 Accepted Submission(s): 11376Problem DescriptionThe French author Georges Per...原创 2019-07-30 21:44:05 · 171 阅读 · 0 评论 -
CodeForces - 518A Vitaly and Strings、思维、模拟:【题解】
问题描述维塔利是一个勤奋的学生,在大学阶段,他从来没有逃过一堂课。他总是按时做作业,并顺利通过考试。在最后一节课,老师给了他两个字符串s和t。这两个字符串的长度相同,由小写英文字母组成,字符串s的字典序比串t小。维塔利想知道是否有这样的字符串:字典序比字符串s大,同时字典序小于串t。此字符串也应包括小写英文字母和相同的长度。让我们帮维塔利解决这个简单的问题!Input第一行包含字符串s(...原创 2019-08-29 20:52:06 · 308 阅读 · 0 评论 -
CodeForces - 840A Leha and Function、:【题解】
Leha and FunctionProblem DescriptionLeha like all kinds of strange things. Recently he liked the function F(n, k). Consider all possible k-element subsets of the set [1, 2, …, n]. For subset find mi...原创 2019-08-11 19:15:36 · 201 阅读 · 0 评论 -
Codeforces 1016B Segment Occurrences、KMP:【题解】
Segment Occurrencestime limit per test2 secondsmemory limit per test256 megabytesProblem descripYou are given two strings s and t, both consisting only of lowercase Latin letters.The substring s[...原创 2019-07-31 16:48:23 · 265 阅读 · 0 评论 -
CodeForces 1029A Many Equal Substrings、KMP:【题解】
Many Equal Substringstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputProblem DescriptionYou are given a string tnkLet’s define a substring o...原创 2019-07-31 14:46:15 · 189 阅读 · 0 评论 -
Poj 2777 Count Color、线段树、延迟标记、区间着色:【题解】
Count ColorTime Limit: 1000MS Memory Limit: 65536KDescriptionChosen Problem Solving and Program design as an optional course, you are required to solve all kinds of problems. Here, we get a new pr...原创 2019-08-19 10:04:39 · 260 阅读 · 0 评论 -
线段树模板知识整理(懒标记、结构体)
一套适合自己风格的线段树模板整理经过一天半的煎熬,刚开始头疼的不行,实在想不通,到现在线段树终于像是入坑了,在网上找了好多资料,终于能结合人家的写一套适合我风格的模板。现在来记录下我的一些理解和代码,在以后含糊的时候返回来看看。推荐视频:b站 正月点灯笼 思路很容易理解,但代码难模仿,SWPU-ACM的代码还是容易模仿的。还有强大的CSDN上有很多详细的讲解。我的代码主要时使用一个结构体代表树...原创 2019-08-17 14:39:23 · 419 阅读 · 0 评论 -
Poj 1611 The Suspects、并查集:【题解】
The SuspectsTime Limit: 1000MS Memory Limit: 20000KDescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2...原创 2019-08-15 11:24:07 · 199 阅读 · 0 评论 -
Hdoj 1232 畅通工程、并查集、入门:【题解】
畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通...原创 2019-08-09 21:28:02 · 390 阅读 · 0 评论 -
POJ 3268 Silver Cow Party dijkstra最短路
POJ 3268 Silver Cow Party题目大意:每个农场有一只奶牛,所有奶牛都要去指定的一个农场X中聚会,聚会结束后各自回自己的农场,求所有的奶牛出门参加聚会再回到家中的最短用时,即求出耗时最长的奶牛的时间具体思路:最短路求解,先求x到各个农场的时间,再将各边反向,**再求一次x到各个农场的时间。**将两个时间相加,最小的时间即为所求我本来还傻傻的跑了N遍,以求出每个点对其他点的最短路,看了题解才发现有这样神奇的思路。求图中所有点到指定点的最短距离可以转化为求指定点到所有点的最短距原创 2020-10-03 09:46:15 · 151 阅读 · 0 评论 -
Poj 2387 Til the Cows Come Home、dijkstra入门:【题解】
Til the Cows Come HomeTime Limit: 1000MS Memory Limit: 65536KDescriptionBessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her f...原创 2019-08-09 21:50:52 · 242 阅读 · 0 评论 -
Poj 1287 Networking、最小生成树、kruskal:【题解】
NetworkingTime Limit: 1000MS Memory Limit: 10000KDescriptionYou are assigned to design network connections between certain points in a wide area. You are given a set of points in the area, and a s...原创 2019-08-14 21:30:09 · 240 阅读 · 0 评论 -
Hdoj 1233 还是畅通工程、kruskal入门题:【题解】
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即...原创 2019-08-10 11:35:35 · 201 阅读 · 0 评论 -
Hdoj 1863畅通工程、kruskal入门题:【题解】
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路...原创 2019-08-10 11:28:50 · 171 阅读 · 0 评论 -
蓝桥杯 递归:猜算式
一道比较简单的题,但是让我深深的记住了递归的板子。顺便在此回顾一下递归。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>typedef long long LL;using namespace std;const int MAXN = 1...原创 2020-03-26 21:48:29 · 312 阅读 · 0 评论 -
递归练习 数的划分
题目来源:牛客网数的划分时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5;1,5,1; 5,1,1; 问有多少种不同的分法。输入:n,k ( 6...原创 2020-03-22 12:05:50 · 217 阅读 · 0 评论 -
蓝桥杯专题一:递归
所有的递归都能转化为一颗递归搜索树,在看到题目是递归后,应该用笔分析。算法竞赛进阶指南递归实现指数型枚举递归实现排列型枚举递归实现组合型枚举原创 2020-03-12 19:57:00 · 248 阅读 · 0 评论 -
Poj 1321棋盘问题、DFS:【题解】
棋盘问题Time Limit: 1000MS Memory Limit: 10000KDescription在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空...原创 2019-08-14 21:24:32 · 133 阅读 · 0 评论 -
Hdoj 1312 Red and Black、DFS、水题:【题解】
题目描述:有一个长方形的房间,覆盖了正方形的磁砖。每块磁砖的颜色,要么是红色,要么是黑色。一名男子站在一块黑色的磁砖上。他可以从一块磁砖移至相邻四块磁砖中的某一块。但是,他不允许在红色磁砖上移动,他只允许在黑色磁砖上移动。编写一个程序,使得他允许重复上述的移动,判断他所能到达的黑色磁砖的数量。输入输入由多个数据集组成。数据集的起始行包含了两个正整数 W 和 H;W 和 H 分别是 x- 和...原创 2019-08-07 21:18:55 · 295 阅读 · 0 评论 -
Hdoj 1241 油井、DFS入门题:【题解】
Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionThe GeoSurvComp geologic survey company is responsible for detecting underground oi...原创 2019-08-07 09:45:52 · 518 阅读 · 0 评论 -
算法竞赛进阶指南 递推 飞行员兄弟
“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把...原创 2020-03-17 10:53:55 · 242 阅读 · 0 评论 -
洛谷 P1028、数的计算:【题解+分析】
由于洛谷的画风超可爱qaq,我就不往过搬砖了,显得丑,题目看原地址叭。题目链接在此这是试炼场过程函数与递归的一个简单题,而我的递推思路却没有能写出来,这方面练的太少呀,我也意识到了这可是最最基础的本领,所以还是多写题(虽然都是很水的题)emmmm。我们以6来举例:61626 ——> 12636 ——> 136对于6,左侧可写1、2、3, 形成16、26、3...原创 2019-08-20 17:52:13 · 591 阅读 · 0 评论 -
CodeForces - 520B Two Buttons、BFS、:【翻译题解】
B. Two ButtonsDescriptionVasya has found a strange device. On the front panel of a device there are: a red button, a blue button and a display showing some positive integer. After clicking the red b...原创 2019-08-29 20:17:29 · 428 阅读 · 1 评论 -
POJ 2251 Dungeon Master、BFS、三维:【题解】
Dungeon MasterTime Limit: 1000MS Memory Limit: 65536KDescriptionYou are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be...原创 2019-08-15 21:38:53 · 218 阅读 · 1 评论 -
Hdu 1495 非常可乐、BFS、模拟:【题解】
非常可乐Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyo...原创 2019-08-14 21:19:16 · 239 阅读 · 0 评论 -
Hdoj 1181 变形课、DFS:【题解】
变形课Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Problem Description呃…变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结...原创 2019-08-07 21:50:02 · 198 阅读 · 0 评论 -
Poj 3984 迷宫问题、BFS、路径回溯:【题解】
迷宫问题Time Limit: 1000MS Memory Limit: 65536KDescription定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着...原创 2019-08-07 09:09:04 · 256 阅读 · 0 评论 -
算法分析与设计实验
经典的数字旋转方阵问题,怎么解决呢?当然是递归一下,如下图,将方阵分成A,B,C,D四部分;A 部分:每次随着数字 number 的增加,行号 i 也随之增加,列号 j 保持不变,填充到二维数组 data 中;B 部分:每次随着数字 number 的增加,行号 i 保持不变,列号 j 随之增加,填充到二维数组 data 中;C 部分:每次随着数字 number 的增加,行号 i 不断递减,列号 j 保持不变,填充到二维数组 data 中;D 部分:每次随着数字 number 的增加,行号 i 保持原创 2020-11-08 15:56:17 · 404 阅读 · 0 评论 -
蓝桥杯 连号区间数:枚举
题目描述:小明这些天一直在思考这样一个奇怪而有趣的问题:在 1∼N 的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。当 N 很小的时候,小明可以很快地算出答案,但是当 N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助...原创 2020-04-13 21:22:02 · 181 阅读 · 0 评论 -
洛谷 P1012拼数(sort对string的用法)
这个题有点太水了,先来看一下题解,主要是学到了cmp函数中对于string排序的一种写法#include <iostream>#include <cstring>#include <cstdio>#include <vector>#include <algorithm>//ios::sync_with_stdio(false)...原创 2019-10-31 21:03:39 · 190 阅读 · 0 评论