
算法
文章平均质量分 57
平行宇宙i
self-discipline;
你不会永远年轻,但永远有人年轻;
你不会永远是应届生,但永远有人是应届生。
展开
-
卡号校验
问题描述当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必担心,因为并不是一个随便的信用卡都是合法的,他必须通过luhn算法验证通过。该校验的过程:1、从卡号最后一个数字开始,逆向将奇数位(1,3,5)相加。2、从卡号最后一位数字开始,逆向将偶数为数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。3、将奇数位总和加上偶数位总和,结果应该可以被10整除。原创 2017-05-11 10:36:47 · 695 阅读 · 1 评论 -
直角三角形
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。 已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。 求满足这个条件的不同直角三角形的个数。【数据格式】输入一个整数 n (0<n<10000000) 表示直角三角形斜边的长度。要求输出一个整数,表示满足条件的直角三角形个数。例如,输入:5程序应该输出:1再例如,输入:100程序应该输出:2再例如...原创 2018-12-23 10:10:48 · 1056 阅读 · 0 评论 -
十六进制转十进制
import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);String string = scanner.next();int len = string.length();int r_le...原创 2018-12-23 10:11:02 · 559 阅读 · 0 评论 -
Torry的困惑
import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int count = 0;int k = 2;long result = ...原创 2018-12-23 10:09:41 · 180 阅读 · 0 评论 -
队列操作
问题描述 队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。输入格式 第一行一个数字N。 下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。输出格式 若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。样例...原创 2018-12-23 10:07:45 · 488 阅读 · 0 评论 -
表达式运算
import java.util.Scanner;import java.util.Stack;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);String s = scanner.next();Stack<Integer&g...原创 2018-12-23 10:09:04 · 166 阅读 · 0 评论 -
最大最小公倍数
import java.util.Scanner; public class Main {//最大最小公倍数,就是两两互质, 分为两种情况,n为奇数,n与n-1互质,n-1与n-2互质,n和n-2都为奇数//n为偶数,分两种,n%3==0,说明n和n-3有公约数3,所以结果应该是(n-1)*(n-2)*(n-3)//n%3!=0,n*(n-1)(n-3),因为n-1和n-3都为...原创 2018-12-23 10:09:13 · 256 阅读 · 0 评论 -
求三个数的最小公倍数
import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();int n = scanner.nextInt();int l = scanner.ne...原创 2018-12-23 10:08:43 · 337 阅读 · 0 评论 -
合并石子动态规划(运行超时90分)
//主要是要找到dp[i][j]表示什么,该题中表示第i堆到第j堆的总个数,这个题要注意要加上i堆到j堆的//还要注意的是要提前写好堆到堆的距离import java.util.Scanner; public class Main {public static void main(String[] args){Scanner scanner = new Scanner(S...原创 2018-12-23 10:07:23 · 158 阅读 · 0 评论 -
矩阵乘法(动态规划70分)
import java.util.Scanner; public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int array[] = new int[n + 1];long sum...原创 2018-12-23 10:07:16 · 319 阅读 · 0 评论 -
迪杰斯特拉算法(Java实现)
注意: 不适合带负权的图算法思路:Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s 的路径权重被赋为 0 (dis[s] = 0)。若对于顶点 s 存在能直接到达的边(s,m),则把dis[m]设为w(s, m),同时把所有其他(s不能直接到达的)顶点的路径长度设为无穷大。初始时,集合T只...原创 2018-12-23 10:08:36 · 1668 阅读 · 0 评论 -
弗洛伊德算法(Java实现)
算法思路:通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入两个矩阵,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离。矩阵P中的元素b[i][j],表示顶点i到顶点j经过了b[i][j]记录的值所表示的顶点。假设图G中顶点个数为N,则需要对矩阵D和矩阵P进行N次更新。初始时,矩阵D中顶点a[i][j]的距离为顶点i到顶点j的权值;如果i和j...原创 2018-12-23 10:08:27 · 1389 阅读 · 0 评论 -
SPFA算法
算法的思路: 我们用数组dis记录每个结点的最短路径估计值,用邻接表或邻接矩阵来存储图G。我们采取的方法是动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计值对离开u点所指向的结点v进行松弛操作,如果v点的最短路径估计值有所调整,且v点不在当前的队列中,就将v点放入队尾。这样不断从队列中取出结点来进行松弛操作,直至队列空为止我们要知...原创 2018-12-23 10:07:59 · 254 阅读 · 0 评论 -
数字组合问题(贪心算法)
设有N个正整数,现在需要你设计一个程序,使他们连接在一起成为最大的数字,例3个整数 12,456,342 很明显是45634212为最大,4个整数 342,45,7,98显然为98745342最大程序要求:输入整数N 接下来一行输入N个数字,最后一行输出最大的那个数字!思路:拿到这题目,看起要来也简单,看起来也难,简单在什么地方,简单在好像就是寻找哪个开头最大,然后连在一起就是了,难在如果...原创 2018-12-23 10:10:56 · 3303 阅读 · 0 评论 -
字符统计
问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输出格式 一行,题目要求的字符串。 输入样例1: 4 bbaabbaaaaa 输出样例1...原创 2018-12-23 10:10:29 · 1500 阅读 · 0 评论 -
爱摘苹果的小明
时间限制:1000 ms | 内存限制:65535 KB难度:1描述小明家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,小明就会跑去摘苹果。小明有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及小明把手伸直的时候能够达到的最大高度,请帮小明算一下她能够摘到的苹果的数目。假设她碰到苹果,苹原创 2017-05-01 21:45:47 · 225 阅读 · 0 评论 -
两个有理数的和
本题要求编写程序,计算两个有理数的和。输入格式:输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。输出格式:在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。输入样例1:1/3 1/6输出样例1:原创 2017-05-03 13:59:37 · 4441 阅读 · 0 评论 -
马虎的算式
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案竟然是对的!! 因为 36 * 495 = 396 * 45 = 17820 类似这样的巧合情况可能还有很多,比如:27 *原创 2017-05-03 14:55:26 · 170 阅读 · 0 评论 -
黄金分割数0.618
黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子.... 黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034 有趣的是,一些简单原创 2017-05-13 09:11:19 · 1428 阅读 · 0 评论 -
九宫格
算法提高 9-1九宫格 时间限制:1.0s 内存限制:256.0MB 问题描述 九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。 样例输出 与上面的样例输入对应的输出。 例: 数据规原创 2017-05-14 08:59:59 · 96 阅读 · 0 评论 -
错误票据
错误票据 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。要求程序原创 2017-05-05 17:36:46 · 230 阅读 · 0 评论 -
煤球数目
有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),….如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。public class MeiQiuShuMu {publi原创 2017-04-28 10:46:17 · 232 阅读 · 0 评论 -
连号区间数
小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,原创 2017-05-05 23:21:45 · 233 阅读 · 0 评论 -
猜字母
猜字母 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。原创 2017-05-09 09:12:56 · 211 阅读 · 0 评论 -
寻找数组中最大值
import java.util.Scanner; public class Main{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int max = 0; //用来存储数组中...原创 2018-12-23 10:09:58 · 1257 阅读 · 0 评论 -
关联矩阵
问题描述 有一个n个结点m条边的有向图,请输出他的关联矩阵。输入格式 第一行两个整数n、m,表示图中结点和边的数目。n<=100,m<=1000。 接下来m行,每行两个整数a、b,表示图中有(a,b)边。 注意图中可能含有重边,但不会有自环。输出格式 输出该图的关联矩阵,注意请勿改变边和结点的顺序。样例输入5 91 23 11 5...原创 2018-12-23 10:10:05 · 1735 阅读 · 0 评论 -
2的次幂表示
问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示) 3=2+2^0 ...原创 2018-12-23 10:10:12 · 1385 阅读 · 0 评论 -
最短路(70分运行超时SPFA算法)
问题描述给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式共n-1行,第i行表示1号点到i+1号点的最短路。样例输入3 31 2 -12 3 -13 1 2样例...原创 2018-12-23 10:07:52 · 303 阅读 · 0 评论