自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACM-ICPC 现役(铜牌) Codeforces Rating: 2172

佛系考研人(考完之后再陆续更新...)

  • 博客(37)
  • 收藏
  • 关注

转载 树状数组 数据结构详解与模板(可能是最详细的了)

树状数组基础高级操作本文转载自:https://bestsort.cn/2019/04/26/195/树状数组是一个查询和修改复杂度都为log(n)的数据结构。主要用于数组的单点修改&&区间求和. 另外一个拥有类似功能的是线段树. 具体区别和联系如下: 1.两者在复杂度上同级, 但是树状数组的常数明显优于线段树, 其编程复杂度也远小于线段树. 2.树状数组的作用被线段树完全涵盖, 凡是可以使用树状数组解决的问题, 使用线段树一定可以解决, 但是线段树能够解决的问题树状数组未必能够解决.

2020-10-30 20:04:25 312 1

原创 Leetcode 贪心专题周 (内附C++及Java代码)

Leetcode 贪心专题周455.分发饼干C++代码Java代码455.分发饼干贪心算法:问题:二分图最大匹配涉及算法:匈牙利算法 时间复杂度是:O(n×m)O(n × m)O(n×m)题意:nnn 个小朋友 mmm 个饼干gig_igi​ :小朋友希望得到饼干的最小尺寸,小朋友比较傲娇,如果没达到最小尺寸就不要sis_isi​ :每个饼干的尺寸问最多能满足多少个小朋友的要求?虽说是贪心算法,但是也是属于纯思维能解决的题目。解决思路:应该满足更多的小朋友,所以我们应该选择 gig

2020-10-28 16:16:43 238

原创 Leetcode刷题 week 2

Leetcode刷题 week 2367.有效的完全平方数C++代码Java代码371.两整数之和C++代码Java代码374.猜数字大小C++代码383.赎金信C++代码387.字符串中的第一个唯一字符C++代码Java代码389.找不同C++代码Java代码392.判断子序列C++代码Java代码Leetcode 总题单:https://blog.csdn.net/m0_46272108/article/details/109269407367.有效的完全平方数本体的思想:查找1~num,那么

2020-10-26 23:56:31 316

原创 Leetcode 二叉树专题周

Leetcode 105.从前序与中序遍历序列构造二叉树(图文详解)本题思想:给出前序遍历和中序遍历前序遍历的顺序是: 根节点 —— 左子树 —— 右子树中序遍历的顺序是: 左子树 —— 根节点 —— 右子树这道题用递归思想(代码中会有详细的解释):通过前序遍历 得到根节点(第一个数)在中序遍历中找到 根节点此时中序遍历的根节点左边就是左子树,右边就是右子树继续递归寻找剩下的。例子:那么此时:9为左子树,20,15,7为右子树右子树还需要继续找该右子树的根节点,思路跟刚开始一

2020-10-25 02:30:36 172

原创 Leetcode 题单 (图文详解)内附C++ 和 Java代码

Leetcode 题单简单中等困难简单中等105.从前序与中序遍历序列构造二叉树困难

2020-10-25 01:58:05 160

原创 Codeforces #676 (Div. 2) A~D (图文详解)

Codeforces #676 (Div. 2) A~D (图文详解)Codeforces #676 (Div. 2) A. XORwice (思维)Codeforces #676 (Div.2)B.Putting Bricks in the Wall (待更新)Codeforces #676 (Div. 2) C. Palindromifier (思维)Codeforces #676 (Div. 2) D. Hexagons

2020-10-24 10:39:45 160

原创 Codeforces #676 (Div. 2) A. XORwice (思维)

Codeforces #676 (Div. 2) A. XORwice (思维)题目链接:https://codeforces.ml/contest/1421/problem/A其实直接就 a ^ b 就可以了至于为什么?请看下图:????????????#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#incl

2020-10-23 23:28:17 139

原创 Codeforces #676 (Div. 2) D. Hexagons

