
算法
糖人豆丁
这个作者很懒,什么都没留下…
展开
-
HDU 1754 I hate it
/*B - I Hate ItTime Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmitStatusDescription很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一原创 2015-11-17 21:56:56 · 359 阅读 · 0 评论 -
prim求最小生成树——Highways
Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27038 Accepted: 12363 DescriptionThe island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no publi原创 2016-03-13 17:21:01 · 394 阅读 · 0 评论 -
并查集
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 30182 Accepted: 14678 DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiol原创 2016-03-14 19:33:47 · 342 阅读 · 0 评论 -
快速幂运算
/* * 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出3个正整数A B C,求A^B Mod C。 例如,3 5 8,3^5 Mod 8 = 3。 Input 3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 *原创 2016-04-09 09:35:06 · 497 阅读 · 0 评论 -
PyTorch使用笔记
将data, target, loss层,神经网络模型放到GPU上!在构造模型时,可以使用这种方法,直接使用nn.Sequential来构造!这样在forward时可以直接用一个self.model来做!class MLP(nn.Module): def __init__(self): super(MLP, self).__init__() s...原创 2019-02-01 18:24:51 · 314 阅读 · 0 评论 -
快速排序(Python实现)
一、 算法介绍快速排序是经常考查到的排序算法,这里对快排算法做一下总结。快速排序是“交换”类的排序,它通过多次划分操作实现排序!以升序为例,其执行流程可以概括为:每一趟排序选择当前所有子序列的一个关键字(通常是第一个)作为枢轴量,将子序列中比枢轴量小的移到枢轴前边,比枢轴大的移到枢轴后边,具体过程是一个交替扫描和交换的过程。当本趟所有子序列都被枢轴以上述规则划分完毕后会得到新的一组更短的子序列,...原创 2019-03-16 14:47:41 · 24413 阅读 · 16 评论 -
Python实现迪杰斯特拉算法
一、 迪杰斯特拉算法思想Dijkstra算法主要针对的是有向图的单元最短路径问题,且不能出现权值为负的情况!Dijkstra算法类似于贪心算法,其应用根本在于最短路径的最优子结构性质。最短路径的最优子结构性质:如果P(i,j)={Vi…Vk…Vs…Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路径。证明:假设P(i,j)={Vi…...原创 2019-03-17 10:54:46 · 12120 阅读 · 0 评论 -
Java8的Arrays.binarySearch()及其返回值分析
一、二分查找的返回值对有序数组应用二分查找是经典的查找算法,当查找的元素在数组中存在时,返回的是该元素在数组中的下标;如果查找的元素在数组中不存在时,此时的low下标其实是插入点(insertion point),即将查找元素插入该位置时,数组仍将保持有序,但有个问题,如果是返回0的话,被查找元素在数组到底有没有存在呢,针对这一问题Java8使用了一个小技巧,使得只要返回的下标值大于等于0就说明...原创 2019-06-03 14:25:39 · 1250 阅读 · 0 评论 -
快速求解霍夫曼编码树的带权路径长度
一、简介霍夫曼编码被广泛的用在文本压缩编码中,但在求解霍夫曼树的WPL长度时其实不必真的构造出一棵霍夫曼树再去实际求解,在实际oj和测试时时间也不允许,求解WPL可以基于如下定义快速求解:WPL = 所有叶子节点的带权路径长度之和 = 霍夫曼树中所有非叶节点的权值之和证明如图:图片转载自https://blog.youkuaiyun.com/hchild1/article/details/509339...原创 2019-07-30 22:24:43 · 1240 阅读 · 0 评论 -
大臣的旅费
问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的原创 2016-03-11 09:31:29 · 1422 阅读 · 0 评论 -
2016年蓝桥杯javaB省赛——压缩变换
压缩变换 小明最近在研究压缩算法。 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。 然而,要使数值很小是一个挑战。 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准 备对序列做一个变换来减小数字的值。 变换的过程如下: 从左到右枚举序列,每枚举到一个数字,如原创 2016-03-31 19:55:14 · 2498 阅读 · 2 评论 -
取球博弈
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个, 也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。 轮到某一方取球时不能弃权! A先取球,然后双方交替取球,直到取完。 被迫拿到最后一个球的一方为负方(输方) 请编程确定出在双方都不判断失误的情况下,对于特定的初始球数原创 2016-03-04 09:55:22 · 3469 阅读 · 1 评论 -
分治——合并排序
分治思路:大问题分解为子问题子问题相互独立,可以直接解决将子问题合解,得到原问题的解使用分治法进行数组排序。 * 将一个数列等分为两半,递归的进行排序,拆成两半,每一块都已经排好序了,但是并不代表这两块直接拼起来 * 不一定是整体有序的,还需要进一步操作————将两个有序集合通过while循环附设两个指针合并为一个有序的, * 同样这就说明了需要再额外开一个数组进行辅助,也就说合原创 2016-03-16 15:42:07 · 458 阅读 · 0 评论 -
2016年蓝桥杯java B组省赛总结及注意1
4.分小组 (代码填空) 9名运动员参加比赛,需要分3组进行预赛。 有哪些分组的方案呢? 我们标记运动员为 A,B,C,… I 下面的程序列出了所有的分组方法。 该程序的正常输出为: ABC DEF GHI ABC DEG FHI ABC DEH FGI ABC DEI FGH ABC DFG EHI ABC DFH EGI原创 2016-03-28 21:35:23 · 5629 阅读 · 0 评论 -
多重循环优化
四平方和 (程序设计) 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2 (^符号表示乘方的意思) 对于一个给定的正整数,可能存在多种平方和的表示法。原创 2016-03-30 11:41:08 · 1596 阅读 · 0 评论 -
Java实现lowerBound及upperBound
Java中已经实现了BinarySearch,但没有lowerBound和upperBound,整理一下其实现原理。 折半查找中,寻求中间元素的下标时,使用的是“ int m = l + (r - l) / 2;”这种方法,这样做和“int m = (l + r)/2”的结果是一样的,但是避免了溢出,这可以通过下面的代码来验证。public class Main { public stat原创 2016-03-30 17:01:41 · 3876 阅读 · 0 评论 -
算法学习——树状数组
给定一个数列:a1 , a2 , a3 , ····,an。树状数组可以快速的完成下述操作:给定i,计算a1+a2+ ···· + ai的和,即计算数列前i项的和,同样的这也可以转变为求任意给定的区间的和,如求[s,t]内的数列和,getSum(t) - getSum(s)。给定i和x,执行ai += x,也就是update(i),注意由于树状数组是区间性的,所以i之后的元素也会更新。树状数组原创 2016-03-18 16:46:16 · 293 阅读 · 0 评论 -
打印十字图
问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.原创 2016-03-18 16:50:50 · 370 阅读 · 0 评论 -
自守数
如果一个自然数的平方数的尾部仍然为该自然数本身,则称其为自守数。 例如: 5 x 5 = 25 76 x 76 = 5776 625 x 625 = 390625 下面代码的目的是寻找出2千万以内的所有自守数。 注意,2千万的平方已经超出了整数表达的最大范围,所以该程序使用了一个巧妙的方案。 如果我们仔细观察乘法的计算过程,就会发现实际上对乘积的尾数有贡献的转载 2016-03-08 17:17:47 · 857 阅读 · 0 评论 -
A - Learning Languages CodeForces - 277A(并查集 Java实现)
The “BerCorp” company has got n employees. These employees can use m approved official languages for the formal correspondence. The languages are numbered with integers from 1 to m. For each employee ...原创 2019-08-30 22:34:00 · 512 阅读 · 0 评论