自定义博客皮肤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

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

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

原创 【2021个人年度报告】

记录2021,我与算法的点点滴滴,展望2022

2022-01-02 23:14:12 1222 4

原创 Vscode配置C++(一步一步图文详解)

Vscode配置C++(一步一步图文详解)1. 文件下载链接2. 文件安装点击 VSCodeUserSetup-x64-1.45.1.exe(Vscode的安装包)双击运行点击接受协议推荐把下面4个勾都打上,第一个看个人喜欢点击下一步,安装这里安装完成后不点击打开,因为要先配置编译环境文件路径设置配置本地编译器,用mingw,↓打开C盘(刚刚解压的路径)将mingw文件,从解压的文件夹拉出来。删除x86…文件配置环境变量鼠标对准 此电脑(右键),点击属性

2021-11-15 18:17:15 31281 32

原创 2021 广东省程序设计竞赛(GDCPC)

2021 广东省程序设计竞赛(GDCPC)L. League of Legends(签到)I. Industrial Nuclear Water (几何思想)G. Good Game, GG(一道不算博弈的博弈)J. JerryL. League of Legends(签到)题意:有3个队伍进行战斗,1个队伍 VS 另一个队伍,获胜的和另外一个没参加的队伍进行战斗,直到出现某一支队伍失败次数达到2次。求:进行战斗的场次 的期望值一直1v1,直到出现某一支队伍失败次数达到2次,就结束。那么失败次数达

2021-08-13 20:09:12 2605 3

原创 取非运算怎么算?