Codeforces #676 (Div. 2) D. Hexagons题目链接:https://codeforces.ml/contest/1421/problem/D题意:走到目的地,要求消耗最小。第一行输入要输入的例子的个数,第二行输入目的地的坐标(y,x)(个人习惯,横着增加的是x,竖着增加的是y)第三行输入六个方向的消耗求走过的路消耗最少。下面以 (-3, 1) 为例子讲一下过程。从(0, 0) 走到 (-3, 1) 可以通过走 C3C_3C3​ + C5C_5C5​ 或者 C

2020-10-23 23:03:55 146

原创 Codeforces #676 (Div. 2) C. Palindromifier (思维)

@[TOC](Codeforces #676 (Div. 2) C. Palindromifier (思维))题目链接:https://codeforces.ml/contest/1421/problem/C题意:给定一个字符串,可以通过L或者R操作,将该字符串变成一个回文字符串。乍一看,好复杂,再细看这句话。It is guaranteed that under these constraints there always is a solution. Also note you do not

2020-10-23 21:52:00 157

原创 蓝桥杯 七段码 枚举所有情况 80种

tot = 7 + 10 + 16 + 20 + 19 + 7 + 1 = 80

2020-10-19 11:50:15 4863 9

原创 Leetcode (贪心)452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以 yyy 坐标并不重要,因此只要知道开始和结束的 xxx 坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在 104104104 个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xendxstart,xendxstart,xend, 且满足 xstart≤x≤xendxstar

2020-10-16 01:15:36 143

原创 Leetcode (贪心) 406. 根据身高重建队列

根据身高重建队列假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]题解:时间复杂度 O(n2)O(n^2)O(n2)先按身高从大到小排序.

2020-10-13 12:52:24 171

原创 爪哇部落 新生选拔赛 2020

爪哇部落 新生选拔赛 20201.A sort problem2.Travel3.小爪喜欢的那个女孩4.小爪的数学游戏5.小爪的数字识别算法6.小爪的长皮带7.小爪博弈8.javatribe9.小爪的几何10.小爪的珠宝选择(线段树简单题)11.小爪的数学猜想12.小爪的签到题1.A sort problem2.Travel3.小爪喜欢的那个女孩4.小爪的数学游戏Description小爪常常因为数学太菜而无法做题,又在学数学了。这次是以游戏的形式。在游戏的开始,小爪会得到一个数N(0<

2020-10-12 19:47:59 385

原创 [kuangbin带你飞] 算法小白 —— 进阶之路 (连载ing)

[kuangbin带你飞] 算法小白 —— 进阶之路week1 【kuangbin带你飞】 题单 简单搜索 (连载ing)

2020-10-09 17:05:15 141

原创 week 3 [kuangbin带你飞] 题单 最小生成树 + 线段树

week 3 [kuangbin带你飞] 题单 最小生成树 + 线段树最小生成树知识点模板题线段树知识点模板题最小生成树知识点图论 —— 最小生成树(朴素Prim原理及模板题)模板题1.kuangbin 最小生成树专题 - POJ - 1287 Networking (朴素 Prim算法 模板题)2.kuangbin 最小生成树专题 - POJ - 1251 Jungle Roads (Kruskal算法 模板题)3.kuangbin 最小生成树专题 - POJ - 2421 Construc

2020-10-09 16:05:45 256

原创 kuangbin 线段树 - POJ - 3264 Balanced Lineup (线段树单点修改模板题)

kuangbin 线段树 - POJ - 3264 Balanced Lineup (线段树单点修改模板题)Descriptions:For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows.

2020-10-08 14:01:04 152

原创 kuangbin 线段树 - HDU - 1754 I Hate It (线段树单点修改模板题)

kuangbin 线段树 - HDU - 1754 I Hate It (线段树单点修改模板题)很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000),分别

2020-10-08 13:46:22 137

原创 kuangbin 线段树 - HDU - 1166 敌兵布阵 (线段树单点修改模板题)

kuangbin 线段树 - HDU - 1166 敌兵布阵 (线段树单点修改模板题)C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Der

2020-10-08 13:00:26 145

原创 数据结构 —— 线段树基本操作

