🐒算法及ACM其相关
文章平均质量分 75
包含算法,ACM算法
风骨散人Chiam
我叫风骨散人Chiam,名字的意思是向往可以不低头的自由生活,可现实却不是这样,希望同样被生活绑架的你,可以通过自己的努力改变现状。目前在中国科学院攻读研究生,研究方向是网络安全和控制访问,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!
如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!你的点赞、收藏、关注是对我最大的鼓励!
在CSDN没什么收益,博主已经没有动力继续更新技术文章了,已经准备跑路了,大家如果想了解我的更改情况就去我的主页看看。
展开
-
每天一道Leetcod或者Codeforce算法系列
简单介绍力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。网站地址:https://leetcode-cn.com/Codeforces是全球最著名的在线评测系统之一,这里有高水平的选手,高质量的题目,高密度的比赛。该网站由俄罗斯的一个团体创立并负责运营。当然,该网站上大部分博客、评论、题面都是英语的。网站地址:http://codeforces.com/prob原创 2021-03-15 19:26:48 · 8014 阅读 · 1 评论 -
学了C++不会STL,简直少了左膀右臂
什么是STL :容器(Container):是一种数据结构,如list,vector,和deques ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;迭代器(Iterator):提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或vector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器也可以是那些定了operator*()以及其他类似于指针的操作符地方法的类对象;算法(Algorithm):是用来操作容器中的数原创 2020-06-02 22:03:07 · 4679 阅读 · 15 评论 -
『ACM-算法-动态规划』初识DP动态规划算法
一、多阶段决策过程的最优化问题在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段。在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。当阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展,当段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线,这个问题看作是个前后关联具有链状结构的 多阶段过程就称为多阶段决策过程,这就称...原创 2020-06-01 18:47:48 · 4113 阅读 · 0 评论 -
ACMer退役记(ACM的心路历程)
在这里我要水一篇博客,目的是感谢一个人,我希望和你一起进步一起努力,我是因为喜欢ACM所以开始做ACM,而不是为了拿奖。虽然都走了,但是ACM没有走,学习算法的日子,AC的日子很快乐,我想我会继续努力,无论结果如何,差点丢掉了初心,谢谢你。加油干!人对现实的无力,是因为能力不足,如果真的有能力,一个人在比赛中拿牌,那又会害怕什么?加油吧张俊浩,加油吧,想留下来的每个人,从今往后不再有督促...原创 2020-02-24 02:57:58 · 6000 阅读 · 6 评论 -
『ACM』国家集训队论文集(最新)(1999-2017)(全)
更新10月13日:链接:https://pan.baidu.com/s/13h3fhPZPAOJNxix99GXpSw提取码:o8ex国家集训队1999论文集陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤:《把握本质,灵活运用——动态规划的深入探讨》齐鑫:《搜索方法中的剪枝优化》邵铮:《数学模型的建立、比较和应用》石润婷:《隐...原创 2020-05-21 10:13:42 · 9218 阅读 · 31 评论 -
ACM一年记,总结报告(希望自己可以走得很远)
一、 知识点梳理(一) 先从工具STL说起:容器学习了:stack,queue,priority_queue,set/multiset,map/multimap,vector。1.stack:栈是一种只能在某一端插入和删除数据的特殊线性表。他按照先进先出的原则存储数据,先进的数据被压入栈底,最后进入的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后被压入栈的,最先弹出)。因此栈也称先进...原创 2019-06-18 15:34:57 · 2762 阅读 · 2 评论 -
ACM-ICPC 2019 山东省省赛总结
五题手快拿银,不然拿铜,甚至不拿,从结果上来看拿了铜牌对第一年的我们来说算好的,也不算太好。从拿奖后的第一天,我想写这篇博客,但是我忍了下来,那时候被喜悦冲昏了头脑,当 冷静下来,我开始打算写这篇博客。从心态方面分析:训练赛,热身赛,都是抗压,很少拿过第一,每次被碾压,都有种想哭出来的滋味,好在我们学会了抗压,在M题230的通过量,我们WA了4次之后,我们慌得还不是很厉害。没有去看排名,1小...原创 2019-05-14 14:02:48 · 3093 阅读 · 0 评论 -
算法学习经典例题整理
陆续会对本篇博客进行更新!搜索:https://vjudge.net/contest/292597区间DP:https://vjudge.net/contest/293892树状背包:https://vjudge.net/contest/292904分组背包:https://vjudge.net/contest/292902多重背包:https://vjudge.net/contest/...原创 2019-04-16 14:38:20 · 2597 阅读 · 0 评论 -
大学每天打游戏,不是混吃等死是什么?
附一篇文章 https://blog.csdn.net/yelvgou9995/article/details/84635317 44000+ 人一夜之间失业:一拖二懒三不读书,不淘汰你淘汰谁?在中国,有2000万大学生在假装上课?你每天就打打游戏,社会不养闲人,你不被社会淘汰,社会淘汰谁?进入大学之后发现,安逸的现状让大学生失去斗志没有再去拼搏的动力,上课变成了负担,学习知识成了被逼无奈,...原创 2019-03-30 08:41:43 · 2684 阅读 · 0 评论 -
疯子的算法总结(六) 简单排序总 选择排序+插入排序+比较排序+冒泡排序
一、数组的排序算法1.选择排序选择排序是指每次选择所需排序数组中的最大值或者最小值(根据排序方式选择,从大到小选最大,从小到大选最小),将这个元素与前面没有进行排序的元素交换。下面以1 4 2 5 9 6这些乱序元素,来表现排序过程。第一次排序 9 4 2 5 1 6第二次排序 9 6 2 5 1 4第三次排序 9 6 5 2 1 4第四次排序 9 6 5 4 1 2第五次排序 ...原创 2019-02-01 11:17:50 · 2574 阅读 · 0 评论 -
『ACM』ACM部分训练日记(以此纪念和队友与FLS一起度过的快乐时光)
2020-03-09终于痛定思痛的决定放弃了,遭不住了。想说的很多,对不起的人,也有很多,我想继续逃避下去,我不想在面对了,也有想骂的人,总之要走了,ACM真的是非常好的地方,不得不说再见了,再见了赛场。别人是退役,而我是太菜了,自己都不想看到自己。再见!退役博客以后再写吧,最近挺烦的。2020.2.28总结最近做题的感觉又回来了,等我长长情绪就回去接着甘数学,最近做DP的感觉很好,可能是因为学数学的思维有所提升的原因,但是做数学之后因为代码敲得少了,导致签到题一直调不出来,思路倒是挺快的,然原创 2020-05-26 19:26:11 · 6991 阅读 · 3 评论 -
算法分析设计--递归算法
What’s the 递归算法定义:程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量特点:任何一个可以用计算机求解的问题所需的计算时间都与其规模n有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。分治法的设计思想是,将一个难以直接解决的大问题原创 2020-05-18 14:33:11 · 3771 阅读 · 11 评论 -
算法分析与设计入门级--递推算法(这个要是学不会,就别学算法了)
啥是递推算法?递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。 递推算法的首要问题是得到相邻的数据项间的关系(即递原创 2020-05-12 00:10:41 · 3417 阅读 · 35 评论 -
蓝桥杯--算法入门级题目及答案解析
写在最前面:本文中会出现大量的请查阅.请自学什么的,不是我不讲,本文是面向算法初学者和蓝桥杯的文章,如果真的想看进阶算法的也不会来看这些题目,所以不要介意,我这里就算是抛砖引玉了,大佬勿喷,ACMEer绕道哈哈哈哈。1.杨辉三角形问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 11 3 3 1给出n,输出它的前n行。输入原创 2020-05-11 01:55:54 · 4635 阅读 · 0 评论 -
ACM及各类程序竞赛专业术语
AC (Accepted) 程序通过WA (Wrong Answer) 错误的答案PE (Presentation Error) 输出格式错误RE (Runtime Error) 程序执行错误 (常见于数组溢出、递归层数太多 …)CE (Compile Error) 编译错误MLE (Memory Limit Exceeded) 内存超界 (正式比赛没有内存限制,但如果用太多可能 RE)...原创 2020-04-09 21:48:08 · 2940 阅读 · 0 评论 -
疯子的算法总结11--次小生成树+严格次小生成树
一、总体思路首先,我这一题的思路是倍增LCA+Kruskal首先,kruskal求最小生成树 不会的戳这里 求次小生成树 倍增 LCA关键在于次小生成树怎么求:问自己一些问题 怎么求不严格次小生成树 不严格次小生成树为什么不严格 方法每次选择U—V之间的边,前提是最小生成树上不存在的边,添边之后删去较短边,使用LCA找到祖先,删边,这里保证次小生成树的...原创 2019-10-12 22:47:27 · 2761 阅读 · 0 评论 -
疯子的算法总结12--倍增
最近发现倍增讲的很少,这可以理解为二分新姿势!我们设想一个背景,公主被邪恶的王八抓走了,马里奥大叔这次要去救公主了,如果他到的不及时公主就要被杀死了,他能抱得美人归吗?马里奥有一种神奇的能力,它可以在一秒钟之内走任意距离!已经知道了王八城堡很高,在哪里都能看见!憨批马里奥:地球是圆的,我向相反的方向走,额。。。走多少米呢?不知道唉,于是他走了N圈地球后公主被杀了。淳朴马里奥:我每次直走...原创 2019-10-06 23:32:45 · 2585 阅读 · 0 评论 -
疯子的算法总结10--最小生成树Kruscal
按照权值排序可得,就有如下顺序:1. 1-2 12. 1-4 23. 1-5 24. 2-5 35. 2-3 46. 4-5 4每次选取最小边泉,判断是否同属一个集合,如果不属于同一集合,就把它加到左端点集合中,也就是说,两个点不属于一个集合说明这条边不在树中,即可将其加入左端点集合。下面我们模拟算法过程:每次,直接把每次找到的边找到,就可以了!...原创 2019-09-24 15:36:49 · 2624 阅读 · 0 评论 -
疯子的算法总结(九) 图论中的矩阵应用 Part 2 矩阵树 基尔霍夫矩阵定理 生成树计数 Matrix-Tree
定理:1.设G为无向图,设矩阵D为图G的度矩阵,设C为图G的邻接矩阵。2.对于矩阵D,D[i][j]当 i!=j 时,是一条边,对于一条边而言无度可言为0,当i==j时表示一点,代表点i的度。即:3.对于矩阵C而言,C表示两点之间是否存在边,当i==j时为一点无边可言为0,即:4.定义基尔霍夫矩阵J为度数矩阵D-邻接矩阵C,即J=D-C;5.G图生成树的数量为任...原创 2019-08-18 11:01:34 · 2649 阅读 · 0 评论 -
线性代数 矩阵 行列式基本知识(转)
本文章为网上收集资料,因原作者信息不明无法附上原作者信息,如有侵权立即删除点一下查看大图原创 2019-08-17 17:22:53 · 2551 阅读 · 0 评论 -
疯子的算法总结(八) 最短路算法+模板
Dijkstra:适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV)BellmanFord:适用于权值有负值的图的单源最短路径,并且能够检测负圈,复杂度O(VE)SPFA:适用于权值有负值,且没有负圈的图的单源最短路径,论文中的复杂度O(kE),k为每个节点进入Queue的次数,且k一般<=2,但此处的复杂度证明是有问题的,其实SPFA的最坏情况应该是O(VE...原创 2019-08-14 09:41:00 · 2686 阅读 · 0 评论 -
疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串
有点像DP的思想,写写就会做。#include<bits/stdc++.h>using namespace std;const int maxn=1e7+5;char a[maxn];char s[2*maxn];int len[maxn*2];int manachar(char *p){ int le=strlen(p); for(int i=0;...原创 2019-08-02 10:20:17 · 2834 阅读 · 0 评论 -
疯子的算法总结(六) 复杂排序算法 ② 桶排序
从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成...原创 2019-10-13 23:38:00 · 2511 阅读 · 0 评论 -
疯子的算法总结(六) 复杂排序算法 ① 归并排序 merge_sort()
归并排序采取了分治的思想,每次分别排左半边和右半边,不断递归调用自己,直到只有一个元素递归结束,开始回溯,调用merge函数,合并两个有序序列,再合并的时候每次给末尾追上一个最大int这样就不怕最后一位的数字不会被排序。#include <bits/stdc++.h>using namespace std;void merge(int a[],int n,int left ,in...原创 2019-07-27 16:29:01 · 2488 阅读 · 0 评论 -
疯子的算法总结(五) 矩阵乘法 (矩阵快速幂)
学过线性代数的都知道矩阵的乘法,矩阵乘法条件第为一个矩阵的行数等与第二个矩阵的列数,乘法为第一个矩阵的第一行乘以第二个矩阵的第一列的对应元素的和作为结果矩阵的第一行第一列的元素。(详解参见线性代数)于是我们可以写出矩阵惩乘法的代码struct JZ{ int m[maxn][maxn]; };JZ muti(JZ a,JZ b){ JZ temp; memset(te...原创 2019-07-26 16:47:17 · 2623 阅读 · 1 评论 -
疯子的算法总结(三) STL Ⅱ迭代器(iterator) + 容器
一、迭代器(Iterator)背景:指针可以用来遍历存储空间连续的数据结构,但是对于存储空间费连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历。定义:迭代器是一种检查容器内元素并遍历元素的数据类型。迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器(Iterator)是指针(pointer)的泛化,它允许程序员用相同的方式处理不同的数据结构(容器...原创 2019-06-11 17:27:40 · 2598 阅读 · 0 评论 -
疯子的算法总结(二) STL Ⅰ 算法 ( algorithm )
写在前面: 为了能够使后续的代码具有高效简洁的特点,在这里讲一下STL,就不用自己写堆,写队列,但是做为ACMer不用学的很全面,我认为够用就好,我只写我用的比较多的。什么是STL(STl内容):容器(Container):是一种数据结构,如list,vector,和deques ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;迭代器(Iterator):提供了...原创 2019-06-11 15:58:06 · 2561 阅读 · 0 评论 -
疯子的算法总结(一) 位运算(快速幂、快速乘)
一、预备知识(补码,反码)计算机通过二进制表示整形数,比如int型32位有符号整形数:1表示为:0000…00001(共32位)-1表示为:1111…1111(共32位)补码计算法定义:非负数的补码是其原码本身;负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。表示原因:计算机逻辑运算没有减法,-1+1最高为溢出,剩余0000000000(32位)即为0;则有a-b=a...原创 2019-06-04 18:03:27 · 2775 阅读 · 0 评论 -
疯子的算法总结(四)贪心算法
一、在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。二、贪心条件:含有最优子结构。三、利用贪心解决问题的关键需要考虑如何选取贪心标准。四、适用题型1.活动选择问题。这层楼沿着走廊南北向的两边各有200个房间。最近,公司要做一次装修,需要在各个办公室之间搬运办公桌。由于走廊狭窄...原创 2019-03-13 23:55:49 · 2655 阅读 · 0 评论 -
写代码?程序猿?你不能不懂的八大排序算法的Python实现
信息获取后通常需要进行处理,处理后的信息其目的是便于人们的应用。信息处理方法有多种,通常由数据的排序,查找,插入,删除等操作。本章介绍几种简单的数据排序算法和高效的排序算法.本章主要涉及到的知识点有:简单排序算法: 学会选择排序、冒泡排序、桶排序、插入排序的原理以及代码编写高效排序算法: 理解希尔排序,基数排序,快速排序和归并排序的原理1. 简单排序算法简单排序算法包括选择排序、冒泡排...原创 2020-03-13 15:22:54 · 2514 阅读 · 0 评论