有点巧,突然收到这么一个问题?~21 为什么的结果是 -22?cout << ~21 << endl;结果是:-22我的回答:不是一个公式嘛?~x=-(x+1)(其实一直以来我也只知道这个公式)突然这问原理给我整懵了,我也不知道咋解释,于是研究了一波。下面是解释:首先需要明确的一点是:在计算机中,这些数都是以补码的形式存储在内存中的。原码变反码:数的符号位不变,其它位均按位取反非运算:连同数的符号位,所有位均按位取反那么ok,计算"-21"(int 有32位

2021-09-27 02:54:21 2286

原创 《算法设计与分析》 实验4

用二分的思想可以找出这个分界点。假设我们想二分出来红色(不满足条件的范围)这边的分界点:找一个中间值mid :l+r >> 1写一个函数check()判断时mid时在满足条件(绿色)范围内,还是在不满足条件(红色)范围内。(注意:这里为什么是 l+r+1 )For example:如果 l = r - 1 (即左右边界只相差1) ,假设为l+r >> 1 (向下取整)假设if(check(mid)) 判断为true (此时mid = l + r >> 1 .

2021-09-26 17:31:09 711

原创 《算法设计与分析》 实验3

《算法设计与分析》 实验3全排列问题合并排序(归并排序)全排列问题DFS的路线图:我们不需要存这个树,每次深搜走到底就是一条路线。回溯的过程中需要注意:恢复原样。flag[i] = false;import java.util.Scanner;public class Main { static int[] path;//保存路径 static boolean[] flag;//打标记 //u代表层数,u == n的时候就是叶节点 public static

2021-09-21 15:55:01 413 2

原创 《算法设计与分析》 实验2

《算法设计与分析》 实验2全排列问题合并排序(归并排序)全排列问题DFS的路线图:我们不需要存这个树,每次深搜走到底就是一条路线。回溯的过程中需要注意:恢复原样。flag[i] = false;合并排序(归并排序)归并排序 —— 分治思想确定分界点:mid == l+r >> 1递归排序 ( left —— right)归并:把两个有序的数组合并成一个有序的数组(合二为一)(⭐)双指针算法:首先 a[n] 的最小值和 b[n] 的最小值进行比较,将两者的最小值

2021-09-08 22:10:44 3396

原创 《算法设计与分析》 实验1

《算法设计与分析》 实验作业11. 冒泡排序2. 选择排序3. 插入排序4. 堆排序5. 百钱百鸡问题1. 冒泡排序比较相邻的元素,前一个比后一个大(或者前一个比后一个小)调换位置public static void bubbleSort(int a[]) { int n = a.length; for (int i = n - 1; i > 0; i--) { for (int j = 1; j <= i; j++) { if (a[j]

2021-09-03 20:08:40 1384 1

原创 Codeforces Round #739 (Div. 3) (7/7)

Codeforces Round #739 [Div. 3]A. Dislike of ThreesB. Who's Opposite?C. Infinity TableD. Make a Power of TwoE. Polycarp and String TransformationF1、F2. Nearest Beautiful Number感觉这场的难度区分度挺高的,前面三道题手速题,后面还是有点难度(对我这种小白来说),第一次排进前1000,有点意思~~。A. Dislike of Three

2021-08-22 00:20:39 267

原创 牛客小白月赛2 题解

牛客小白月赛2C. 真真假假(签到)E. 是是非非(尼姆博弈)G. 文B. 小马过河D. 虚虚实实(并查集判断欧拉路径)H. 武A. 数字方阵(反魔方阵构造)F. 黑黑白白J. 美(构造)C. 真真假假(签到)题解:将所有的头文件弄成一个字符串,然后直接用find()函数搜,简单粗暴,不愧是签到题#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); cin

2021-07-29 13:17:41 266

原创 牛客小白月赛19 题解

牛客小白月赛19A. 「水」滔天巨浪(思维)B. 「木」迷雾森林 (数字三角形模型)C. 「土」秘法地震(二维前缀和)F. 「水」悠悠碧波 (字符串)D. 「金」初心如金 (找规律)G. 「金」点石成金 (DFS)E. 「火」烈火燎原 (树)J. 「火」皇家烈焰 (三维线性DP)H. 「土」巨石滚滚 (贪心排序)A. 「水」滔天巨浪(思维)要求保证严格单调递增,那么只需要找到一个最大的递增区间,即可,注意一下边界情况 a[l] 和 a[r]#include<bits/stdc++.h>

2021-07-28 01:45:14 327

原创 牛客小白月赛36

牛客小白月赛36E. 皇城PK(签到)F. 象棋(签到)I. 四面楚歌(DFS 和 BFS 都可以)H. 卷王之王C. 杨辉三角(排列组合)B. 最短串A. 好哥哥D. 哥三好(DP)G. 永不言弃(图论)J. 科学幻想(线段树)E. 皇城PK(签到)题意:定义,有可能获得冠军:没输过的人题解:遍历一遍所有输赢情况,只要输过就标记一下,最后查找没有被标记的都是有可能获得冠军的人。Code:#include<bits/stdc++.h>using namespace std;con

2021-07-19 01:18:33 417 4

原创 LeetCode周赛 250

LeetCode周赛5161. 可以输入的最大单词数5814. 新增的最少台阶数(数学)5815. 扣分后的最大得分(dp)5816. 查询最大基因差(离线DFS字典树)5161. 可以输入的最大单词数分割完,遍历字符串数组里的每个元素(字符串)即可class Solution {public: int c[26]; vector<string> ans; //将字符串分割成字符串数组 //s是待分割的字符串,ch是分割的字符,ans是存分割后的结果

2021-07-18 12:36:24 145

原创 LeetCode 第248场周赛题解

LeetCode 第248场周赛1. 基于排列构建数组(模拟)2. 消灭怪物的最大数量(贪心)3. 统计好数字的数目(快速幂)4. 最长公共子路径(后缀自动机)1. 基于排列构建数组(模拟)题解:(水题)如题意模拟即可。class Solution {public: vector<int> buildArray(vector<int>& nums) { int n = nums.size(); vector<int&g

2021-07-04 13:54:21 257

原创 20级爪哇程序设计新生赛(二)题解

显然的dp题目,状态转移的时候,与前一位,当前位,后一位都有关系,所以开3维dpf[i][0/1][0/1]f[i][0/1][0/1]f[i][0/1][0/1] 表示:f[前i位][当前位是否有雷][后一位是否有雷]f[前i位][当前位是否有雷][后一位是否有雷]f[前i位][当前位是否有雷][后一位是否有雷] (0表示没雷,1表示有雷)初始化:f[0][0][0]=1,f[0][0][1]=1f[0][0][0] =1,f[0][0][1] = 1f[0][0][0]=1,f[0][0][1]=1

2021-05-02 16:03:56 251 2

原创 四种最短路算法 Dijkstra、Bellman-Ford、Spfa、Floyd

常见的最短路问题有哪些?源点: 起点 汇点: 终点判断图是什么图:m是 n2n^2n2 级别的话就是稠密图,m是 nnn 级别的就是稀疏图(n是点数,m是边数)边权: 离散数学或数据结构中,图的每条边上带的一个数值,他代表的含义可以是长度等等,这个值就是边权。1.单源最短路 (只有一个起点)求从一个点到其他所有点的最短距离,最常见的一个问题:从1号点到n号点的最短路(1) 所有边权都是正数 (其中n为点的数量,m为边的数量)朴素 DijkstraDijkstraDijkstr

2021-04-29 17:11:31 884

原创 《算法从入门到入土系列》第四集 博弈论专题

《算法从入门到入土系列》第四集 博弈论专题博弈论专有名词及类型NIM游戏公平组合游戏ICG有向图游戏Mex运算SG函数有向图游戏的和NIM游戏台阶-Nm博弈 AcWing 892博弈论专题刷题博弈论HDU 1564(签到题)HDU 2516(斐波那契博弈)HDU 2897(类巴什博弈)【2020CCPC网络赛】1005 Lunch (类尼姆博弈)2021牛客寒假算法基础集训营3 J.加法和减法HDU 3389(类阶梯博弈)HDU 3863 (签到题)HDU 3951(环形巴什博弈)HDU 2188(标准巴

2021-04-14 23:35:17 292 1

原创 《算法从入门到入土系列》第三集<上> 计算几何专题(基础知识)

《算法从入门到入土系列》第三集 计算几何专题 题目解析 + 练习题单基础知识常用的一些公式前置知识题单POJ 2318(二分+叉积)POJ 2398()POJ 3304POJ 1269POJ 2653POJ 1066POJ 1410POJ 1696POJ 3347POJ 2826POJ 1039POJ 3449POJ 1584POJ 2074基础知识 计算几何是一个偏模拟的专题。几何大家都学过,应该都觉得挺简单的吧,从二维到三维思维的快乐跳跃,需要一些空间想想能力,让我们一起畅游几何学吧!计算几

2021-04-04 22:40:36 414 2

原创 《算法从入门到入土系列》第一集 搜索专题(DFS与BFS)题目解析 + 练习题单(更新ing)

搜索专题(DFS与BFS) 从入门到入土 题目解析 + 练习题单搜索BFSAcWing 844. 走迷宫Flood Fill 算法AcWing 1097. 池塘计数AcWing 1098. 城堡问题AcWing 1106. 山峰和山谷最短路模型AcWing 1076. 迷宫问题(单源最短路)AcWing 188. 武士风度的牛LUOGU P1443 马的遍历多源BFSAcWing 173. 矩阵距离最小步数模型AcWing 1107. 魔板双端队列广搜AcWing 175. 电路维修双向广搜AcWing 1

2021-03-22 20:17:09 4702 11

原创 Leetcode 第 46 场双周赛 题解

Leetcode 第 46 场双周赛 题解5657. 唯一元素的和5658. 任意子数组和的绝对值的最大值(前缀和)5659. 删除字符串两端相同字符后的最短长度(双指针)5657. 唯一元素的和题意:给出一个序列,求出这个序列中,所有唯一元素的和题解:开个map或者计数数组,遍历一遍这个序列,统计一下每个数字出现的次数,把计数数组为1的i输出即可class Solution {public: int a[105]; int sumOfUnique(vector<int&gt

2021-02-07 01:18:25 408 1

原创 2021牛客寒假算法基础集训营1 E.三棱锥之刻

E.三棱锥之刻P为正三棱锥内部的中心,PA,PD为正三棱锥外接球半径,OP为正三棱锥内切球半径结论:已知正三棱锥的棱长为a,那么正三棱锥外接球半径为:64a\frac{\sqrt{6}}{4}a46​​a ,正三棱锥内切球半径为:612a\frac{\sqrt{6}}{12}a126​​a//minn为正三棱锥内切球半径,maxx为正三棱锥外接球半径double minn = sqrt(6.0) * a / 12, maxx = sqrt(6.0) * a / 4;double area;

2021-02-02 01:28:08 602

原创 常用的C++ STL

常用的C++ STL顺序式容器vector(动态数组)stack(栈)queue(队列)list(双链表)deque(双向队列)priority_queue(优先队列)关联式容器set(集合)multiset(快速查找)map(一对一映射)multimap(一对多映射)顺序式容器vector(动态数组)功能:定义整型数组① vector a; 定义一个动态数组a,自动默认初始化为空② vector a(100); 定义一个动态数组a,有100个为0

2021-01-30 23:31:55 275

原创 Acwing 寒假每日一题 1月12日

422. 校门外的树暴力解法区间合并线段树解法暴力解法#include<iostream>#include<cstdio>using namespace std;const int N = 10010;bool tree[N];int main(){ int len, m; cin >> len >> m; for (int i = 0; i <= len; i++) tree[i] = true; in

2021-01-27 23:58:42 203

原创 Acwing 寒假每日一题 1月11日

AcWing 429. 奖学金一个简单的排序和结构体的运用#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N = 310;struct Stu { int c, m, e; int sum; int id; bool operator< (const Stu& W) const {

2021-01-27 20:31:44 93

原创 Acwing 寒假每日一题 1月10日

AcWing 898. 数字三角形原题链接:https://www.acwing.com/problem/content/900/#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;const int N = 510;int f[N][N];int main(){ int n; cin >&g

2021-01-27 18:50:20 119

原创 算法群寒假第一周题解

算法群寒假第一周题解剑指Offer 04 搜索二维矩阵Ⅱ(二分或者思维直接解)剑指Offer 12 单词搜索(DFS+剪枝)C++代码Java代码剑指Offer 14-Ⅰ剪绳子(DP或者数学(也可以说是贪心))C++代码 + Java代码剑指Offer 04 搜索二维矩阵Ⅱ(二分或者思维直接解)题目描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:m

2021-01-25 17:57:05 271

原创 Leetcode 第 44 场双周赛

55555555555555,错过比赛开始时间了,只过了2道,感觉第三道磨一磨应该能出来,记录一下吧!Leetcode 第 44 场双周赛5645. 找到最高海拔 (水题)5646. 需要教语言的最少人数5645. 找到最高海拔 (水题)题目描述:有一个自行车手打算进行一场公路骑行,这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0 <=

2021-01-24 01:03:55 259

原创 20级爪哇程序设计新生赛(一)题解

2020级爪哇部落新生赛题解小爪跳台阶小爪的除数小爪的破译小爪的试炼小爪的数学题(前缀和)小爪的博弈(巴士博弈)小爪的荣耀(模拟)小爪的统计数据小爪的乒乓球比赛(暴力)小爪的座驾小爪找规律小爪玩石头(区间DP)小爪的AC(最长上升子序列)小爪学编程(水题)小爪做安卓组考核小爪跳台阶#include<iostream>#include<cstdio>const int N = 110;int f[N];int main(){ int n; scanf ("%

2021-01-23 18:05:04 1471 1

原创 Codeforces Round #696 (Div. 2) 解题报告

老菜鸡了,还是只过了两道… 5555555555555555还是来水水博客好了,还能加点积分。(其他题待补)菜鸡总结报告A题B题A题题解:B题题解:题目要求有2个① 答案至少有4个因子② 答案的所有因数都要满足,每个因子之间的差值至少为d刚开始自己的思路是对的,素数筛打表。就在自己准备敲代码的时候,翻车,不是应该这样子吗?举一个反例:(刚开始自己就陷入了误区,纠结了半天)如果因子的差值至少是d,那么找到最小正整数a,那么第二个例子就不是[1,3,6,12],这将输出12。这也是4个

2021-01-20 04:06:20 1436

原创 Module1 —— 前缀和与差分

前缀和与差分前缀和差分前缀和差分

2021-01-18 17:48:01 207

原创 Module1 —— 整数二分的两个模板+浮点二分模板及应用

整数二分用二分的思想可以找出这个分界点。假设我们想二分出来红色(不满足条件的范围)这边的分界点:找一个中间值mid :l+r >> 1写一个函数check()判断时mid时在满足条件(绿色)范围内,还是在不满足条件(红色)范围内。(注意:这里为什么是 l+r+1 )For example:如果 l = r - 1 (即左右边界只相差1) ,假设为l+r >> 1 (向下取整)假设if(check(mid)) 判断为true (此时mid = l + r >&g

2021-01-17 13:45:41 184

原创 Module1 —— mergesort模板

归并排序模板归并排序模板题归并排序模拟图例题:逆序对的数量归并排序模板题给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围:1≤n≤1000001≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5归并

2021-01-17 12:32:20 159

原创 Module1 —— Quicksort模板

Quicksort给定你一个长度为 nnn 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 nnn。第二行包含 nnn 个整数(所有整数均在 111 ~ 10910^9109 范围内),表示整个数列。输出格式输出共一行,包含 nnn 个整数,表示排好序的数列。数据范围:1≤n≤1000001≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5快速排序确

2021-01-15 21:13:26 273 1

原创 牛客小白月赛31 解题报告

D.坐标计数链接:https://ac.nowcoder.com/acm/contest/10746/D题目描述定义一个坐标变换,坐标 (x,y)(x,y)(x,y) 变换后变为 (x⊕y,∣x−y∣)(x \oplus y, |x-y|)(x⊕y,∣x−y∣)。给定一片矩形区域,计算区域内有多少个整数点在经过有限次变换后变为 (0,0)(0,0)(0,0)。输入描述:输入第一行一个数字 t,1≤t≤50t, 1 \le t \le 50t,1≤t≤50 表示测试数据组数接下来一行四个数字

2021-01-11 03:08:22 453

原创 Codeforces #690 (Div. 3) 解题报告

Codeforces #690 Div. 3 ABCD 解题报告A. Favorite SequenceB.Last Year's SubstringA. Favorite Sequence题解:给出一串数字,按要求重新排序【左边第一个】 【右边第一个】 【左边第二个】 【右边第二个】 … 以此类推。解法:双指针,判断条件是i < j但是如果总长度是奇数的话,那么最后还要输出 a[n / 2 + 1] 这个数字。详情请看代码: ????????????????#include&lt

2020-12-17 10:39:29 199

原创 哈尔滨理工大学软件与微电子学院程序设计竞赛 题解

好的,没错,是我,我又来水博客了!哈尔滨理工大学软件与微电子学院程序设计竞赛A 抗疫必胜1(水题)B 疫情死亡率 (水题)C 整除判断D 编程时间E 中奖情况F 抗议必胜2G 成绩统计H 抗议必胜3J 子序列求和(前缀和)K Simple QuestionP Dismantling NumberA 抗疫必胜1(水题)题目描述2020年,抗击疫情,众志成城,我们一定能取得疫情战役最后的胜利(Victory)。乎乎想用大写字母V组成大V,请帮他编程实现。输入描述:无输出描述:V V

2020-12-13 15:17:31 994

原创 牛客小白月赛 17

牛客小白月赛 17C 异或和 (签到题)I-坐电梯B-扫雷D-解密A-小sun的假期F-小黄鸭C 异或和 (签到题)#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<map>#include<algorithm>#define IOS ios::sync_with_stdio

2020-11-22 15:31:58 207

原创 Edu Codeforces 98 Div. 2

Educational Codeforces Round 98 Rated for Div. 2A. Robot Program (水题)B. Toy BlocksC. Two Brackets(水题)A. Robot Program (水题)题意:从 (0,0)(0, 0)(0,0) 点走到 (x,y)(x,y)(x,y) 点,通过执行五个命令,希望用尽可能少的命令到达单元格 (x,y)(x,y)(x,y)。命令:向上走一步向左走一步向右走一步向下走一步原地不动这些命令,不能连续执行

2020-11-20 01:47:15 257 4

原创 【kuangbin带你飞】专题 【数学训练一】

【kuangbin带你飞】专题 【数学训练一】LightOJ - 1008 Fibsieve`s Fantabulous BirthdayLightOJ - 1010 Knights in ChessboardLightOJ - 1020 A Childhood GameLightOJ - 1078 Integer DivisibilityLightOJ - 1116 Ekka DokkaLightOJ - 1148 Mad CountingLightOJ - 1179 Josephus Problem (

2020-11-17 02:09:29 266

原创 区间DP原理解析 和 kuangbin一些题

区间DP原理本质石子合并环形石子合并本质区间dp的本质其实是线性dp的一种。线性dp:从初始状态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态。区间dp中是以 “区间长度” 作为dp的阶段。区间dp的初始状态一般是长度为1的区间。NOIP 2006 提高组下面以例题(石子合并)分析:石子合并题目描述:设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量

2020-11-13 23:46:15 666 1

空空如也

空空如也

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

TA关注的人

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