07 2018 档案
浅谈线段树
摘要:博客内容主要来自https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html 感谢原博主大大,代码部分我根据我的习惯进行了更改 数据结构——线段树 1、引例 A.给出n个数,n<=100,和m个询问,每次询问区间[l,r]的和,并输出。 一种回答:这
老鼠农药问题(二进制状态压缩)
摘要:有1000瓶药水,其中只有一瓶有毒。现在用小白鼠进行实验,小白鼠只要服用任意量有毒药水就会在24小时内死亡。问至少要用多少只小白鼠进行实验才能检测出哪瓶药水有毒? 解题思路: 给1000个瓶分别标上如下标签(10位长度): 0000000001 (第1瓶) 0000000010 (第2瓶) 0000
Divide by three, multiply by two(DFS+思维)
摘要:Polycarp likes to play with numbers. He takes some integer number x, writes it down on the board, and then performs with it n−1 operations of the two
Minimum Sum of Array(map迭代器)
摘要:You are given an array a consisting of n integers a1, ..., an. In one operation, you can choose 2 elements ai and aj in which ai is divisible by aj an
C++ STL map
摘要:之前写过一篇关于map容器的一篇博客,但是只有一些基础操作,后来我在CSDN上看到了一位大佬写的博客于是转载过来了。 作者大大的博客https://blog.csdn.net/sunshinewave/article/details/8067862 —————————————————————————
Friends and Cookies(思维)
摘要:Abood's birthday has come, and his n friends are aligned in a single line from 1 to n, waiting for their cookies, Abood has x cookies to give to his f
Split the Number(思维)
摘要:You are given an integer x. Your task is to split the number x into exactly n strictly positive integers such that the difference between the largest
Flip the Bits(思维)
摘要:You are given a positive integer n. Your task is to build a number m by flipping the minimum number of bits in the binary representation of n such tha
Intense Heat(前缀和或尺取)
摘要:The heat during the last few days has been really intense. Scientists from all over the Berland study how the temperatures and weather change, and the
Coins and Queries(map迭代器+贪心)
摘要:题意 n个硬币,q次询问。第二行给你n个硬币的面值(保证都是2的次幂!)。每次询问组成b块钱,最少需要多少个硬币? Example Input 5 42 4 8 2 4851410 Output 1-132解题思路:总体上使用的是贪心策略,从最大面值的往下贪心选择就可以了,由于数据量较大这里使用了m
Java大数处理
摘要:Java在大数的处理上比C确实流氓多了,在这里我整理一些有关Java的一些基础知识和模板,以便之后学习。 内容大多摘自两位师哥,这里给出原文的链接 爱国师哥https://www.cnblogs.com/aiguona/p/9133554.html --福星师哥https://blog.csdn.n
错位排列
摘要:问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错
什么是动态规划?动态规划的意义是什么?(转自知乎)
摘要:之前在师哥在讲动态规划的时候就推荐我们阅读一下这个在知乎下的一个回答,当时并不放在心上,现在做了一些动态规划的题目,经常产生一些疑惑与迷茫,现在拜读了这篇文章,觉得自己获益匪浅,于是做一下分享。 知乎关于这篇文章的链接https://www.zhihu.com/question/23995189/a
迭代法求解方程(组)的根
摘要:摘自福星师哥的博客在这里给出链接https://blog.csdn.net/Akatsuki__Itachi/article/details/80719686 首先,迭代法解方程的实质是按照下列步骤构造一个序列x0,x1,…,xn,来逐步逼近方程f(x)=0的解: 1)选取适当的初值x0; 2)确定
打字(贪心)
摘要:Description snow 是个热爱打字的家伙,每次敲出更快的速度都会让他很开心。现在,他拿到一篇新的打字文章,已知这篇文章只有 26 个小写英文字母,给出 snow 打出这 26 个英文字母分别需要多少时间 (s),问 snow 打完这篇文章获得的 kpm(打正确的字数/所花的分钟数)最大为
Advanced Fruits (最大公共子序列的路径打印)
摘要:The company "21st Century Fruits" has specialized in creating new sorts of fruits by transferring genes from one fruit into the genome of another one.
动态规划——最长上升子序列LIS及模板
摘要:LIS定义 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3
算法设计与分析/动态规划——最长公共子序列LCS及模板
摘要:摘自 https://www.cnblogs.com/hapjin/p/5572483.html 这位大佬写的对理解DP也很有帮助,我就直接摘抄过来了,代码部分来自我做过的题 一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串
Rescue(BFS时间最短 另开数组或优先队列)
摘要:Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and
扩展欧几里得与乘法逆元
摘要:一。欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 递归实现: 优化 迭代实现 二.扩展欧几里德算法 基本算法:对于不完全为 0 的
康纳的表情包(思维)
摘要:UMR 现在手里有 n 张康纳的表情,最上面一张是玛吉呀巴库乃。现在 UMR 如果每次把最上面的 m 张牌移到最下面而不改变他们的顺序及朝向,那么至少经过多少次移动玛吉呀巴库乃才会又出现在最上面呢? UMR 现在手里有 n 张康纳的表情,最上面一张是玛吉呀巴库乃。现在 UMR 如果每次把最上面的 m
从零开始的异世界生活(前缀和)
摘要:Description 486 作为有史以来最悲惨的男主,我们知道他需要经历一些无限次的死亡和轮回才能进行下一个关卡。 现在给你 n 个连续的时间点,每个时间点 i 上都会有一个心理伤害值 hurt[i],然后告诉你 m 个死亡时间点 deth[i],以及当前死亡时间点会死亡的次数 num[i],和
魔戒(广搜)
摘要:Description 蓝色空间号和万有引力号进入了四维水洼,发现了四维物体--魔戒。 这里我们把飞船和魔戒都抽象为四维空间中的一个点,分别标为 "S" 和 "E"。空间中可能存在障碍物,标为 "#",其他为可以通过的位置。 现在他们想要尽快到达魔戒进行探索,你能帮他们算出最小时间是最少吗?我们认为
深搜(DFS)与广搜(BFS)区别
摘要:最近做了不少的搜索题,时而用到DFS时而用到BFS,这里对两种搜索方法做一个总结。 广度优先搜索算法(Breadth-First-Search,缩写为 BFS),是一种利用队列实现的搜索算法。简单来说,其搜索过程和 “湖面丢进一块石头激起层层涟漪” 类似。 先搜索邻居,搜完邻居再搜邻居的邻居。 其中
Line belt(三分镶嵌)
摘要:In a two-dimensional plane there are two line belts, there are two segments AB and CD, lxhgww's speed on AB is P and on CD is Q, he can move with the
离散化+去重+二分查找
摘要:离散化 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1,999,100000,15;处理后:1,3,4,2; 原数据:{100,200},{20,50000},{1,400}; 处
Reversing Encryption(模拟水题)
摘要:A string s<!--?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/1998/Math/MathML" NS = "http://www.w3.org/1998/Math/MathML" /-->s of length nn can
Alphabetic Removals(模拟水题)
摘要:You are given a string ss consisting of nn lowercase Latin letters. Polycarp wants to remove exactly kk characters (k≤nk≤n) from the string ss. Polyca
Mishka and Contest(模拟水题)
摘要:Mishka started participating in a programming contest. There are nn problems in the contest. Mishka's problem-solving skill is equal to kk. Mishka arr
DFS中的奇偶剪枝(技巧)
摘要:剪枝是什么,简单的说就是把不可行的一些情况剪掉,例如走迷宫时运用回溯法,遇到死胡同时回溯,造成程序运行时间长。剪枝的概念,其实就跟走迷宫避开死胡同差不多。若我们把搜索的过程看成是对一棵树的遍历,那么剪枝顾名思义,就是将树中的一些“死胡同”,不能到达我们需要的解的枝条“剪”掉,以减少搜索的时间。 这里
三分法搜索
摘要:二分法适用于求单调的时候用的,就比如说排序好的数组,那是递增的或者递减的。如果像出现了非单调函数那样的怎么求它的最值呢? 二分法早就失去了他的意义了。不过还是可以用三分法来实现的,就是二分中再来二分。三分查找的算法,对于求凸性或凹性函数的极值非常方便 如图所示,已知左右端点L、R,要求找到极值点的位
最短的包含字符串 (尺取)
摘要:给出一个字符串,求该字符串的一个子串s,s包含A-Z中的全部字母,并且s是所有符合条件的子串中最短的,输出s的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。 Input 第1行,1个字符串。字符串的长度 <= 100000。 Output 输出包含A-Z的最短子串
与7无关的数(前缀和)
摘要:一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7无关的正整数的平方和。 例如:N = 8,<= 8与7无关的数包括:1 2 3 4 5 6 8,平方和为:155。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1
简单DP
摘要:1.一只小蜜蜂 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。 Input输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。 Output对于每个测试实
单源最短路——SPFA算法(Bellman-Ford算法队列优化)
摘要:spfa的算法思想(动态逼近法): 设立一个先进先出的队列q用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点放入队尾。这样不断从队列中取出结点来进行松弛操作,直至队列
A Compatible Pair
摘要:Description “年”是一个生活在海洋深处的怪物。每年,它都出现在陆地上,吞噬牲畜甚至是人。为了让怪物离开,人们用红色,光线和爆炸的声音填满他们的村庄,所有这些都吓跑了怪物。 小汤米有 n 个灯笼,大班班有灯笼。汤米的灯具有亮度a1,a2,...,an,而Banban的亮度分别为亮度b1,b
欧拉函数知识点总结及欧拉函数打表代码(数论)
摘要:一、概念: 在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。 例如φ(8)=4,因为1,3,5,7均和8互质。 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1). (初学者一定注意:此处的
Fafa and the Gates(模拟)
摘要:Two neighboring kingdoms decided to build a wall between them with some gates to enable the citizens to go from one kingdom to another. Each time a ci
路由器如何设置上网(TP-LINK)
摘要:最近宿舍公用的网络一直不太稳定,正赶上毕业季,本来就打算自己买一台自用的路由器,于是我从一个毕业的师姐手里15RMB收了一台路由器,师姐还给了我一根5m的网线和两根全新15m的,感觉光网线就赚翻了。 下面是设置路由器上网的步骤 一、连接线路 将前端上网的宽带线连接到路由器的WAN口,上网电脑连接到路
C语言sizeof() 和 strlen() 区别
摘要:转载自:https://www.jb51.net/article/61506.htm 1、编译时计算运算符sizeof,可用类型或变量做参数,计算占用内存的大小。sizeof后若是类型必须加括弧,若是变量名可不加括弧。sizeof(x)可用来定义数组维数如: printf("%d\n", sizeo