#洛谷
您的无羡已上叽
这个作者很懒,什么都没留下…
展开
-
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 · 159 阅读 · 0 评论 -
蒟蒻の分治算法总结
分治算法定义将一个问题分解成多个子问题,将问题缩小到一定规模后逐个求解,最后合并所有子问题分治算法步骤分解(将原问题分解成一个形式相同规模更小的子问题)解决(递归求解子问题,直到问题的规模足够小,直接求解)合并(合并子问题的解,得到原问题的解)分治算法例题(实际应用)插入排序思路一道十分普通的O(n2)O(n^2)O(n2)时间复杂度题,使用类似打扑克牌时给牌排序的分治思想递归实现即可即:先给n-1张牌排序,再分成给n-2张牌排序,以此类推…直到只剩1张牌,则直接结束C原创 2020-09-05 10:31:23 · 175 阅读 · 0 评论 -
蒟蒻の常用排序算法总结
文章目录有比较的排序冒泡排序基本思想过程时间复杂度Code1Code_1Code1 未优化Code2Code_2Code2 优化例题[P1116 车厢重组](https://www.luogu.com.cn/problem/P1116)思路CodeCodeCode插入排序基本思想:过程:时间复杂度CodeCodeCode选择排序基本思想:过程时间复杂度CodeCodeCode归并排序基本思想:过程时间复杂度CodeCodeCode例题见“逆序对题解”快速排序基本思想:时间复杂度CodeCodeCode无原创 2020-08-26 15:16:00 · 777 阅读 · 0 评论 -
P1908 逆序对 题解
P1908 逆序对 题解原题链接题目描述猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aja_i>a_jai>aj且i<ji<ji<j 的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。原创 2020-08-22 20:05:51 · 1113 阅读 · 0 评论 -
蒟蒻の背包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 · 151 阅读 · 0 评论 -
蒟蒻の区间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 · 242 阅读 · 0 评论 -
蒟蒻の线性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 · 170 阅读 · 0 评论 -
蒟蒻の树形dp学习总结
定义树形dp,即基于树的结构进行dp特质一般来说树形dp在设状态转移方程时都可以用f[i][]表示i这颗子树怎么怎么样的最优解,实现时一般都是用子树更新父亲(即从下向上更新),那么首先应该考虑的是一个一个子树的更新父亲还是把所有子树都算完了在更新父亲?这就要因题而异了,一般来说有两种情况:1.需要把所有子树的信息都掌握之后再更新子树的就需要把所有子树都算完了在更新父亲。2.而像树上背包这样的问题就需要一个一个的更新,每次都用一个子树更新已经更新完的子树+父亲,最后就可以将这一部分的子树更新完了,原创 2020-08-05 17:36:42 · 118 阅读 · 0 评论 -
蒟蒻の线段树学习总结
定义线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[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 · 93 阅读 · 0 评论 -
蒟蒻の树状数组学习总结
定义树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。这种数据结构(算法)并没有C++和Java的库支持,需要自己手动实现。在Competitive Programming的竞赛中被广泛的使用。树状数原创 2020-07-31 13:46:30 · 93 阅读 · 0 评论 -
蒟蒻写的最小生成树学习总结
定义在一给定的无向图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 · 194 阅读 · 0 评论 -
哈夫曼树(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 · 1616 阅读 · 0 评论 -
状态压缩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 · 115 阅读 · 0 评论 -
线段树学习总结(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 · 198 阅读 · 0 评论 -
第三届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 · 524 阅读 · 0 评论 -
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 · 404 阅读 · 0 评论 -
P1433 吃奶酪 题解(勿抄袭)
P1433 吃奶酪题目描述房间里放着 n 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0) 点处。输入格式第一行一个正整数 n。接下来每行 2 个实数,表示第i块奶酪的坐标。两点之间的距离公式为输出格式一个数,表示要跑的最少距离,保留 2 位小数。输入输出样例输入#141 11 -1-1 1-1 -1输出#17.41说明/提示...原创 2020-02-22 16:58:20 · 2018 阅读 · 4 评论