线段树概念线段树的作用线段树的储存解题步骤定义由子节点的信息来计算父节点的信息:pushup()由子节点的信息来计算父节点的信息:pushdown()pushdown 待更新 ……建树:build()查询:query()单点修改 modify()区间修改 (待更新……)模板题 (HDU 1166)AC代码概念线段树的概念:线段树的本质是一种二叉树。将每个区间[L,R][L, R][L,R]分解成 [L,Mid][L, Mid][L,Mid] 和 [Mid+1,R][ Mid + 1, R][Mid+

2020-10-07 22:22:24 396

原创 kuangbin 并查集 - HDU - 1213 How Many Tables(并查集简单题)

kuangbin 并查集 - HDU - 1213 How Many Tables(并查集简单题)小明今天请吃饭. 他邀请了很多朋友。现在该吃饭了。小明想知道她至少需要多少张桌子。但是不是所有的人都互相认识,所有的人都不想和陌生人坐在一起。但是如果A认识B, B认识C,那A, B, C就假装认识,所以他们就可以在一张桌子上吃饭。如果A知道B, B知道C, D知道E,那么A、B、C可以留在一起,而D、E必须在另一张桌子吃饭。至少需要两张桌子。Input输入以一个整数T(1<=T<=25

2020-10-06 16:08:31 311

原创 kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题)

kuangbin 最小生成树专题 - ZOJ - 1586 QS Network (朴素 Prim算法 模板题)Description想用路由器把N个地方连接起来,给定N个路由器安装点,接下来的N个数字表示在某地安装一个路由器的费用。再接下来N*N的矩阵表示两地进行连接时的花费。每个路由器只能用一次,例如在AB之间连接了,就需要分别在A和B购买一个路由器,然后再把他们连起来,然后再想在AC之间连接,A就必须要再买一个路由器,不能重复使用同一个路由器,求他们的最小花费InputT组输入。输入N代表需要

2020-10-06 15:03:29 151

原创 kuangbin 最小生成树专题 - POJ - 2421 Constructing Roads (朴素 Prim算法 模板题)

kuangbin 最小生成树专题 - POJ - 2421 Constructing Roads (朴素 Prim算法 模板题)英文版 Click here ~~意译版 Click here ~~英文版 Click here ~~DescriptionThere are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect

2020-10-06 13:23:03 163

原创 kuangbin 最小生成树专题 - POJ - 1251 Jungle Roads (Kruskal算法 模板题)

Kruskal算法附上模板Kruskal算法(稀疏图)基本思路:① 将所有边按权重从小到大排序 时间复杂度 O(mlogm)O(mlogm)O(mlogm)② (并查集思想)枚举每条边 u — v,权重是w。如果u,v不连通,将这条边加到集合中只需要存边即可,不需要存邻接矩阵和邻接表附上模板int n, m; // n是点数,m是边数int p[N]; // 并查集的父节点数组struct Edge // 存储边{ int a, b, w;

2020-10-06 11:13:27 241 4

原创 kuangbin 最小生成树专题 - POJ - 1287 Networking (朴素 Prim算法 模板题)

Networking POJ - 1287 英文版 Click here ~~意译版 Click here ~~英文版 Click here ~~DescriptionYou 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 set of possible routes for the cab

2020-10-05 17:32:37 195

原创 图论 —— 最小生成树(朴素Prim原理及模板题)

最小生成树模板题以模板题为例子解释AC代码:(代码有详细的注释!)模板题给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。输入格式第一行包含两个整数n和m。接下

2020-10-05 16:11:52 2186 7

原创 week2 [kuangbin带你飞] 题单 最短路问题 + 并查集问题

week2 kuangbin 题单 最短路问题 + 并查集问题并查集最短路并查集1.kuangbin 并查集 - POJ - 2236 Wireless Network (并查集简单题)2.kuangbin 并查集 - POJ - 1611 The Suspects (并查集模板题)3.kuangbin 并查集 - POJ - 1182 食物链4.kuangbin 并查集 - POJ - 1733 Parity game (带权并查集 + 离散化)最短路1.kuangbin 最短路专题 -

2020-10-04 21:53:56 1934

原创 kuangbin 并查集 - POJ - 1733 Parity game (带权并查集 + 离散化)

题意: 套利是利用货币汇率的差异进行的货币转换,例如用1美元购买0.5英镑,1英镑可以购买10法郎,一法郎可以购买0.21美元,所以0.5 × 10 × 0.21 = 1.05,从中获利百分之五,所以需要编写一个程序,在进行完转换之后能不能获利,如果能就输出Yes,反之No;...

2020-10-04 21:47:51 178

原创 kuangbin 最短路专题 - POJ - 2240 Arbitrage (最短路 Floyd算法)

kuangbin 最短路专题 - POJ - 2240 Arbitrage (最短路 Floyd算法)Floyd原理推荐可以看看这篇:https://blog.csdn.net/m0_46272108/article/details/108919125感觉没什么好讲的。理解Floyd算法就可以了…这道题是:判断图中是否存在变大环#include<cstdio>#include<iostream>#include<cstring>#include<

2020-10-04 20:25:37 321 1

原创 kuangbin 最短路专题 - POJ - 3259 Wormholes (最短路 Floyd算法)

kuangbin 最短路专题 - POJ - 3259 Wormholes (最短路 Floyd算法)Floyd原理推荐可以看看这篇:https://blog.csdn.net/m0_46272108/article/details/108919125#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include&

2020-10-04 15:14:57 168

转载 Floyd (弗洛伊德算法)转载

简介:Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。eg:暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费及方便计划旅程,小哼希望在出发前知道任意两个城市之间的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路

2020-10-04 15:13:02 19599 2

原创 图论 —— 最短路问题

常见的最短路问题有哪些?源点: 起点 汇点: 终点边权: 离散数学或数据结构中,图的每条边上带的一个数值,他代表的含义可以是长度等等,这个值就是边权。1.单源最短路 (只有一个起点)求从一个点到其他所有点的最短距离,最常见的一个问题:从1号点到n号点的最短路(1) 所有边权都是正数 (其中n为点的数量,m为边的数量)朴素 Dijkstra 算法 时间复杂度 O(n^2) (如果是一个稠密图(存储用邻接矩阵),例如 m 和 n^2 是一个级别的就用朴素 Dijkstra 算法)

2020-10-04 14:12:05 507

原创 Leetcode刷题 week 1

回文链表请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 解法1:动态数组 + 双指针思想 时间复杂度O(n),空间复杂度O(n) class Solution { public: bool i.

2020-10-04 13:57:48 149

原创 kuangbin 最短路专题 - POJ - 1797 Heavy Transportation(最短路 Dijkstra 算法)

kuangbin 最短路专题 - POJ - 1797 Heavy Transportation (最短路 Dijkstra 算法)题意: N个点,M条边,每条边有权值。求一条1号点到N号点的路径,要求使得路径中的边权最小值最大。题解: 最短路问题 Dijkstra算法 详看代码,有注释!!!#include<cstdio>#include<iostream>#include<cstring>#include<string>#include&

2020-10-03 21:13:32 183

原创 kuangbin 最短路专题 - POJ - 2387 Til the Cows Come Home (最短路 Dijkstra 算法)

kuangbin 最短路专题 - POJ - 2387 Til the Cows Come Home (最短路 Dijkstra 算法)代码注释很详细,典型的Dijkstra问题,注意细节,看注释。#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<algorithm>#include &

2020-10-03 21:00:57 142

原创 kuangbin 并查集 - POJ - 2236 Wireless Network (并查集简单题)

kuangbin 并查集 - POJ - 2236 Wireless Network (并查集简单题)题意: 有一个计算机网络的所有线路都坏了,网络中有n台计算机,现在你可以做两种操作,修理(O)和检测两台计算机是否连通(S),只有修理好的计算机才能连通。连通有个规则,两台计算机的距离不能超过给定的最大距离D(一开始会给你n台计算机的坐标)。检测的时候输出两台计算机是否能连通。题解: (详情请看代码~~~ ,代码注释写的真的很详细了。)对并查集不太了解原理的可以看看:https://blog.c

2020-10-03 14:16:47 186

转载 并查集详解 ——图文解说,简单易懂(转载)

并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,HDU1232 畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,

2020-10-02 20:19:52 228

转载 (迪杰斯特拉)Dijkstra算法详细讲解(转载)

迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止基本思想通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)。初始时,S中只有起点s;U中是除s之外的顶点,并且U中顶点的路径是”起点s到该顶点的路

2020-10-02 19:59:25 3288 1

空空如也

空空如也

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

TA关注的人

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