编程能力测试
shoushudao111
这个作者很懒,什么都没留下…
展开
-
二分查找
import java.util.Scanner;public class Erfenchazhao { public static int num[]=new int[]{1,2,3,4,5,6,7,9,10,11,12,13,14,15}; public static void main(String args[]){ Scanner in=new Scann...原创 2018-10-30 14:27:01 · 123 阅读 · 0 评论 -
动态规划-最小花费
题目描述:在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下:距离s 票价0<S<=L1 C1L1<S<=L2 C2L2<S<=L3 C3输入保证0<L1<L2<L3<10^9,0<C1<C2&l...原创 2018-11-01 19:50:48 · 901 阅读 · 0 评论 -
利用队列广度优先搜索图
//广度优先搜索树,一定要使用队列,队列的特性很好用import java.util.*;public class Guangduyouxiansousuosuanfa1 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNe...原创 2018-11-06 09:10:16 · 774 阅读 · 0 评论 -
BFS求图中给定点到各点的最短边数
//广度优先搜索树,一定要使用队列,队列的特性很好用import java.util.*;public class Guangduyouxiansousuosuanfa1 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNe...原创 2018-11-06 09:32:02 · 344 阅读 · 0 评论 -
二叉树的前序中序后序 遍历 递归和非递归
import java.util.*;public class Tree { public static void main(String args[]) { Scanner in=new Scanner(System.in); Node tree=new Node(0); Node tree1=new Node(1); ...原创 2018-11-03 17:00:24 · 146 阅读 · 0 评论 -
链表的基本操作-增删查逆序
import java.util.*;public class Lianbiao { public static void main(String args[]){ Scanner in=new Scanner(System.in); ListNode head=new ListNode(0); head.next=null; ...原创 2018-11-01 22:15:46 · 169 阅读 · 0 评论 -
给定一组数据构建二叉树
import java.util.*;public class Tree { public static void main(String args[]) { Scanner in=new Scanner(System.in); int array[]=new int[] {1,2,3,4,5,6,7,8}; Tr tree=new Tr(...原创 2018-11-03 18:46:00 · 2652 阅读 · 0 评论 -
java优先队列的使用(包括重写比较函数)
import java.util.*;public class DFStu { public static void main(String args[]){ //优先字符,从大到小 //重写比较器 Queue<Character> que = new PriorityQueue( new Comparator<Char...原创 2018-11-06 11:59:04 · 7207 阅读 · 0 评论 -
MST(最小生成树)-Prime算法
Prime算法的核心步骤是:在带权连通图中V是包含所有顶点的集合, U已经在最小生成树中的节点,从图中任意某一顶点v开始,此时集合U={v},重复执行下述操作:在所有u∈U,w∈V-U的边(u,w)∈E中找到一条权值最小的边,将(u,w)这条边加入到已找到边的集合,并且将点w加入到集合U中,当U=V时,就找到了这颗最小生成树。 其实,算法的核心步骤就是:在所有u∈U,w∈V-U的...原创 2018-11-06 16:34:54 · 465 阅读 · 0 评论 -
大数进制转换
题目描述 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。输入描述: 一个1000位(即10^999)以内的十进制数。输出描述: 输入的十进制数的二进...原创 2018-11-01 17:27:51 · 306 阅读 · 0 评论 -
稀疏有向图求最短路径
import java.util.*;public class Youxiangtu { public static void main(String args[]) { Scanner in=new Scanner(System.in); while(in.hasNext()) { int V=in.nextInt(); ...原创 2018-11-03 11:41:19 · 333 阅读 · 0 评论 -
简单模拟-特殊乘法
题目描述写个算法,对2个小于1000000000的输入,求结果。 特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5输入描述:两个小于1000000000的数输出描述:输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。示例1输入复制123 45输出复制...原创 2018-11-01 15:54:08 · 155 阅读 · 0 评论 -
贪心算法-最优装载问题
最优装载问题。给出n个物体,第i个物体重量为w[i]。选择尽量多的物体,使得总重量不超过C。 【分析】 由于只关心物体的数量,所有装重的没有装轻的划算。只需把所有物体按重量从小到大排序,一次选择每个物体,直到装不下为止。这是一种典型的贪心算法,只顾眼前,但能得到最优解。--------------------- 作者:za30312 来源:CSDN 原文:https://blog.cs...原创 2018-10-30 14:47:24 · 1361 阅读 · 0 评论 -
贪心算法-选择不相交区间问题
解法一按照左区间排序import java.util.*;public class Zuidabuxiangjiaoshu2 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ i...原创 2018-10-30 15:45:32 · 336 阅读 · 0 评论 -
贪心算法-多机调度问题
多机调度问题:有n个独立的作业需要在m台相同的机器上进行加工处理. 作业i需要的加工时间为ti. 每个作业可以任选一台机器加工, 但加工结束前不能中断, 作业不允许拆分.要求给一种作业调度方案, 使所给的n个作业在尽可能短的时间内完成.问题分析:为什么是NP问题? (待求证)问题解答:采用最长处理时间作业优先的贪心选择策略可以设计出较好的近似算法----------...原创 2018-10-30 17:22:49 · 2823 阅读 · 0 评论 -
贪心算法-过河问题
POJ题目链接:http://poj.org/problem?id=1700N个人过河,船每次最多只能坐两个人,船载每个人过河的所需时间不同,问最快的过河时间。思路:当n=1,2,3时所需要的最小时间很容易求得,现在由n>=4,假设n个人单独过河所需要的时间存储在数组t中,将数组t按升序排序,那么 这时将单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式: 1&...原创 2018-10-30 20:05:39 · 4686 阅读 · 0 评论 -
动态规划-递归-递推Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1...n?For example,Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ ...原创 2018-11-01 11:35:51 · 150 阅读 · 0 评论 -
暴力-最大矩形面积
题意描述:给定n个非负的整数,代表n个依次相邻的宽度为1的柱形的高,求这些柱形所能形成的最大的矩形面积。解决思路:此题最直接最原始的做法就是扫描起点和终点,并随时更新最大面积,暴力解法import java.util.*;public class UniquePaths { public static void main(String args[]){ Sc...原创 2018-11-01 11:59:03 · 485 阅读 · 0 评论 -
动态规划-数字三角形最小路径和问题
题目Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2], [3,4], ...原创 2018-11-01 13:05:25 · 566 阅读 · 0 评论 -
模拟-手机键盘
注意审题!!!!题目描述按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。 如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。 现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间...原创 2018-11-01 15:09:49 · 1526 阅读 · 0 评论 -
稀疏图的表示G&地杰斯特拉求解单源最短路径
import java.util.*;public class TU { public static void main(String args[]) { Scanner in=new Scanner(System.in); while(in.hasNext()) { int v=in.nextInt(); ...原创 2018-11-03 10:00:28 · 236 阅读 · 0 评论 -
中位数算法-自己写的烂码
import java.util.*;public class Zhongweishufa { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); ...原创 2018-11-09 08:51:10 · 235 阅读 · 0 评论 -
Floyd-Warshall算法
本次使用方法:引入中转点k,如果i到k的距离 + k到j的距离 < i到j的距离,更新i到j的最短距离,将每个点做为中转点更新距离后就可以得到任意两点最短距离。递归解:https://blog.csdn.net/ideaqjx/article/details/78881044import java.util.*;public class Floyd { public stat...原创 2018-11-06 20:21:44 · 216 阅读 · 0 评论 -
带有负权值的单源最短路径-bellman-ford算法
https://baike.baidu.com/item/Bellman-Ford%E7%AE%97%E6%B3%95/1089090?fr=aladdin&fromid=6039406&fromtitle=bellman-ford 参考百科的c++实现版本import java.util.*;public class Bellman_Ford { public st...原创 2018-11-06 22:28:47 · 1257 阅读 · 0 评论 -
牛客网-拼凑面额(经典动态规划)
拼凑面额题目描述给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0-10000的非负整数)的不同组合的个数。输入描述:输入为一个数字N,即需要拼凑的面额输出描述:输出也是一个数字,为组成N的组合个数。思路:使用{1}组成n的解法,使用{1,5},的解法,使用{1,5,10...}的解法。公式如下:i...原创 2018-11-10 21:06:54 · 265 阅读 · 0 评论 -
拓扑排序-判断有无环或者有无点无法区分先后顺序
//使用map模拟邻接表(查询快),判断有向无环图是否存在环,或者是否可以进行排序import java.util.*;public class Tuopusort { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext(...原创 2018-11-05 09:36:11 · 302 阅读 · 0 评论 -
Java 集合嵌套List of List初始化
public static List<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>();原创 2018-11-05 11:05:19 · 1849 阅读 · 0 评论 -
拓扑排序使用List<List>存储关系,即稀疏矩阵
package tt;import java.util.*;public class Linjiebiao { public static void main(String args[]) { Scanner in=new Scanner(System.in); while(in.hasNext()) { int n=in.nex...原创 2018-11-05 14:42:55 · 195 阅读 · 0 评论 -
拓扑排序-List graph[]实现
import java.util.*;public class Tuopupaixu2 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); ...原创 2018-11-05 22:48:30 · 204 阅读 · 0 评论 -
全排列-递归(不含去重复的操作)非DFS
import java.util.*;public class Quanpaifeidigui { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt();...原创 2018-11-08 22:32:56 · 173 阅读 · 0 评论 -
全排列-递归去重复实现-非DFS
import java.util.*;public class Quanpaifeidigui { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt();...原创 2018-11-08 23:49:28 · 207 阅读 · 0 评论 -
并查集-畅通过程
畅通工程 解法1:畅通工程,自己写的没通过,暂时没找到bug import java.util.*;public class Main2 { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ ...原创 2018-11-12 16:02:08 · 181 阅读 · 0 评论 -
并查集-畅通工程2(最小生成树、并查集)
畅通工程2import java.util.*;public class Main { public static int sum=0; public static int cnt=0; public static void main(String args[]){ Scanner in=new Scanner(System.in); ...原创 2018-11-12 16:39:32 · 291 阅读 · 0 评论 -
递归经典题目-移动汉诺塔 https://www.cnblogs.com/dmego/p/5965835.html
一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。二.抽象为数学问题: 如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠...转载 2018-11-07 17:55:47 · 279 阅读 · 0 评论 -
表达式求值-中序表达式转换成后序表达式然后求值
/*表达式求值,先转换成后缀表达式,再计算。//从中缀表达式中从左往右依次取出数据//如遇到操作数,直接输出到后缀的队列里。//如果遇到操作符(包括括号),这里再定义一个存放操作符的栈,则://i.如果操作符是'(',入栈//ii.如果操作符是')',则把栈里的操作符依次出栈并插入到后缀序列后面,直到遇到')'.//iii.如果操作符不是‘(’和‘)’,则:// (1). ...原创 2018-11-07 14:52:40 · 1882 阅读 · 0 评论 -
SPFA算法求解最短路径(改进Bellman-ford)
//spfa算法步骤:https://blog.csdn.net/hehehaha1123/article/details/63250235import java.util.*;public class SPFA { public static void main(String args[]){ Scanner in=new Scanner(System.in); ...原创 2018-11-07 00:18:39 · 176 阅读 · 0 评论 -
实现队列-数组、链表、list
import java.util.*;public class Duilie { public static void main(String args[]){ Scanner in=new Scanner(System.in); while(in.hasNext()){ //测试Que1 Que1 que...原创 2018-11-02 07:45:03 · 154 阅读 · 0 评论 -
排序-拓扑排序
拓扑排序要求:无环有向图算法思路: 1.找出入度为0的点,输出 2.把找到的入度为零的点删除,并把与这个点相连的边删除 3.重复1,2步直到输出所有点 确定比赛名次Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 128...原创 2018-11-04 09:05:42 · 160 阅读 · 0 评论 -
[poj1094]拓扑排序经典例题
对于N个大写字母,给定它们的一些偏序关系,要求判断出经过多少个偏序关系之后可以确定它们的排序或者存在冲突,或者所有的偏序关系用上之后依旧无法确定唯一的排序。利用拓扑排序即可解决这个问题,但由于题目要求的是经过多少个关系之后就可以确定答案,因此每读入一个关系,就要进行一次拓扑排序,如果某一次拓扑排序之后可以确定它们的唯一排序或者发现冲突存在,则后面的直接略过。若读入所有关系之后依然无法确定唯一关...原创 2018-11-04 15:24:29 · 424 阅读 · 0 评论 -
三元组实现矩阵的加法和减法(未除去0)
import java.util.*;public class Triple { public static void main(String args[]) { Scanner in=new Scanner(System.in); while(in.hasNext()) { int n=in.nextInt(); ...原创 2018-11-02 17:56:51 · 641 阅读 · 0 评论