自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (2)
  • 收藏
  • 关注

原创 PAT甲1123-AVL树

AVL树的插入操作,之后的LL,RR,LR,RL旋转。#include <bits/stdc++.h>using namespace std;struct node{ int v; node *left, *right;};node * leftRotate(node *tree){ node *temp = tree -> right; tree -> right = temp -> left; temp -> left = tree;

2020-09-13 21:12:42 174

原创 扑克牌洗牌算法-random_shuffle

扑克牌洗牌有多种算法:第1个:每次从原数组A取出范围[1,i]的数放入B数组。 缺点是每次都要将数组i后面的元素进行移动。 是一个o(n2)算法void xipai(int n){ // o(n2) int x = n; int idx = 1; while(n){ int t = rand() % n; B[idx++] = A[ t + 1]; for(int i = t + 1; i < n; i++){ A[i] = A[i + 1]; } n--;

2020-09-01 13:12:20 940

原创 C++-Unique_ptr使用

unique_ptr: 一次只能独自享用一个new 出来的对象,多的话会报错。#include <iostream>#include <memory>using namespace std;class A {public: int i; A(int n) :i(n) {}; ~A() { cout << "A destructor" << endl; }};int main(){ unique_ptr<A>up1

2020-06-14 14:37:52 274

原创 C++Shared_ptr指针使用

Shared_ptr指针作用:通常new后 需要delete ,但是每次都要写delete比较麻烦,所以C11后就引入了shared_ptr指针的来自动delete。使用方法shared_ptr有一个特性就是可以创建多个指针指向一个new 出来的东西进行托管,如果该new出来的东西没有人在托管它了,它就会调用析构函数销毁.实现原理: 主要是利用一个计数原理, 当new 出来的这个东西一当托 管它的指针为0时 就进行销毁。#include <iostream>#include <me

2020-06-14 14:25:41 219

原创 C++ 特性总结(一)

1 代码编译过程:源代码 -> 编译器 -> 目标代码 -> 链接器 -> exe其中,链接过程为链接库代码和启动代码,目标代码为中间生成的 .obj文件2 define与typedefdefine定义的时候不进行检查,只是一个别名作用,作用域在全局typedef定义的时候会进行类型检查功能,同样有别名作用,不能在函数里用typedef,其typedef有自己的作用域3 程序内存分配区域栈:编译器自动分配释放,局部变量,函数参数等堆:由程序员控制释放(malloc,

2020-06-13 22:23:36 279

原创 华华和月月逛-tarjin

题目描述月月和华华一起去逛公园了。公园很大,为了方便,可以抽象的看成一个N个点M条边的无向连通图(点是景点,边是道路)。公园唯一的入口在1号点,月月和华华要从这里出发,并打算参观所有的景点。因为他们感情很好,走多远都不会觉得无聊,所以所有景点和道路都可以无数次的重复经过。月月发现,有些路可走可不走,有些路则必须要走,否则就无法参观所有的景点。现在月月想知道,有几条路是不一定要经过的。因为这是个很正常的公园,所以没有重边和自环。输入描述:第一行两个正整数N和M,表示点数和边数。接下来M行,每行两个正整

2020-05-20 02:49:42 169

原创 Floyd模板

#include <iostream>#include <algorithm>using namespace std;const int N = 1005;const int INF = (1 << 30 ) - 1;int g[N][N];int n,m,k;int dis[N][N];int main(){ cin >> ...

2020-04-26 17:35:27 143

原创 洛谷P1629邮递员送信-Dji-优先队列-双向建图

题目描述有一个邮递员要送东西,邮局在节点 11。他总共要送 n-1n−1 样东西,其目的地分别是节点 22 到节点 nn。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有 mm 条道路。这个邮递员每次只能带一样东西,并且运送每件物品过后必须返回邮局。求送完这 n-1n−1 样东西并且最终回到邮局最少需要的时间。输入格式第一行包括两个整数,nn 和 mm,表示城市的节点数量和道路数量...

2020-04-26 15:59:33 375

原创 迪杰斯特拉-优先队列-堆优化-模板

#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <queue>using namespace std;#define fi first#define se secondtypedef long long l...

2020-04-25 01:54:31 190

原创 四个选项-并查集-DFS

题目描述众所周知,高考数学中有一个题目是给出12个单项选择,每一个选择的答案是 A,B,C,D 中的一个。 网上盛传答案存在某种规律,使得蒙对的可能性大大增加。 于是今年老师想让你安排这12个题的答案。但是他有一些条件, 首先四个选项的数量必须分别为 na,nb,nc,nd。 其次有 m 个额外条件,分别给出两个数字 x,y, 代表第 x 个题和第 y 个题的答案相同。 现在你的老...

2020-04-24 13:22:12 175

原创 最小生成树-洛谷P2121-拆地毯

题目背景还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了。组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯。请你来解决类似于铺地毯的另一个问题。题目描述会场上有 n 个关键区域,不同的关键区域由 m 条无向地毯彼此连接。每条地毯可由三个整数 u、v、w 表示,其中 u 和 v 为地毯连接的两个关键区域编号,w 为这条地毯的美丽度。由于颁...

2020-04-20 02:38:53 175

原创 最小生成树-洛谷P4047[JSOI2010]部落划分

题目描述聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的。不过好消息是,聪聪得到了一份荒岛的地图。地图上标注了 nn 个野人居住的地点(可以看作是平面上的坐标)。我们知道,同一个部落的野人总是生活在附近。我们把两个部落的...

2020-04-20 02:13:05 256

原创 最小生成树-Kruskal-模板-洛谷P3366

题目描述如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz。输入格式第一行包含两个整数 N,MN,M,表示该图共有 NN 个结点和 MM 条无向边。接下来 MM 行每行包含三个整数 X_i,Y_i,Z_iX ,表示有一条长度为 Z_iZ​ 的无向边连接结点 X_i,Y_iX输出格式如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通则输出 ...

2020-04-20 01:03:42 233

原创 2020计蒜客-蓝桥杯-模拟赛B组(三)题解

1.抛硬币**答案:**0.502 杨辉三角答案:923783.棋盘放置答案:14题解:在n*n的棋盘中,象最多可以摆 2 * n - 2 个4 掷骰子答案:1265 旅行答案:7题解:每个点的方案使其他能到这个点的方案数之和。6 剪刀石头布#include <iostream>#include <cstdio>#include &...

2020-03-19 00:40:17 626

原创 树-前序中序求后序

已知前序中序求后序#include <iostream>#include <cstdio>using namespace std;void post(char * pre, char * in, int len){ char ch; if(len == 0) return; ch = * pre; int i; for(i = 0; i < len...

2020-02-24 13:55:26 124

原创 树上子链-树形DP

给定一棵树 T ,树 T 上每个点都有一个权值(有负值)。定义一颗树的子链的大小为:这个子链上所有结点的权值和 。请在树 T 中找出一条最大的子链并输出。输入描述:第一行输入一个 n,1 \le n \le 10^5n,1≤n≤105。接下来一行包含n个数,对于每个数 a_i, -10^5 \le a_i \le 10^5a i,−10 5≤a i ≤10 5,表示 i 结点的权值...

2020-02-23 15:58:19 216

原创 优先队列-priority_queue-模板

#include <iostream>#include <queue>using namespace std;priority_queue< int, vector<int>, greater<int> > q;priority_queue< int, vector<int>, less<int> ...

2020-02-22 21:54:32 186

原创 CodeForces-Restoring Three Numbers-模拟退火-随机数

Restoring Three NumbersPolycarp has guessed three positive integers a, b and c. He keeps these numbers in secret, but he writes down four numbers on a board in arbitrary order — their pairwise sums (...

2020-02-22 21:44:45 221

原创 雷达设备-贪心

假设海岸是一条无限长的直线,陆地位于海岸的一侧,海洋位于另外一侧。每个小岛都位于海洋一侧的某个点上。雷达装置均位于海岸线上,且雷达的监测范围为d,当小岛与某雷达的距离不超过d时,该小岛可以被雷达覆盖。我们使用笛卡尔坐标系,定义海岸线为x轴,海的一侧在x轴上方,陆地一侧在x轴下方。现在给出每个小岛的具体坐标以及雷达的检测范围,请你求出能够使所有小岛都被雷达覆盖所需的最小雷达数目。输入格式...

2020-02-10 21:26:24 162

原创 大臣的旅费-树形DP

很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的...

2020-02-10 01:04:20 382

原创 蓝桥杯-全球变暖-bfs-思维

你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:….##….##……##.…####.…###.…其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。...

2020-02-10 00:30:34 293

原创 地牢大师-三维bfs

你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。你不能沿对角线移动,迷宫边界都是坚硬的岩石,你不能走出边界范围。请问,你有可能逃脱吗?如果可以,需要多长时间?输入格式输入包含多组测试数据。每组数据第一行包含三个整数 L,R,C ...

2020-02-09 20:49:24 226

原创 二叉树的前中后层次序-C语言实现

前序: 中 左 右中序: 左 中 右后序: 左 右 中层次: 上到下,左到右可以互相递推关系: 前中 -> 后 , 中后 -> 前不能唯一确定的: 前后 -> 中实现了前序中序后序和层次序的输出#include <iostream>#include <queue>using namespace std;#define MAX 1000...

2020-02-09 02:07:22 191

原创 并查集-模板

第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N输出格式:如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N输入样例#1:4 72 1 21 1 22 1 21 3 42 1 41 2...

2020-02-08 23:59:22 176

原创 完全二叉树的权值

给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅AN。输出格式输出一...

2020-02-08 15:45:18 1869

原创 红与黑-bfs

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘...

2020-02-08 01:20:01 368

原创 献给阿尔吉侬的花束-bfs-模板

阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。...

2020-02-06 16:08:45 459

原创 日志统计-双指针

小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)...

2020-02-06 16:07:23 447

原创 螺旋折线-找规律

对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。例如 dis(0,1)=3,dis(−2,−1)=9给出整点坐标 (X,Y),你能计算出 dis(X,Y) 吗?输入格式包含两个整数 X,Y。输出格式输出一个整数,表示 dis(X,Y)。数据范围−109≤X,Y≤109输入样例:0 1输出样例:3做法:从给得数据...

2020-02-05 21:31:24 407

原创 差分矩阵-二维差分-模板

输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上c。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数n,m,q。接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含5个整数x1, y1, x2...

2020-02-05 20:19:56 522

原创 差分-一维差分-模板

输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,...

2020-02-05 20:14:56 179

原创 数列区间最大值-线段树-模板

输入一串数字,给你 M 个询问,每次询问就给你两个数字 X,Y,要求你说出 X 到 Y 这段区间内的最大数。输入格式第一行两个整数 N,M 表示数字的个数和要询问的次数;接下来一行为 N 个数;接下来 M 行,每行都有两个整数 X,Y。输出格式输出共 M 行,每行输出一个数。数据范围1≤N≤105,1≤M≤106,1≤X≤Y≤N,数列中的数字均不超过231−1输入样例:1...

2020-02-04 18:12:52 158

原创 数星星-树状数组

题目描述天空中有一些星星,这些星星都在不同的位置,每个星星有个坐标。如果一个星星的左下方(包含正左和正下)有 k 颗星星,就说这颗星星是 k 级的。例如,上图中星星 5 是 3 级的(1,2,4 在它左下),星星 2,4 是 1 级的。例图中有 1 个 0 级,2 个 1 级,1 个 2 级,1 个 3 级的星星。给定星星的位置,输出各级星星的数目。换句话说,给定 N 个点,定义每个点...

2020-02-04 16:58:33 796 2

原创 lowbit-x & -x小结

对于操作: x & -x, 其-x 在计算机存储是用x的补码存储即,~x + 1x & - x = x & (~x + 1)对于偶数:这里对偶数10进行运算x & -x = 0000 1010 & 1111 0110 = 0000 0010 即最大可以被2的1次方整除。对于奇数:这里对奇数7进行运算x & -x = 0000 ...

2020-02-04 15:59:21 175

原创 动态求连续区间和-线段树-树状数组-模板

给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。输入格式第一行包含两个整数 n 和 m,分别表示数的个数和操作次数。第二行包含 n 个整数,表示完整数列。接下来 m 行,每行包含三个整数 k,a,b (k=0,表示求子数列[a,b]的和;k=1,表示第 a 个数加 b)。数列从 1 开始计数。输出格式输出若干行数字,表示 k=0 时...

2020-02-04 14:18:34 222

原创 逆序对的数量-归并排序-模板

给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000输入样例:62 3 4 5...

2020-02-03 21:32:30 114

原创 外卖店优先级-思维

“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M ...

2020-02-03 20:44:20 549

原创 航班信息-字符串-思维-sscanf

小 h 前往美国参加了蓝桥杯国际赛。小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小 h 对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。不久后小 h 的女朋友去中东交换。小 h 并不知道中东与北京的时差。但是小 h 得到...

2020-02-03 17:53:45 157

原创 波动数列-DP-组合

观察这个数列:1 3 0 2 -1 1 -2 …这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?输入格式共一行,包含四个整数 n,s,a,b,含义如前面所述。输出格式共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 ...

2020-02-02 15:37:00 574

原创 移动距离-make_pair

X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6 时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 …我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。输入格式输入共一行,包含三个整数 ...

2020-02-01 22:07:15 118

RS&LDPC.zip

C++实现,RS码与LDPC码 功能:k,r自主输入,随机生成数据,完成编码,产生错误,纠错译码的过程。

2020-06-13

2015-2019美国大学生熟悉建模竞赛O奖论文.zip

15-19年美赛O奖论文.

2020-03-10

空空如也

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

TA关注的人

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