自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

繁凡さん的博客

「无他,唯手熟尔」人生亦繁亦不凡!

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

原创 【题解】P1419 寻找段落(二分+单调队列)难度⭐⭐⭐★

P1419 寻找段落首先二分答案,即:二分最大平均值。我们将a全部减去mid,问题转化为判断是否存在一个长度在s~t范围内的区间它的和为正,如果有说明还有更大的平均值。用前缀和和单调队列维护。不会单调队列的点这里然后用单调队列求出sum[i]-min(sum[i-t]~sum[i-s]),然后判断是否大于0即可。#include<bits/stdc++.h>using ...

2020-02-29 21:40:50 123

原创 【题解】P1029 最大公约数和最小公倍数问题

目录P1029 最大公约数和最小公倍数问题方法一方法二P1029 最大公约数和最小公倍数问题方法一要知道最大公约数和最小公倍数的乘积就是原两个数的积。换成公式就是:x∗y=gcd(x,y)∗lcm(x,y)x*y=gcd(x,y)*lcm(x,y)x∗y=gcd(x,y)∗lcm(x,y)本题中是要找到符合条件的P=gcd(x,y)P=gcd(x,y)P=gcd(x,y)Q=lc...

2020-02-29 16:37:19 255

原创 【数论基础】欧几里德算法及其各种应用
原力计划

目录:辗转相除法1.问题引入:线段上格点的个数2.输入两个正整数,求最大公约数和最小公倍数3.P1029 最大公约数和最小公倍数问题辗转相除法辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。1.问题引入:线段上格点的个数问题描述:给定平面上的两个格点P1=(x1,y1)和P2=(x2,y2),线段P1P2上,除P1和P2以外一共有几个...

2020-02-29 12:52:36 330

原创 【图论】用一道题从本质上讲清楚Floyd算法

P1119 【灾后重建】4 51 2 3 40 2 12 3 13 1 22 1 40 3 542 0 20 1 20 1 30 1 4-1-154一道非常好的Floyd最短路练习题,从算法本质上出的题目,对于初学Floyd算法的人来说是绝佳的练习题首先我们从Floyd算法谈起,这是一个看上去很简单的算法-事实上也的确很简单,整个算法一共只有五行,三重循...

2020-02-28 22:50:58 137 1

原创 【图论】最小生成树算法(prim和kruskal详解及对比)

目录一.最小生成树之primprimprim算法primprimprim完整代码(计算最短距离并输出路径)堆优化版本二.最小生成树之kruskalkruskalkruskal算法kruskalkruskalkruskal完整代码(计算最短距离并输出路径)三.primprimprim和kruskalkruskalkruskal相对比1.1.1.时间上2.2.2.空间上3.3.3.USACO07DEC...

2020-02-28 20:13:43 591

原创 USACO07DEC道路建设Building Roads(prim算法+堆优化与Kruskal+路径压缩对比)

目录primprimprim算法KruskalKruskalKruskal算法P2872 [USACO07DEC]道路建设Building Roads4 11 13 12 34 31 44.00时间上:PrimPrimPrim 适合稠密图,复杂度为 O(n2)O(n^2)O(n2),因此通常使用邻接矩阵储存;但是堆优化为 O(nlogn)O(nlogn)O(nlogn)...

2020-02-28 20:09:26 199

原创 使用MarkDown编辑器做出有意思的柱状图(完整代码)

