随笔分类 - 简单算法
摘要:图论基础 图的相关概念 1,图,点和边的集合。 a,顶点:图中的数据元素称为顶点. b,有向图:有方向的图叫有向图. c,无向图:没有方向的图叫无线图. d,完全图:有n(n 1)/2条边的无向图称为完全图. e,有向完全图:具有n(n 1)条弧的有向图称为有向完全图. f,稀疏图:有很少条边或弧的
阅读全文
摘要:vector 略。 set / set简单示例。 所用函数主要为: set::insert();插入 set::begin();返回头指针(或是迭代器); set::end();返回尾指针(或是迭代器)(下一个空地址的开始位置); iterator 迭代器,因为不清楚,所以这样不予详细解释。 / 定
阅读全文
摘要:队列 特点:先进先出,模拟递归,运用于算法设计; 常用操作: 优先队列 特点:按照键值的大小排队,stl里的用 "大小根堆" 来实现, 常用操作:
阅读全文
摘要:这里谈一下全排列的几种实现及我的理解; 1,递归实现,即从头位向尾位交换,首次递归首位,待首位的之后的情况全部确定之后,交换首位,继续处理其后的情况,当首位确定之后,第二位为首位,相识的思路,直到末尾 即可输出。 代码1: 代码2: 3,stl中已包含std::next_permutation与st
阅读全文
摘要:题意:用N个三角形最多可以把平面分成几个区域? idea:模拟简单数据,用已知数据加待定系数法确认,从高维降维即可。 代码: #include <bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--) {
阅读全文
摘要:题意:给两个串,问前i个数是否循环匹配?匹配输出1,否则输出0; idea:循环匹配无非是把第一个串前面的放在后面或者后面放在前面,所以就进行相互匹配,当然线性匹配就是kmp,第一个做模式串就是检查第一串的前和第二串后有多少匹配,第二串做模式串,检查第一串的后和第二串的前有多少匹配,相加和串的长度对
阅读全文
摘要:1618: Scheduling Problem Description Eric owns a company, as you know, in the company there are lots of jobs to do. Each job J has a processing requir
阅读全文
摘要:大神说是水题,可我小白; 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5839 题意:给n个不重且为正数点(范围2000),问满足题意的四个点的组数; 条件1:四个点可以构成一个四面体,并且最少有四个边相等;2:如果仅有四个边相等,不相等的两边不相邻
阅读全文
摘要:水题; 题意:给你n个球,在一维方向上,每个球给三个量,分别为初速度v,初始坐标x,方向(1||-1),每个球会运动,加速度为a,满足a*v=c,c已知,可能会完全碰撞,问第t秒第k小的速度是多少; 想法:第一眼看到a*v=c,立即想到了高中物理的恒定功率,小车的加速阶段的运动模型,设m=1,则a*
阅读全文
摘要:水题,小白练手。 想法:即是最近距离,并且只允许走直线,x和y方向上就没太大关系,那就只考虑一维就够了,一维到一个点距离最近,2n个点中找一个最近距离,应该是二分点集任意区域都可以,这点可以用样例来证明下,两次找中心即得坐标; 代码: #include <iostream> #include <st
阅读全文
摘要:水题 题意:有n个城市,给你每个城市能到达城市的数量,要你构图,输出有向边,要求无环,输出任意的解 例: Sample Input 3 3 2 1 0 2 1 1 4 3 1 1 0 3 3 2 1 0 2 1 1 4 3 1 1 0 Sample Output Case #1: Yes 2 1 2
阅读全文
摘要:理解:sg函数,sg函数是博弈中表示当前状态的函数,具体的体现就是sg【】数组存的状态0为必败(或必胜看题意),非零即为相反的状态; 因为是博弈,并采取最优策略,所以,当自己处于必胜态时,一定会把对手逼到必败态,对手无奈只能从给你必胜态,所以必胜态和必败态必然相连,只是先后手交替,才有了必 胜策略,
阅读全文
摘要:标题:Mishka and trip 题意:给你n个城市及其权值,城市分为普通和省会城市,普通城市为有道路通向相邻的城市,省会通向所有的城市,路的权值等于城市权值的积,问所有路的权值和。 思路:因为省会城市是积相加,所以可以化成和的积,然后去除重和的部分,加上城市环上没有连接的部分就够了。 总结:积
阅读全文
摘要:c语言入门,小白作哈; 题意: 游戏的规 则是这样的:计算机随机产生一个四位数,然后玩家猜这个四位数是什么。 每猜一个数,计算机都会告诉玩家猜对几个数字,其中有几个数字在正确的位置上。 比如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在 于这两个数中,而且1在这两个
阅读全文
摘要:好长时间没写博了,这里写下自己对kmp的理解好了,小白之作。 kmp算法又称看毛片算法,是一种高效的字符匹配算法,主要对重复的匹配量有很大的优化作用,其中关键在于next数组的求解;next数组求解是用向前跳转对比的方法,记录当前向前跳转的下标(next[]),后面对比的时候能够直接向后对比,适配的
阅读全文
摘要:题意: 给定一个数x,求正整数y≥2y\geq 2y≥2,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次。 思路: 开根号上下搜索,枚举素数的方,判断是否成立,题目数据1e18,开根1e9,故判断是否包含素数方只需要枚举4*1e4内的素数就够了,完全在可解
阅读全文
摘要:小白错误总结之暴int: 题目大意:给你一系列的数字,拿出两个进行匹配,看是否是2的幂,输出总匹配数;数据范围1e9,长度1e5; 想法:匹配分为跟自己匹配和跟另一个数进行匹配,自己配就是排列n找2,n!/(n-2)!,不同直接乘。 考虑到数字相同的情况,就要考虑到压缩,排序(sort,o(n*lo
阅读全文
摘要:题目大意:给一字符和一字符串,求包含这字符的连续子串的个数。 题解:处理出后缀数组中的sa[]数组和height[]数组。在不考虑包含字符X的情况下,不同子串的个数为sum+=length−(sa[i]+height[i]);(i:1->n)1lengthlength−(sa[i]+heigh
阅读全文
摘要:小白之作,自此保留模板,感想日后在作修改 对模板的理解么,SA数组,表示将S的n个后缀从小到大排序后把排好序的后缀的开头位置顺次放入SA中,heigh数组就是把相邻的进行对比操作,保留相邻最长公共前缀,数组的所以信息都在这里了,怎么用就看自己,复杂度因为用了倍增算法还有其他的优化,为o(n)左右。
阅读全文

浙公网安备 33010602011771号