
算法以及模板
用于保存c语言相关算法
tran_sient
曾经我是一只小白,现在是一只大白。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【并查集】- 模板
并查集模板:#include<bits/stdc++.h>using namespace std;const int maxn=1000005;typedef int ll;ll a[maxn],f[maxn];ll find(ll x){ if(x!=f[x]){ f[x]=find(f[x]); //路径压缩 } return f[x];}//ll find(ll x){// int j=x,y;// while(j!=f[j]){// j=f[j];//原创 2020-10-24 09:24:32 · 160 阅读 · 0 评论 -
二分查找模板 - BinarySearch
引言:据说90%的程序员不能正确的实现二分查找,你可以先自己试试哈,反正我写了好久才改对。模板题目:Binary Search题目描述A binary search algorithm (or binary chop) is a technique for finding a particular value in a sorted list. It makes progressivel...原创 2020-03-21 10:27:02 · 333 阅读 · 2 评论 -
poj 2352 Stars
树状数组经典题目题目描述:DescriptionAstronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the sta...原创 2019-07-26 16:11:57 · 402 阅读 · 0 评论 -
字典树 01字典树【数据结构】
题目描述:统计难题Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一...原创 2019-07-25 15:07:22 · 544 阅读 · 0 评论 -
线段树总结及例题 - 【数据结构】
线段树最近在学线段树,这个东西真的是有点难度,看了我整整两天才理解他的意思,其中最难的我觉得就是对懒惰标记的理解吧。引言:有一些题目,总是跟区间相关,比如求区间上的最大值与最小值,但是我们要的是n次询问,每次求最大值最小值,暴力就会t,不解释,可以用RMQ,也可以用线段树做。再比如说,每次询问一段区间的和,前缀和对吧?的确可以做。那我修改一下,每次询问有两种情况,即将某一区间的每个数加上一个...原创 2019-07-23 16:36:42 · 373 阅读 · 0 评论 -
poj 3624 Balanced Lineup -【数据结构】- ST表
RMQ算法应用:假如我给你n个数,然后有m次询问,每次询问求一段区间,[l,r]上得极差。循环暴力跑一遍,很简单得对吧,但是我们稍微让n的值大一点,m的值也大一点,很容易就让你Time limit exceed。所以,本算法就是专门解决此类问题的,求一段区间上的最大值和最小值,其实也可以用线段树,但是这类题目线段树反而没有RMQ快,而且线段树的实现很复杂,我现在还不会,QAQ。实现思想1....原创 2019-07-22 20:28:23 · 323 阅读 · 0 评论 -
HDU 2063 图论 -【匈牙利算法】
匈牙利算法**什么是匈牙利算法:**其实就是找二分图(离散数学一般叫二部图)的最大匹配,是一个递归的过程。直接给题目上板子吧。题目链接:过山车题目描述:Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女...原创 2019-07-19 11:20:37 · 281 阅读 · 0 评论 -
HDU - 1863【图论】- 最小生成树 Kruskal+Prim
题目:HDU-1863Kruskal算法:int f[maxn];struct node{ int u,v; int w; bool operator < (const node &s) const{ return w<s.w; }}edge[maxn];用一个结构体来存储每一条边,f数组用来作点集,即并查集。细心...原创 2019-07-17 14:38:01 · 264 阅读 · 1 评论 -
图论 -【拓扑排序】
拓扑定义:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。...原创 2019-07-16 15:48:38 · 448 阅读 · 1 评论 -
HDU-1874【最短路的算法Dijkstra和SPFA(链式前向星)】
最短路径问题引言:最短路大家都不陌生吧,他可以是两点之间的最短路(Floyd),也可以是单源最短路,即一个点到其他点的最短距离(Dijkstra和SPFA)。Floyd对于n个顶点(n>100)的图,就会T,所以我们经常用后面两种算法。相关题目:HDU-1874:畅通工程续这道题吧,随便一种方法都能过…很神奇。接下来是三种方法解这道题:1.Floyd:for(int k=0...原创 2019-07-16 14:12:23 · 385 阅读 · 0 评论 -
POJ 2184 【01背包问题负权变体】
变化的01背包题目描述:题目:Cow ExhibitionDescription“Fat and docile, big and dumb, they look so stupid, they aren’t muchfun…”Cows with Guns by Dana LyonsThe cows want to prove to the public that they are...原创 2019-07-08 16:12:06 · 422 阅读 · 0 评论 -
HDU - 1398 完全背包问题求方案数
题目描述:Problem DescriptionPeople in Silverland use square coins. Not only they have square shapes but also their values are square numbers. Coins with values of all square numbers up to 289 (=17^2), i...原创 2019-07-07 15:04:22 · 663 阅读 · 0 评论 -
HDU 1059 - Dividing【多重背包】
多重背包之二进制优化题目描述:Problem DescriptionMarsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be e...原创 2019-07-07 00:21:35 · 167 阅读 · 0 评论 -
POJ 1384 Piggy-Bank【完全背包】
完全背包简单题目题目:DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). ...原创 2019-07-06 10:25:05 · 233 阅读 · 0 评论 -
HDU - 1078 FatMouse and Cheese
再谈记忆化搜索题目描述:FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. A...原创 2019-07-05 15:54:14 · 259 阅读 · 0 评论 -
初学-【记忆化搜索】
记忆化搜索:顾名思义就是dfs+dp,简…一点不简单,很暴力。不多BB,直接上题:Virtual Judge - How many ways参考思路和我的见解:这是一道搜索题,迷宫大家都做过吧,不过这道题有一点点不一样。他并不是求解迷宫而是求一种变解问题,与迷宫相似的地方是他也是求解路径,路径的个数。当然普通的搜索,呵呵呵,搜不死你。我们解决方案是采用记忆化搜索来求解,记忆化搜索…额,这...原创 2019-07-04 19:44:47 · 324 阅读 · 0 评论 -
循环节 - 【数论】
循环节引言:小学的规律题大家不陌生吧,经常跟取余数挂钩的那种,其实挺简单的。比如给你一个序列1 3 5 7 9 1 3 5 7 9 1 3 …这就是小学题目嘛,对吧看着好简单。循环节:其实现在很多题目也要用到同样的方法,打表找出循环节点,然后再去处理它。这类题目往往有些特点,数据大,结果取模。例题:All X:hdu 5690Problem DescriptionF(x,m) 代表...原创 2019-07-30 10:15:28 · 5548 阅读 · 0 评论 -
poj - 2142 超详细解释 数论【扩展欧几里得】
扩展欧几里得题目链接:The Balance题目大意:输入三个数,a,b,d。a和b分别代表两种砝码,d代表要称的重量。题意就是用x个a砝码和y个b砝码称出d重量,砝码可以都放在一边,也可以放在两边,但是放两边的砝码的每一边必须是同种砝码,求最小的x,y并使得x+y最小。于是问题就转换成了求解ax+by=d这个方程。扩展欧几里得就是专门解决这类问题的,扩展欧几里得就是求解ax+by=gcd(...原创 2019-07-18 16:01:56 · 605 阅读 · 2 评论 -
【矩阵快速幂】- 洛谷 p3390 模板题 (补一道斐波那契数列)
矩阵快速幂大意:就是对矩阵求快速幂,将快速幂中res=1换成单位阵,而取模运算完全在我们定义的乘法运算中进行,即Mul,其他的跟快速幂没有区别,当然我现在只掌握了基础,所以做了一道模板题。题目描述:题目链接:洛谷-p3390题目背景矩阵快速幂题目描述给定n*n的矩阵A,求A^k输入输出格式输入格式:第一行,n,k第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第...原创 2019-07-11 18:30:40 · 464 阅读 · 3 评论 -
【数论基础】- 欧拉降幂和卢卡斯定理
欧拉降幂公式:例题:poweroj - 2366题目描述:题意:计算ab的c次幂 %1000000007。输入:a,b,c。输出:取模后的结果。分析:这道题就是一个板子,直接套公式,只不过有两层。直接完全套公式…很暴力。代码:#include<stdio.h>#include<iostream>#include<algorithm>...原创 2019-07-11 14:39:55 · 1274 阅读 · 0 评论 -
【数论基础】- 扩展欧几里得
拓展欧几里得定义:扩展欧几里得算法是欧几里得算法(又叫辗转相除法)的扩展。除了计算a、b两个整数的最大公约数,此算法还能找到整数x、y(其中一个很可能是负数)。通常谈到最大公因子时, 我们都会提到一个非常基本的事实: 给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b)。有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数——这是众所周知的。然后,...原创 2019-07-11 09:15:19 · 333 阅读 · 0 评论 -
【数论基础】- 素数筛
两种素数筛法引言:唯一分解定理:算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3…Pnan,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。**思想:**素数可以组成其他的所有合数,所以我们对每一个素数进行筛选的时候,可以考虑素数组成的数,那就一定...原创 2019-07-10 11:30:02 · 228 阅读 · 0 评论 -
【数论基础】- 欧拉函数
什么是欧拉函数定义:在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。通式:欧拉函数的通式:φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p...原创 2019-07-09 16:25:08 · 1134 阅读 · 0 评论