这是生成的效果{∣∣∣∣050100基础信用:100+练习情况:61+社区贡献:25+比赛情况:0+获得成就:0+总估值:186\def{\cGreen}{#52C41A} \def{\cOrange}{#F39C11} \def{\cYellow}{#FADB14} \def{\cRed}{#E74C3C} \def{\colorOfLine}{#A9A9A9} \def{\colorOfDi...

2020-02-28 18:18:40 1761

原创 CF231C To Add or Not to Add(思维,模拟)

CF231C To Add or Not to Add先排序,每次更新一个i就以a[i]为最终的答案来看当前区间里的这些数能否通过不大于k次的+1(排过序了就不会有-1了)操作实现区间内所有的值都为a[i],一旦大于k次就把最前面的pop掉(类似滑动窗口)#include<bits/stdc++.h>using namespace std;typedef long long ...

2020-02-27 18:12:38 109

原创 ACM竞赛技巧总结

目录1.更快(最快)的读入优化2.memset用来赋最大值(非1,0,-1)1.更快(最快)的读入优化struct ios { inline char gc(){ static const int IN_LEN=1<<18|1; static char buf[IN_LEN],*s,*t; return (s==t)&...

2020-02-26 21:31:13 497

原创 P2888 [USACO07NOV]牛栏Cow Hurdles(Floyd算法)

P2888 [USACO07NOV]牛栏Cow Hurdles行 1…T: 行 i 为一个整数,表示任务i路径上最高的栏的高度的最小值。如果无法到达,输出 -1。5 6 31 2 123 2 81 3 52 5 33 4 42 4 83 41 25 148-1注意:memset(dis,0x7f,sizeof dis);dis[0][0]=0x7f7f7f7f...

2020-02-26 21:11:58 122

原创 最短路合集(Dijkstra、SPFA、Floyd以及路径还原模板)
原力计划

目录一.Dijkstra算法1.堆(优先队列)优化版本:(慢,占用内存还大)2.线段树优化版本:(超快的)二.SPFA 算法三.Floyd算法一.Dijkstra算法4 6 11 2 22 3 22 4 11 3 53 4 31 4 40 2 4 31.堆(优先队列)优化版本:(慢,占用内存还大)#include<bits/stdc++.h>usin...

2020-02-26 19:39:46 279

原创 P4779 【模板】单源最短路径(标准版)(dijkstra模板)

dijkstra模板输入:4 6 11 2 22 3 22 4 11 3 53 4 31 4 4输出:0 2 4 3堆优化版本#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "<<endl;typ...

2020-02-26 12:51:30 123

原创 【题解】P1508 Likecloud-吃、吃、吃(简单DP)

题目链接题目描述正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中。某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个nm(n and m<=200)的矩型的巨型大餐桌,而自己正处在这个大餐桌的一侧的中点下边。餐桌被划分为了nm个小方格,每一个方格中都有一个圆形的巨型大餐盘,上面盛满了令李大水牛朝思暮想的食物。李大水牛已将餐桌上所有的食物按其所能提供的能量...

2020-02-25 22:15:55 147

原创 【图论】图,实现图(三种方式),二分图 详解
原力计划

目录一.图的基本概念1.度2.连通(1)连通图(2)强连通/强连通图3.回路4.完全图二. 邻接矩阵实现图三.邻接表实现图四.链式前向星实现图五. 二分图1.简单应用—二分图的判定2.P1155 双栈排序(二分图的染色判断+链式前向星)一.图的基本概念图(graph)并不是指图形图像(image)或地图(map)。通常来说,我们会把图视为一种由“顶点”组成的抽象网络,网络中的各顶点可以通过“边...

2020-02-25 21:11:36 941

原创 P1155 双栈排序(二分图的染色判断+链式前向星)

P1155 双栈排序让字典序最小,当然尽量进S1那什么时候必须进S2呢?a[i]和a[j] 不能压入同一个栈⇔存在一个k,使得i<j<k且a[k]<a[i]<a[j]因为一个数只能进出一次,k要排在前面所以弹出k时i和j都在栈里,如果两者在同一个栈弹出后顺序就错误了对于任意两个数t[i]和t[j],它们不能压入同一个栈中的充要条件: 存在一个k,使得i<...

2020-02-25 21:05:37 191

原创 SP348 EXPEDI - Expedition(有趣的贪心,优先队列)

SP348 EXPEDI - Expedition144 45 211 515 1025 102以下来自《挑战程序设计竞赛》以及我的辣鸡程序(竟然没超时!)#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "&...

2020-02-24 20:51:21 271

原创 【数据结构】堆,大根堆,小根堆,优先队列 详解
原力计划

堆要了解堆之前,请先了解树,因为堆是一颗完全二叉树如果不知道的话请点击下方链接了解树,二叉树,完全二叉树详解要注意的是首先堆是一颗完全二叉树其次堆中存储的值是偏序Min-heap(小根堆): 父节点的值小于或等于子节点的值Max-heap(大根堆): 父节点的值大于或等于子节点的值好吧其实就是实现自动排序O(logn)时间复杂度内实现插入,删除,O(1)查询1....

2020-02-24 20:39:27 2266

原创 非二叉树 UVA297 四分树 Quadtrees

UVA297 四分树 Quadtrees题意翻译如图所示,可以用四分图来表示一个黑白图像,方法是用根节点表示整幅图像,然后把行列个分成两等份,按图中的方式编号,从左到右对应4个子节点。如果某子节点对应的区域全黑或全白,则直接用一个黑节点或白节点表示;如既有黑又有白,则用一个灰节点表示,并且为这个区域递归建树。 给出两棵四分树的先序遍历,求二者合并(黑色部分合并)黑像素的个数(每幅图都是32X...

2020-02-24 16:31:09 574

原创 UVA699 下落的树叶 The Falling Leaves(二叉树的递归遍历建树)

UVA699 下落的树叶 The Falling Leavesbool型的函数一定不能忘了组后要加上return 1;或者return 0;!!!!#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "<<endl;type...

2020-02-24 12:45:19 139

原创 UVA839 天平 Not so Mobile(二叉树的递归遍历建树并回答问题)

UVA839 天平 Not so Mobile#include<bits/stdc++.h>using namespace std;#define debug(x) cout<<"# "<<x<<" "<<endl;typedef long long ll;const ll mod=2147483647;const ll...

2020-02-24 12:03:30 168 4

原创 树和二叉树(四种遍历,建树)详解+二叉排序树(包含图像和相关习题)
原力计划

目录树和二叉树一.树2.有序树和无序树3.森林4.树的基本性质二.二叉树的概念1.二叉树和度为2的有序树的区别:2.满二叉树3.完全二叉树:4.平衡二叉树:5.二叉树的遍历1.先序遍历(1)递归写法(2)先序非递归写法2.中序遍历3.后序遍历UVA548 树 Tree(通过中序遍历和后续遍历建树)4.层序遍历UVA122 树的层次遍历 Trees on the level(两种方法详解)6.二叉树...

2020-02-24 12:02:35 755

原创 UVA548 树 Tree(通过二叉树中序遍历和后序遍历建树并回答问题)

UVA548 树 Tree题意翻译输入一个二叉树的中序和后序遍历,请你输出一个叶子节点,该叶子节点到根的数值总和最小,且这个叶子是编号最小的那个。 输入: 您的程序将从输入文件中读取两行(直到文件结尾)。第一行是树的中序遍历值序列,第二行是树的后序遍历值序列。所有值将不同,大于零且小于或等于10000.二叉树的节1<=N<=10000。 输出: 对于每个树描述,您应该输出最小值路径...

2020-02-23 21:17:43 187 5

原创 UVA122 树的层次遍历 Trees on the level(两种方法详解)

UVA122 树的层次遍历 Trees on the level输入:(11,LL) (7,LLL) (8,R)(5,) (4,L) (13,RL) (2,LLR) (1,RRR) (4,RR) ()(3,L) (4,R) ()输出:5 4 8 11 13 4 7 2 1not complete//不管是左子树还是右子树,它们的父节点都是P/2;以下内容来自《算法竞赛入门经...

2020-02-23 10:04:56 234

原创 UVA679 小球下落 Dropping Balls(二叉树的编号)

许多的小球一个一个的从一棵满二叉树上掉下来组成一个新满二叉树,每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是 FALSE,当访问到一个节点时,如果这个节点是 FALSE,则这个球把它变成 TRUE,然后从左子树走,继续它的旅程。如果节点是TRUE,则球也会改变它为 FAL...

2020-02-22 17:32:39 127

原创 P1209 [USACO1.3]修理牛棚 Barn Repair(贪心+逆向思维)难度⭐⭐⭐

我们可以先假设只有一块木板从编号最小的牛棚一直铺到编号最大的牛棚,然后断开m-1处。自然要按相邻牛棚的编号差从大到小断开才能使我们断开的地方可以有效节省木板长度(因为中间省去的要更多)另外,要将输入的数据排序,数据可能不是按编号从小到大给的#include<algorithm>#include<iostream>#include<math.h>#i...

2020-02-22 12:21:30 184 4

原创 P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)

P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)洛谷上这道水题丧心病狂地把数据范围加到了500000普通的做法肯定A不了了,所以用二分哈希去找第一个不同的地方。在比较谁字典序小的时候,二分查找哈希值,找到最小元素使得哈希值不一样,然后比较就好了。#include<bits/stdc++.h>using ...

2020-02-20 17:58:35 162

原创 ACM 全部算法总结

ACM 所有算法数据结构 栈 队列 链表 哈希表 哈希数组 堆 优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维线段树 树状数组 一维树状数组 N维树状数组 字典树 后缀数组 后缀树 块状链表 哈夫曼树 桶 跳跃表 Tr...

2020-02-20 08:33:34 426 2

原创 UVA816 Abbott的复仇 Abbott's Revenge(final的BFS)(真•答案)

写这道题差点没把我气死,网上的好多题解看了半天结果是假的…题目PDF【分析】 利用队列实现广度搜索BFS来遍历图寻找最短路径。 用一个三元组(r, c, dir)表示“位于(r, c),面朝dir”这个状态。假设入口位置为(r0, c0),朝向为dir,则初始状态并不是(r0, c0, dir),而是(r1, c1, dir),其中,(r1, c1)是(r0, c0)沿着方向d...

2020-02-19 18:24:52 144

原创 [P1434 [SHOI2002]滑雪](DFS,记忆化搜索)

P1434 [SHOI2002]滑雪题目描述Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 2...

2020-02-19 15:44:46 106

原创 [SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐

[SCOI2005]栅栏(贪心+二分+dfs)P2329 [SCOI2005]栅栏题目描述农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材。于是农夫约翰到木材店购买木材。可是木材店老板说他这里只剩下少部分大规格的木板了。不过约翰可以购买这些木板,然后切割成他所需要的规格。而且约翰有一把神奇的锯子,用它来锯木板,不会产生任何损失,也就是说长度为10的木板可以切成长度为8...

2020-02-19 15:42:07 131

转载 C++11 unordered_map详细介绍

目录:1.介绍1.1 特性2. 模版2.1 迭代器3. 功能函数3.1 构造函数3.2 容量操作3.2.1 size3.2.2 empty3.3 元素操作3.3.1 find3.3.2 insert3.3.3 at3.3.4 erase3.3.5 clear3.3.6 swap3.3.7 示例代码C++11 unordered_map详细介绍1.介绍最近使用到一个c++的容器——unorde...

2020-02-18 21:14:13 5242

原创 UVA1103 古代象形符号 Ancient Messages解题报告(DFS,字符串)难度⭐⭐⭐⭐

题目翻译为了识别3000年前古埃及用到的6种象形文字。每组数据包含一个H行W列的字符矩阵(H≤200,W≤50 ),每个字符为4个相邻像素点的十六进制(例如,10011100对应的字符就是9c)。转化为二进制后1表示黑点,0表示白点。输入满足以下条件:不会出现上述6种符号之外的其他符号。输入至少包含一个符号,且每个黑像素都属于一个符号。输入至少包含一个符号,且每个黑像素都属于一个符号。每个...

2020-02-18 20:56:56 271

原创 使最新版Code::Blocks支持C++11标准

在使用最新版的Code::Blocks的时候发现如果使用C++11的unordered_map编译器就会报错:error: 'unordered_map' does not name a type因为Code::Blocks本身默认为C++98版本,需要用C++11的话要自己设置step1:首先让我们打开Code::Blocks 废话会发现有好多errorstep2:点击Settin...

2020-02-18 19:47:03 181

原创 stringstream与itoa(),atoi()详解及对比

目录stringstream一.概述二.应用(1)数据类型的转换(2)用于长句子中空格为界分割单词(3)stringstream的清空(`ss.clear();`与`ss.str("");`的区别)三.C++中stringstream的使用方法和样例(转)itoa函数与atoi函数一.概述二.itoa函数—将整型值转换为字符串(1)可以用itoa函数将10进制数转换成二进制数并用字符串输出atoi...

2020-02-16 11:42:42 262

原创 ACM_字符串模拟

目录字符串模拟1. 东东哥的等式(简单模拟)2.有几个zucc(字符数,简单排列组合)3.拼数(简单字符串,小技巧)4.CF1295B 【Infinite Prefixes】(字符串,前缀和,数论)5.CF1295C - Obtain The String(模拟取字符串子序列)6.nozomi和字符串 (字符串,滑动窗口,贪心)7.潜伏者(字符串,密码解密)8. CF16A Flag(字符串,ge...

2020-02-14 16:54:37 205

原创 ACM_模拟——数学问题

目录数学问题模拟计算多边形面积(叉乘)C++中sin函数的用法计算圆内接多边形边长1.强迫症的lpl2.喜欢斐波那契数的冰冰酱(斐波那契,同余定理)3.喜欢膜法的菜菜K(__gcb(),辗转相减)3.5最大公约数的应用:4.菜菜k的序列(选3个数使和为0,数据较大)5.做计数(完全平方数,因数,满足等式)7.M-破碎的愿望P1158 导弹拦截(前缀后缀优化, 求最短距离)1.CF11B Jumpi...

2020-02-14 16:25:23 322

转载 线段树 从入门到进阶(超清晰,简单易懂)

目录第一部 概念引入第二部 简单(无pushdown)的线段树1、单点修改,区间查询2、区间修改,单点查询第三部 进阶线段树第四部 乘法(根号)线段树1、乘法线段树2、根号线段树模板题与代码:单点修改,区间查询:洛谷树状数组模板1区间修改,单点查询:洛谷树状数组模板2区间加法,洛谷线段树模板1区间乘法:洛谷线段树模板2区间根号,bzoj3211线段树是什么??线段树怎么写??如果你在考提高组前...

2020-02-12 11:08:57 6021 16

原创 【动态规划】数学期望/概率DP/期望DP详解

期望DP概述规律全概率公式例题1.UVA11021 Tribles麻球繁衍2.算概率(简单,数论)概述一般来说,概率DP找到正确的状态定义后,转移是比较容易想到的。但状态一定是“可数”的,把有范围的整数作为数组下标。事实上,将问题直接作为状态是最好的。如问“n人做X事的期望次数”,则设计状态为f[i]表示i个人做完事的期望。转移一般是递推,即从上一个状态转移得(填表)或转移向下一个状态(刷表)...

2020-02-12 10:18:41 969

原创 线段树 (经典题目合集)

P3372 【模板】线段树 1#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=1e5+7;const ll mod=2147483647;ll n,m;struct node{ ll l,r,sum,lz;}tree[N];ll arr[N];void b...

2020-02-11 22:28:47 234

原创 汉诺塔原理超详细讲解+变式例题

目录一.汉诺塔详解1.详解2.完整代码二.汉诺塔公式:ans=2^n^-11.例题:P1760 通天之汉诺塔三.变式1:牛牛的汉诺塔四.变式2:P4285 [SHOI2008]汉诺塔一.汉诺塔详解1.详解汉诺塔汉诺塔在汉诺塔游戏中,有三个分别命名为A、B、C得塔座,几个大小各不相同,从小到大一次编号得圆盘,每个原盘中间有一个小孔。最初,所有得圆盘都在A塔座上,其中最大得圆盘在最下面,然后...

2020-02-10 17:38:44 4459 3

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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