自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 20201206贪心法1课后总结

文章目录贪心法1题目总结贪心法定义贪心法技巧贪心习题([选自题单](http://wikioi.cn/training/mission/10))[#10080. 删数问题](http://wikioi.cn/problem/10080)思路注意代码[#10081. 活动选择](http://wikioi.cn/problem/10081)思路代码[#10038. 最大整数](http://wikioi.cn/problem/10038)思路代码[#10082. 整数区间](http://wikioi.cn/

2020-12-06 20:29:00 328

原创 20201105枚举课后总结

文章目录枚举[#210733. 奶牛碑文](http://wikioi.cn/problem/210733)题目描述输入格式输出格式样例输入样例输出思路#1#2代码[#210792. 分解质因数](http://wikioi.cn/problem/210792)题目描述输入格式输出格式样例样例输入#1样例输出#1样例输入#2样例输出#2数据范围与提示思路代码[#10213. 质因数分解升级版](http://wikioi.cn/problem/10213)题目描述输入格式输出格式样例输入样例输出思路代码[#

2020-11-15 18:42:58 1029

转载 noip 2008 双栈排序

题目大意: 给定n和一串数字,这串数字是一个1~n的排列。现在要用两个栈给这些数字排序。首先先判断是否有解,有解的话再输出字典序最小的方案:入栈1,输出a,出栈1,输出b入栈2,输出c,出栈2,输出d分析:首先必然要先考虑是否有解。对于没有解的情况,必然是当到了某一个数x0时,栈1,栈2队首元素都不能弹出,并且x0要比栈1、2的队首元素都要大,这时就不能排序了。所以考虑什么时候A、B不能在同一个栈中的情况:当且仅当,A<B,并且存在C,使得A>C.并满足A位置在B前面,B位置在C前面

2020-09-06 20:32:27 173

原创 蒟蒻の分治算法总结

分治算法定义将一个问题分解成多个子问题,将问题缩小到一定规模后逐个求解,最后合并所有子问题分治算法步骤分解(将原问题分解成一个形式相同规模更小的子问题)解决(递归求解子问题,直到问题的规模足够小,直接求解)合并(合并子问题的解,得到原问题的解)分治算法例题(实际应用)插入排序思路一道十分普通的O(n2)O(n^2)O(n2)时间复杂度题,使用类似打扑克牌时给牌排序的分治思想递归实现即可即:先给n-1张牌排序,再分成给n-2张牌排序,以此类推…直到只剩1张牌,则直接结束C

2020-09-05 10:31:23 186

原创 蒟蒻の常用排序算法总结

文章目录有比较的排序冒泡排序基本思想过程时间复杂度Code1Code_1Code1​ 未优化Code2Code_2Code2​ 优化例题[P1116 车厢重组](https://www.luogu.com.cn/problem/P1116)思路CodeCodeCode插入排序基本思想:过程:时间复杂度CodeCodeCode选择排序基本思想:过程时间复杂度CodeCodeCode归并排序基本思想:过程时间复杂度CodeCodeCode例题见“逆序对题解”快速排序基本思想:时间复杂度CodeCodeCode无

2020-08-26 15:16:00 785

原创 P1908 逆序对 题解

P1908 逆序对 题解原题链接题目描述猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aja_i>a_jai​>aj​且i<ji<ji<j 的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。

2020-08-22 20:05:51 1192

原创 青藤编程营Day7信心赛赛后总结

青藤编程营Day7信心赛赛后总结T1 麦当劳(mdl.cpp)题目描述近日,麦当劳的老板和老板娘因为改名问题吵了起来,老板想把名字改为“金拱门”,他觉得比较接地气,而老板娘喜欢洋气点的名字,她坚持原来的名字。眼看着越吵越凶,藤藤决定挺身而出,为他们想一个解决方法:让老板和老板娘各投三次骰子来决定胜负,如果老板三次的数字都比老板娘投出来的大,则取名为“金拱门”,否则取名为“麦当劳”,现在给出他们各投三次之后出来的数字,你能帮藤藤判断一下最终结果吗?输入文件输入文件mdl.in第1行

2020-08-16 20:53:33 414

原创 青藤编程营Day6信心赛赛后总结

青藤编程营Day6信心赛赛后总结总分340(第三名qwq,T5、T2不该错,还需修炼)T1 藤藤的统计(count.cpp)题目描述计算在一个N*M的棋盘中共有多少个边长至少为1的正方形输入文件输入文件count.in仅有一行包含两个用空格隔开的整数N,M,表示棋盘大小。输出文件输出文件count.out仅有一行包含一个整数,表示共有多少正方形。输入样例2 2输出样例5数据规模与约定对于20%的数据,N ≤ 100,M ≤ 100。对于50%的数据,N ≤

2020-08-15 20:56:25 13479

原创 树与图总结

树和图树定义存储方式及模板动态数组(常用)邻接矩阵(常用于传递闭包)例题[#10032. 二叉树的序遍历](http://wikioi.cn/problem/10032)思路CodeCodeCode[#10033. 二叉树的叶节点和](http://wikioi.cn/problem/10033)思路CodeCodeCode[#210756. 树上两点距离](http://wikioi.cn/problem/210756)思路CodeCodeCode[#210777. 树的深度](http://wikioi

2020-08-14 12:02:20 1118

原创 蒟蒻の背包dp学习总结

背包dp0/1背包定义模板例题[P1048 采药](https://www.luogu.com.cn/problem/P1048)思路CodeCodeCode[P1049 装箱问题](luogu.com.cn/problem/P1049)思路CodeCodeCode[P1060 开心的金明](luogu.com.cn/problem/P1060)思路CodeCodeCode完全背包定义模板例题[P1616 疯狂的采药](https://www.luogu.com.cn/problem/P1616)思路Cod

2020-08-13 12:32:20 159

原创 蒟蒻の区间dp学习总结

区间dp定义模板无优化四边形优化例题[P2858 [USACO06FEB]Treats for the Cows G/S](https://www.luogu.com.cn/problem/P2858)思路CodeCodeCode[P1063 能量项链](https://www.luogu.com.cn/problem/P1063)思路CodeCodeCode[P3205 [HNOI2010]合唱队](https://www.luogu.com.cn/problem/P3205)思路CodeCodeCode

2020-08-12 11:47:03 250

原创 蒟蒻の线性dp学习总结

线性dp定义模板记忆化深搜版状态方程版例题[P1057 传球游戏](https://www.luogu.com.cn/problem/P1057)思路CodeCodeCode[P1077 摆花](https://www.luogu.com.cn/problem/P1077)思路CodeCodeCode[P1115 最大子段和](https://www.luogu.com.cn/problem/P1115)思路CodeCodeCode模拟求解(最为easy的办法)dp求解定义线性动态规划,是较常见的一类

2020-08-11 17:36:00 180

原创 蒟蒻の搜索学习总结

搜索总结一、深度优先搜索定义解决题形1.迷宫类深搜CodeCodeCode2.数值类深搜CodeCodeCode例题[1431: 【基础】迷宫的第一条出路](http://oj.czos.cn/problem.php?id=1431)CodeCodeCode[1430: 【基础】迷宫出口](http://oj.czos.cn/problem.php?id=1430)CodeCodeCode[1850: 【提高】和为T](http://oj.czos.cn/problem.php?id=1850)CodeCo

2020-08-09 13:13:23 1240

原创 蒟蒻の红黑树总结

定义红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。若一棵二叉查找树是红黑树,则它的任一子树必为红黑树.红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL),但 对之进行平衡的代价较低, 其平均统计性能要强于 AVL 。由于每一颗红黑树都是一颗二叉排序树,因此,在对红黑树进行查找时,可以采用运用于普通二叉排序树上的查找算法,在查找过程中不需要颜色信息。特征红黑树是每个节点都带有颜色属性的二

2020-08-07 15:40:47 106

原创 蒟蒻の树形dp学习总结

定义树形dp,即基于树的结构进行dp特质一般来说树形dp在设状态转移方程时都可以用f[i][]表示i这颗子树怎么怎么样的最优解,实现时一般都是用子树更新父亲(即从下向上更新),那么首先应该考虑的是一个一个子树的更新父亲还是把所有子树都算完了在更新父亲?这就要因题而异了,一般来说有两种情况:1.需要把所有子树的信息都掌握之后再更新子树的就需要把所有子树都算完了在更新父亲。2.而像树上背包这样的问题就需要一个一个的更新,每次都用一个子树更新已经更新完的子树+父亲,最后就可以将这一部分的子树更新完了,

2020-08-05 17:36:42 125

原创 蒟蒻の字典树学习总结

定义又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。性质根节点不包含字符,除根节点外每一个节点都只包含一个字符;从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串;每个节点的所有子节点包含的字符都不相同。解决题形串的快速检索给出N个单词组成的熟词表,

2020-08-05 16:49:55 119

原创 蒟蒻の树链剖分学习总结

定义树路径信息维护算法。将一棵树划分成若干条链,用数据结构去维护每条链,复杂度为O(logN)O(logN)O(logN)。其实本质是一些数据结构/算法在树上的推广解决题形树的推广问题模板(by hzwer)#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#define inf 0x7fffffff#define N 30005 #de

2020-08-04 14:46:43 126

原创 蒟蒻の二叉平衡树学习总结

定义平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。平衡树可以完成集合的一系列操作, 时间复杂度和空间复杂度相对于“2-3树”要低,在完成集合的一系列操作中始终保持平衡,为大型数据库的组织、索引提供了一条新的途径。性质与证明性质:高为h的BT, 其结点的数目在2^(h+1)-1和1/2(3^(h+1)−1)之间, 叶的数目在2^h和3^h之间。证明:BT退化为每个结点 (非叶)

2020-08-01 14:09:36 184

原创 蒟蒻の线段树学习总结

定义线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b][a,b][a,b],它的左儿子表示的区间为[a,(a+b)/2][a,(a+b)/2][a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b][(a+b)/2+1,b][(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为NNN,即整个线段区间的长度。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时

2020-07-31 14:52:20 104

原创 蒟蒻の树状数组学习总结

定义树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。这种数据结构(算法)并没有C++和Java的库支持,需要自己手动实现。在Competitive Programming的竞赛中被广泛的使用。树状数

2020-07-31 13:46:30 100

原创 蒟蒻の二叉搜索树(二叉排序树、二叉查找树)学习总结

定义二叉搜索树 ,它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。解决问题二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。模板#include <bits/stdc++.h>u

2020-07-24 11:50:02 139

原创 蒟蒻の并查集学习总结

定义一种方便查找的树形结构,善于解决很多复杂的查找问题基本操作find(x)find(x)find(x):寻找结点x的父结点merge(x,y)merge(x,y)merge(x,y):合并x和y至一棵树模板Code1Code1Code1:初始化void init(){//假设所有的点都没有子节点 for(int i=1;i<=n;i++){ fa[i]=i;//fa数组用于存放结点的父结点 }} Code2Code2Code2:findfindfind函数int fin

2020-07-20 23:05:06 145

原创 蒟蒻写的最小生成树学习总结

定义在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集(即)且为无循环图,使得 w(T) 最小,则此 T 为 G 的最小生成树。最小生成树其实是最小权重生成树的简称。解决问题要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很高,且各个城市之间铺设光缆的费用不同,因此另一个目标是要使铺设光缆的总费用最低。这就需要找到带权的最小生成树。模板P

2020-07-19 10:51:47 205

原创 哈夫曼树(Huffman Tree)学习总结

定义将所要编码的字符作为叶子结点的树为哈夫曼树作用解决编码问题模板priority_queue<int,vector<int>,greater<int> >Q;int total;int n,x;int main(){ cin>>n; while(n--){ cin>>x; Q.push(x); } while(Q.size()!=1){ int sum=0; sum+=Q.top(); Q.pop();

2020-07-18 23:00:37 1631

原创 AcWing 378. 骑士放置 题解

原题链接题目描述给定一个 N*M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。样例输入样例2 3 0输出样例4(二分图——最大独立集) O(n∗m)O(n*m)O(n∗m)思路:通过涂色法(棋子位置和除棋子可到位置变黑色,其余不变)发现,黑色与白色有公共边,即可使用二分图求解时间复杂度O(n∗m)O(n*m)O(n∗m)参考文献y总的课+《算法竞赛进

2020-07-07 21:19:19 348

原创 插头dp学习总结

定义一类特殊的状态压缩dp,又称轮廓线dp作用通常用于解决二维空间的状态压缩问题,且每个位置的取值只与临近的几个位置有关,适用于超小数据范围,网格图,连通性等问题。模板#include<bits/stdc++.h>#define md 312251#define mxn 15using namespace std;int mp[mxn][mxn],hs[md+2],k,n,m,nn,mm;unsigned long long f[2][600000];long long an

2020-07-01 14:05:03 234

原创 状态压缩dp未吃透の笔记

定义一种使用位运算的优化型dp(其实就是用于优化)不懂位运算的可以看这儿(其实就是百度传送门)这里记一下常用的普通表达式的位运算表示(位运算比普通表达式运算时间少一些):普通表达式二进制表示pow(2,n)1<<nn/2n>>1n*2n<<1作用(解决题型)解决多阶段决策最优化问题(因为是优化型dp,所以解决题型与线性dp差不多)模板#include<bits/stdc++.h>const int I

2020-06-30 19:58:35 121

原创 洛谷blog传送门qwq

老蒟蒻

2020-06-11 22:34:20 163

原创 线段树学习总结(Do not be the cheater)

线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,因此有时需要离散化让空间压缩。

2020-06-02 15:23:06 204

原创 第三届NOI Online普及组线上比赛赛后总结

其实这次考试又双叒叕爆零了qwq第三届NOI Online赛后总结第一题、最急救助题面思路预期分数考试代码AC代码(摘自洛谷大佬题解)第二题、观星题面思路预期分数考试代码AC代码(摘自洛谷大佬题解)第三题、手表题面思路预期分数考试代码AC代码第一题、最急救助题面洛谷可评测题面思路字符串循环取出子串,判断是否为"sos"预期分数100分qwq考试代码#include<bits/stdc++.h>using namespace std;int n,ma,cnt,k=1;st

2020-05-31 19:32:09 531

原创 第三届NOI Online入门组第三题 手表(watch)题解

第三届NOI Online入门组3.手表(watch)时间限制:1.0s空间限制:256MB题目描述Jimmy到Symbol的手表店买手表,Jimmy 只带了nnn种钱币,第iii种钱币的面额为kkki元,张数为aaai张。Symbol 的店里一共有mmm块手表,第i块手表的价格为ttti元。Symbol的手表店不能找零,所以Jimmy只能在凑出恰好的钱数时才能购买一块手表。现在对于店里的每块手表, Jimmy想知道他能不能凑出恰好的钱数进行购买。输入格式第一行两个空格分隔的整数nnn和mm

2020-05-27 10:21:45 1215

原创 P1162 填涂颜色 题解(勿抄袭)

P1162 填涂颜色题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2。例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 10 0 0 0 0 00 0 1 1...

2020-03-31 20:28:10 412

原创 4980:拯救行动 题解

4980:拯救行动——————————————————————总时间限制: 1000ms 内存限制: 65536kB描述公主被恶人抓走,被关押在牢房的某个地方。牢房用N*M (N, M <= 200)的矩阵来表示。矩阵中的每项可以代表道路(@)、墙壁(#)、和守卫(x)。英勇的骑士(r)决定孤身一人去拯救公主(a)。我们假设拯救成功的表示是“骑士到达了公主所在的位置”。由于在通往公...

2020-02-26 18:57:58 891

原创 P1433 吃奶酪 题解(勿抄袭)

P1433 吃奶酪题目描述房间里放着 n 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0) 点处。输入格式第一行一个正整数 n。接下来每行 2 个实数,表示第i块奶酪的坐标。两点之间的距离公式为输出格式一个数,表示要跑的最少距离,保留 2 位小数。输入输出样例输入#141 11 -1-1 1-1 -1输出#17.41说明/提示...

2020-02-22 16:58:20 2069 4

watch(二进制优化AC).cpp

https://blog.csdn.net/wei_wu_xian_/article/details/106373624

2020-05-27

空空如也

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

TA关注的人

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