自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Codeforces Round #607 (Div. 2) (A ~ C)

个人赛

2022-09-05 17:59:04 174 1

原创 Codeforces Round #606 (Div. 2) A ~ C

个人赛

2022-09-01 17:19:49 131

原创 Acwing 秋招每日一题 & LeetCode 641. 设计循环双端队列

每日一题

2022-08-16 00:34:40 223

原创 AcWing 秋招每日一题 & LeetCode 768. 最多能完成排序的块 II

思维题:哈希 | 单调栈

2022-08-15 17:23:28 172

原创 Codeforces Round #763 (Div. 2)(A-C)

Codeforces

2022-07-06 16:50:54 118

原创 Bellman_Ford 算法 | POJ 3259 虫洞(Bellman-Ford算法 · 板子题)

需求对于解决单源最短路的问题,Dijkstra 是一个很好的方法,但是解决不了对于含有负权图的问题,所以 Bellman_Ford 算法就可以完美的解决这个问题。个人思考学完 Dijkstra 算法后,再学习Bellman_Ford算法的时候,是有点懵的,因为对于这个过程了解的不是很清楚,再加上学完之后做的题目的问题更是让我栓Q了,今天总算是基本明白了。核心代码对于一条边a -> b,边权为wfor(k = 1; k <= n - 1; k++) for(i = 1; i &

2022-05-19 19:50:47 591 2

原创 Acwing - 每日一题 - 重新排列奶牛

题目思路其实可以看成 n 个点炼成一个环 5 -> 1 -> 2 -> 5,有多少个连通块,然后最长的连通块的个数,连接每个点可以用并查集来实现AC code#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 110;int n;int a[N], b[N];int p[N];// 存储每个点的

2022-04-25 21:48:45 87 1

原创 D - Coprime 2「质因数分解」「思维」

题目给出 n 个数和 m ,问0 ~ m 中,有多少是和给出的这n个数互质。思路可以把 n 个数的所有的质因数分解,然后存到数组里,然后用筛质数的方式把所有的数打表出来,然后循环一遍1 ~ m,如果没有标记的话,就说明当前的数与给出的 n 个数都互质,符合题意AC code#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include <al

2022-04-22 20:36:28 120

原创 ABC 217 E - Sorting Queries ( 优先队列 + 思维 )

题意:三种操作:在 A 序列的末尾添加一个元素 X输出 A 中第一个元素并删除对 A 序列进行排序思路首先,我们可以想到可以使用优先队列,但是不能只用优先队列,我们不能加入一个元素就直接压到优先队列里面去。我们可以用数组模拟一个普通的队列,hh 表示队头,tt 表示队尾可以进行一下操作:一开始先将元素加入到普通的队列中,当我们收到的操作是排序的话,我们就将所有的元素全部压到优先队列里面,然后清空我们的普通队列,令hh = tt = 0;当我们排序之后我们收到删除第一个元素的操作之后

2022-04-14 20:57:40 131

原创 Acwing | 搜索与图论:DFS

题目排列数字题目内容给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数 n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1 ≤ n ≤ 7输入样例3输出样例1 2 31 3 22 1 32 3 13 1 23 2 1思路最重要的就是其中递归的过程path[i] 表示当前位 i 所要填的数字sta[i] 表示数字 i 是否已经使用过代码:#in

2022-03-07 21:58:55 84

原创 Acwing | 忽略大小写比较字符串大小

题目思想将其中的大写字母全部变成小写字母,或者是小写全部变成大写,再进行字符串的比较。tolower() -> 将大写变小写toupper() -> 将小写变大写Ac code:#include <iostream>#include <algorithm>using namespace std;int main(){ int flag = 0; string a,b; getline(cin,a); g

2022-03-06 18:45:57 132

原创 【完全背包】及其优化

完全背包状态表示dp[i][j]:前 i 个物品,背包容量 j 下的最优解(最大价值)完全背包和基本的d0 - 1背包不同的是,每一件物品可以无限拿,那么最基本的做法就是在0-1背包算法的基础上加一层物品数量的循环,但是这种做法会 TLE ,非常d疼。题目输入4 51 22 43 44 5输出10朴素代码(TLE)#include <iostream>#include <algorithm>using namespace std;const i

2021-12-02 20:09:18 314

原创 基本0 - 1背包问题

基本0 - 1 背包状态表示dp[i][j]:前i个物品,背包容量j下的最优解(最大价值)对于基本01背包,我们主要的问题就是拿或 不拿如果不能拿,那么就将上一状态转移到当前状态dp[i][j] = dp[i - 1][j]如果可以拿,我们就要比较拿或者是不拿哪一种价值最高不拿当前物品dp[i][j] = dp[i - 1][j]拿当前物品dp[i][j] = dp[i - 1][j - w[i]] + v[i]不拿当前物品,那么当前状态是上一状态的转移拿当前物品,我们只要确定

2021-12-02 15:52:07 336

原创 codeforces161D. Distance in Tree(树形DP)

题目题意给一个结点为 N 的树,两点的距离为 1,求有多少个结点的距离为 K。思路这是一道树形dp的题目,就是在一课树上进行dp状态表示`dp[i][j] 表示对于结点 i 的子结点而言,距离结点 i 距离为 j 的结点的个数。就比如拿这个树而言,dp[1][0]=1,意思就是距离结点1,长度为 0 的点只有自己,dp[1][1]=2 就是距离结点1,长度为1的点,有 2、3这两个结点,这就是dp数组的含义状态转移接下来就是状态转移,既然是动态规划,那么就要列出状态方程,在当我们进行d

2021-10-29 17:55:17 231

原创 没有上司的舞会(树形dp)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-26 15:09:16 120

原创 C. Delete Two Elements

题目连接题目:大意:给了一堆整数,然后求出其平均值,然后在其中去除两个数,然后使这一堆数的平均值不变。思路:假设平均值为 k ,可以分为三种情况:找不到两个数,使去掉这两个数之后使 k 不变;找到两个数。通过题意,我们可以得知,平均值 k 要么是 .5,要么是整数,因为给出的数组是整数,所以 选择两个数加起来之后(假设能选择的情况下)除于 2,要么是一半,要么是整数。所以应该选择几对符合条件的数...

2021-10-22 19:12:28 514

原创 P1886 滑动窗口 /【模板】单调队列

传送门方法:单调队列所用到的:// hh 表示队首,tt表示队尾int hh=0,tt=-1;//用数组来模拟队列int q[N],a[i];思路:其实简单来说,就是来维护队首元素。就拿求最小值来时,当我们每一次将当前元素压入队列的时候,我们就要进行判断,如果队尾元素 > a[i] 的时候,我们就应该弹出当前队尾元素,对于数组而言 即 tt--,因为我们要保证队首为当前窗口的最小值。当然,每一次压入元素的时候,都要判断一下,队首即最小值是不是为当前窗口所属的区间。拿一个

2021-08-26 00:06:33 68

原创 【B. Blocks】 CodeForces - 1271B

B.Blocks题意:就是给你一个字符串,例如:BWWWWWWB,W 表示白色, B 表示蓝色,然后经过几次操作之后,可以让这些变为同一颜色,所不能的话,输出 -1 ,若能的话,先输出操作的次数,接着输出所操作的字符下标。只能将相邻位置和当前位置进行变色,如果是 WB 可以变成 BW,如果是 BB 话,可以变成 WW 。思路:有三种情况:当白色和蓝色的数量都是奇数时,无论怎么操作,都不能变成同一颜色,输出 - 1;当一种颜色的数量为 0 的时候,表示不需要操作;当这两种颜色的数量一个为偶

2021-08-24 22:48:17 452

原创 Potions CodeForces - 1526C1/1526C2(优先队列)

Potions(Easy Version)Potions(Hard Version)题意:从左往右喝药,在保证自己的生命值hp>0的情况下,尽可能喝更多的药思路:碰到加hp的,就可以喝掉,碰到减hp的,先将其绝对值压到降序优先队列里,因为碰到减hp值的药,喝了自己的hp不一定小于0;当自己的hp小于0的时候,我们应该想到,应该把毒性最强的吐出来,不喝这一瓶,也就是将优先队列拿出来一个最大值,让自己的hp加上这个最大值,就相当于没有喝这一瓶最毒的药,这也是一种贪心的思想,因为我们碰到让自己

2021-08-19 00:37:50 203

原创 【Codeforces Round #723 (Div. 2)】- I Hate 1111

题目:I Hate 1111 题意:给你一个数,问你是不是由 11,111,1111……构成,其中每一个数都可以用无限次思路:其实每个符合题意数都是可以由 11 和 111 这两个数所构成。例如:11 = 11 * 1 + 111 * 0;111 = 11 * 0 +111 * 1;1111 = 11 * 101 + 111 * 0;11111 = 11 * 1 + 111 * 100 ;……题目给出的样例:33 = 11 * 3 + 111 * 0;144 = 11 * 3

2021-08-18 19:39:55 298

转载 前缀和与差分 图文并茂 超级详细整理

转载至:https://blog.csdn.net/weixin_45629285/article/details/111146240前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。前缀和: 前缀和算法有什么好处? 先来了解这样一个问题: 输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。 我们很容易想出暴力解

2021-08-16 09:00:13 162

原创 归并排序(比较详细)

归并顺序归并排序:简单来说就是将一个数组分为二分很多个小区间,然后这些小区间合并起来,就会达到排序的过程;例如: int q[4]={3,1,4,2};然后(3,1)为一组,(4,2)为一组;将这两个小区间分别排序,(1,3),(2,4)。分别从两个小区间第一个开始,左1小于右1,将左1放到第一个数组。然后右1不动,和左2进行比较,左2小于右1,将左2放到数组。之后再将右边的数组依次全部放到数组中(因为右边的已经排好了序);归并模板:int q[N],temp[N];

2021-08-11 23:54:51 107

转载 POJ1151 Atlantis(线段树,扫描线,离散化,矩形面积并)

题目:There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe different regions of Atlantis. Your friend Bill has to k

2021-08-08 15:44:16 62

原创 KPI HDU - 5249【权值线段树】

KPI HDU - 5249【权值线段树】KPIProblem Description:你工作以后, KPI 就是你的全部了. 我开发了一个服务,取得了很大的知名度。数十亿的请求被推到一个大管道后同时服务从管头拉取请求。让我们来定义每个请求都有一个重要值。我的KPI是由当前管道内请求的重要值的中间值来计算。现在给你服务记录,有时我想知道当前管道内请求的重要值得中间值。Input:有大约100组数据。每组数据第一行有一个n(1≤n≤10000),代表服务记录数。接下来有n行,每一行有3种形式“

2021-08-06 20:41:38 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除