- 博客(29)
- 收藏
- 关注
原创 DP学习笔记 更新中~
动态规划最优子结构:大问题的最优解可以由最小问题的最优解来推出来。注意在拆解问题时不能无限递归。无后效性:未来与过去无关。DP:1.状态表示 f(i,j) 集合(所有选法,条件(只从前i个选,总体积不超过j) ),属性( 数量,最大值,最小值 )2.状态计算 集合的划分f(i,j)不重复,不漏背包问题考虑基本形式后,再进行优化。01背包:每件物品只能用1次分析过程DP:1.状态表示 f(i,j) 集合(所有选法,条件(只从前i个选,总体积不超过j) ),属性( 数量,最大值,
2022-04-12 21:05:05 390
原创 kuangbin最短路专题
青蛙POJ2253传送门在二维平面上有 n个石头。第一个石头上有一个青蛙,第二个石头上也有一个青蛙。第一个石头上的青蛙要到第二个石头上找另一个青蛙玩耍。它可以直接跳到第二个石头上,也可以经过一系列中间石头,然后再跳到第二个石头上。这只青蛙希望,它的跳跃过程中,单次跳跃的最长距离尽可能短。请你计算并输出这个最长距离的最小可能值。输入格式输入包含多组测试数据。每组数据第一行包含一个整数 n。接下来 n行,第 i 行包含两个整数 xi,yi,表示第 i个石头的位置坐标。每组数据输入完毕后,
2022-05-29 14:06:43 237
原创 几种排序算法的代码模板
排序算法各种排序的可视化演示快速排序主要思想:分治1.确定分界点:q[l],q[r],q[l+r>>1]2.把整个区间分为两半,调整区间左边<=x,右边>=x3.递归左右两边详细的流程:从左边开始找到第一个数>x的位置i,从右边开始找到第一个数<x的位置j。交换i,j的值。不断寻找,直到i,j相遇。int q[N];// 从零开始void quick_sort(int q[], int l, int r){ if (l >= r)
2022-04-15 08:55:56 73
原创 Educational Codeforces Round 123 VP后反思
Educational Codeforces Round 123比赛地址A. Doors and Keys简单的顺序遍历#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i &
2022-02-25 11:13:13 124
原创 (ARC)A - Irreversible operation
题目描述每次操作可以选定 si B 且 si+1= W,交换它们的颜色。问最多能操作几次。本质上是求逆序对数#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r
2022-02-23 20:39:47 107
原创 八数码 启发式搜索A*/BFS
八数码题目链接:描述大佬的参考题解:题解#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PIS pair<int, string>#define rep(i, l, r) for (int i = l; i < r; i++)#define per(i, l, r) fo
2022-02-22 10:01:07 787
原创 Atcoder ABC240 赛后反思及部分题解
AtCoder Beginner Contest 240比赛链接在这强烈dls的视频讲解dls的视频讲解及解题过程A - Edge CheckerProblem StatementIn the figure shown in the image below, are the points numbereda and b directly connected by a line segment?InputInput is given from Standard Input in the fo
2022-02-21 17:26:38 842
原创 wyh的迷宫 简单BFS
wyh的迷宫题目给你一个n*m的迷宫,这个迷宫中有以下几个标识:s代表起点t代表终点x代表障碍物.代表空地现在你们涵哥想知道能不能从起点走到终点不碰到障碍物(只能上下左右进行移动,并且不能移动到已经移动过的点)。13 5s…xx…x…txYES思路+code简单的板子运用#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define
2022-02-21 11:34:09 490
原创 [NOIP2017]奶酪 并查集
奶酪题目现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z = 0,奶酪的上表面为 z = h。现在, 奶酪的下表面有一只小老鼠 Jerry, 它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交, Jerry 则可以从奶酪下表面跑进空洞; 如果一个空洞与上表面相切或是相交, Je
2022-02-21 09:58:33 109
原创 「金」点石成金 DFS
「金」点石成金题目描述思路:因为数据较小,直接进行暴搜 。#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r; i++)#define per(i, l, r)
2022-02-19 09:08:11 163
原创 送外卖 DFS
送外卖题目描述DFS的题目还是要多做,题意都是那么个板子,但是却很难将题意给抽象具体的DFS模型。有点头疼这里放一个大佬的题解方便以后复习。题解#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (i
2022-02-18 15:13:47 174
原创 [NOIP2014]寻找道路 BFS+建图技巧
寻找道路题目描述1.预处理反向建边。2.从终点开始bfs,标记从终点开始可以走到的点。3.枚举每一个点,如果这个点没有被标记,则枚举它的每一条出边(反向后的),如果它指向的点被标记,则说明这个被标记的点不合法,删除。4.在合法点上进行bfs。bfs有个性质是在第一次到达终点时的距离最短。参考的题解:牛客题解#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.ti
2022-02-18 10:41:25 288
原创 第k小 STL中的优先队列
第k小第k小思路:使用大根堆来维护第k个数字。#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r; i++)#define per(i, l, r) for
2022-02-18 08:53:34 94
原创 模拟战役 连通块+DFS/BFS
模拟战役题目描述刚刚开始我对题目的理解有问题,我认为的3x3是这样子的后来发现是这样的我的语文老师一定会哭死的 QAQ思路:遇到的每个没有进入联通通块的炮做一遍BFS或是DFS找到包含它的连通块,并统计该连通块内的炮的数量。模拟战争题解#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII
2022-02-17 17:49:53 185
原创 Running Median 优先队列
Running Median对顶堆写法题目描述Running Median题解思路:大根堆维护当前序列中较小的一半元素。大根堆中的数据为当前序列中最小段那部分。因为序列是大根堆,所以堆顶为当前序列中最大的数。小根堆维护较大的一半元素。小根堆中的数据为当前序列中最大段那部分。同理,所以堆顶为当前序列中最小的数。注意细节,如果两个堆的大小差距超过1的话,就要把另一个数量多的堆顶给另外一个数量少的堆。记得堆顶弹出#include <bits/stdc++.h>#defin
2022-02-17 15:51:14 596
原创 食物链 并查集
食物链 并查集食物链题目链接刚开始看题目的时候,不知道如何维护谁吃谁的关系,只知道维护谁是谁的同类。还是把知识点学得太死了,不知道变通。下面还有大佬的题解方便复习不懂的知识点。有两种做法:并查集数组开三倍的空间食物链_牛客博客带权并查集AcWing 240. 食物链 - AcWingAcWing 240. 食物链(带权并查集)在这里安利一下ACwing y总的算法基础课和提高课讲的真得好方法一思路:将数组开3倍大,a表示自身的一层(即a类),a+n表示被a吃掉的一类
2022-02-17 10:40:24 432
原创 指纹锁 STL中set
set的使用之重载运算符大佬博客的讲解:【练习】指纹锁_牛客博客#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r; i++)#define per(i,
2022-02-16 19:33:15 296
原创 区区区间间间 单调栈
登录—专业IT笔试面试备考平台_牛客网单调栈真是我的克星QAQ题解可以参考下面链接的几位大佬的区区区间间间_牛客博客区区区间间间(单调栈) - JmFv5 - 博客园#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define r.
2022-02-16 17:25:24 187
原创 小A的柱状图 单调栈+前缀和
看题目时没有发现是单调栈,后来看题解以后才知道是单调栈。这类型的题目没怎么做过,总是段错误。呜QAQ,还是太弱小了。题意就是维护一个单调递增的序列,当遇到递减的情况时,检验前面所有可形成矩形的方案,更新结果。注意细节指判断条件那些的,还要对栈做预处理避免越界,导致没有结果。#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f
2022-02-16 16:14:00 168
原创 DongDong认亲戚 并查集+STL
登录—专业IT笔试面试备考平台_牛客网简单的离散化过程,使用map将姓名处理成编号,再套用并查集板子即可。#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r;
2022-02-16 14:59:18 572
原创 新建 Microsoft Office Word 文档 set的使用
登录—专业IT笔试面试备考平台_牛客网STL的使用还是不够熟练,因为数据范围不大所以可以使用set打一个表。#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r
2022-02-15 21:45:54 535
原创 tokitsukaze and Soldier 优先队列+排序
登录—专业IT笔试面试备考平台_牛客网对各种STL容器还是不太熟悉以及自己的贪心策略总是太想当然了。QAQ优先队列默认从大到小,加上greater以后从小到大。优先队列用法 - skyli - C++博客#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, i
2022-02-15 17:07:16 262
原创 B-经商 背包+并查集
登录—专业IT笔试面试备考平台_牛客网并查集板子加01背包板子#include <bits/stdc++.h>#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define INF 0x3f3f3f3f#define PII pair<int, int>#define rep(i, l, r) for (int i = l; i < r; i++)#define per(i, l
2022-02-15 16:23:17 231
原创 百鸡百钱问题
我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题。该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?普通话版就是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?由题目可知这两条公式:公鸡+母鸡+小鸡 = 1005*公鸡+3*母鸡+小鸡/3 = 100记录分享一下我自己的做法#include<stdio.h>void ThreeUn(){.
2021-12-15 09:49:56 2932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人