自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 java中hashmap和hashtable的区别

1、  继承和实现区别Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。2、  线程安全不同HashTable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。3、  对null的处理不同HashTable不允许null值(key和value都不可以),HashMap允许null值

2013-07-15 18:38:41 482

原创 UVa 10608 Friends

/*UVa 10608 Friends 并查集*/import java.util.Scanner;class Main { static final int MAXN = 30005; static int[] fa = new int[MAXN]; static int[] count = new int[MAXN]; static int n, m; static int

2013-07-10 23:03:12 504

原创 10801 - Lift Hopping

/*10801 - Lift Hopping * 以每一层楼为顶点,每个电梯可以到达的两层楼之间的秒数为每一条边的权值, * 以此构建一个无向图。然后利用dijkstra求出最短的时间, * 注意每次换乘电梯需要等待60s(注意初始定点不需要60s的等待)。*/import java.util.Arrays;import java.util.Scanner;class Main {

2013-07-10 22:40:09 468

原创 UVa 437 - The Tower of Babylon

/*UVa 437 - The Tower of Babylon * 矩形嵌套问题 DP + DAG + LIS * */import java.util.Arrays;import java.util.Scanner;class Block { int x; int y; int z; public Block(int x, int y, int z) { this.

2013-07-08 22:05:00 468

原创 UVa 10465 HomerSimpson

/*UVa 10465 HomerSimpson*/import java.util.Arrays;import java.util.Scanner;class HomerSimpson { static final int MAXN = 10005; static int[] d = new int[MAXN]; static int t; static int[] w = ne

2013-07-08 21:15:55 423

原创 打印子集

/*打印集合子集 位向量法和二进制法*/import java.util.Scanner;public class Subset { static final int MAXN = 20; int[] p = new int[MAXN]; int[] b = new int[MAXN]; public static void main(String[] args) {

2013-06-29 11:19:01 530

原创 UVa 147 - Dollars

/*UVa 147 - Dollars*/import java.util.Scanner;class Main { static final int MAX = 30001; public static void main(String[] args) { int[] arr = new int[]{5,10,20,50,100,200,500,1000,2000,5000,100

2013-06-27 21:00:06 479

原创 UVa 357 - Let Me Count The Ways

/*UVa 357 - Let Me Count The Ways*/import java.util.Scanner;class Main { public static void main(String[] args) throws Exception { int arr[] = { 1, 5, 10, 25, 50 }; long dp[] = new long[30001]

2013-06-27 20:24:12 518

原创 UVa 10131 - Is Bigger Smarter

/*UVa 10131 - Is Bigger Smarter? * 变形的LCS 先将大象按体重增长排序,若大象体重相同,按IQ降序排列, * 排序后问题转化为求IQ的一个最长递减子序列 * d[i]表示以i为终点的重量上升速度下降的序列 * */import java.util.Arrays;import java.util.Comparator;import java.util

2013-06-26 18:40:21 742

原创 UVa 562 Dividing Coins

/*UVa 562 Dividing Coins * 思路 : 如果arr[j]==1 那么 arr[j+a[i]]==1*/import java.util.Arrays;import java.util.Scanner;class Main { static final int MAXN = 50010; int[] arr = new int[MAXN]; int[] a =

2013-06-26 18:38:40 500

原创 表达式树

/*表达式树 建立过程 :找到“最后计算“的运算符(它是整棵表达式树的根),然后递归处理 * */import java.util.Scanner;public class ExpressionTree { static final int MAXN = 1000; int[] lch = new int[MAXN]; int[] rch = new int[MAXN]; c

2013-06-24 18:35:29 414

原创 UVa 10369 - Arctic Network

/*UVa 10369 - Arctic Network * 使用Kruscal算法 求最小生成树 * 将使用到的边排序 排除最大的s-1个 剩下的边中最大的即为所求 * */import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;class Edge { int u;// 边的

2013-06-23 22:43:28 632

原创 UVa 10397 - Connect the Campus

/*UVa 10397 - Connect the Campus * 把已存在的边权设为0 然后使用Kruscal算法 求最小生成树 * */import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;class Edge { int u;// 边的起点 int v;// 边的终点 d

2013-06-23 21:30:25 478

原创 UVa 558 - Wormholes

/*UVa 558 - Wormholes * 使用邻接表存储图 * */import java.util.Arrays;import java.util.LinkedList;import java.util.Scanner;public class Main { static final int MAX = 1 << 20; static final int N = 100

2013-06-22 17:54:25 420

原创 SPFA算法

/* 改进的BellMan-Ford算法 SPFA * 含有负权图的单源最短路径 最短路径如果存在,一定不含环 * 存在负环时最短路径不存在 当一个节点入队超过n次时说明图中存在负环 * 使用邻接表和队列实现 每次更新节点时只更新与之相关联的节点 * d[i]表示节点0到节点i的最短路径 * */import java.util.Arrays;import java.util.L

2013-06-22 16:09:00 423

原创 最小费用最大流问题

/*算法竞赛入门经典 最小费用最大流问题 * */import java.util.Arrays;import java.util.LinkedList;import java.util.Scanner;public class MinCostMaxFlow { static final int MAX = 1<<30; public static void main(Strin

2013-06-22 16:05:24 1599

原创 增广路求网路最大流

/* 算法竞赛入门经典 增广路求网路最大流 * */import java.util.Arrays;import java.util.LinkedList;import java.util.Scanner;public class MaxFlow { public static void main(String[] args) { Scanner scanner = new

2013-06-22 16:03:35 767

原创 基于邻接表和优先级队列的Dijkstra算法实现

/*基于邻接表和优先级队列的Dijkstra算法实现 * */import java.util.Arrays;import java.util.Comparator;import java.util.PriorityQueue;import java.util.Scanner;class Node { int value; int num; public

2013-06-20 12:03:39 995 1

原创 Dijkstra算法求最短路径

/*使用Dijkstra算法求最短路径 * 假设起点是0,它到节点i的路径长度是d[i] * w[i][j] = MAX表示边(i,j)不存在 * */import java.util.Arrays;import java.util.Scanner;public class Dijkstra { static final int MAX = 1 << 20;

2013-06-20 09:50:54 551

原创 使用并查集实现Kruscal算法

package ACM.Graph;/* 使用并查集实现Kruscal算法 * */import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;class Edge { int num;// 边的编号 int u;// 边的起点 int v;// 边的终点 int w;//

2013-06-19 21:04:44 589

原创 算法竞技赛入门经典 11.1.1 无根树转化为有根树

/*算法竞技赛入门经典 11.1.1 无根树转化为有根树 * */import java.util.Scanner;import java.util.Vector;public class TreeConvert { static final int MAXN = 20; public static void main(String[] args) { Sca

2013-06-19 11:28:50 636

原创 UVa 10003 - Cutting Sticks

import java.util.Arrays;import java.util.Scanner;/*UVa 10003 - Cutting Sticks * 最小矩阵链成类似 状态转移方程 f(i,j) = min {f(i,k) + f(k,j) + (c[j]-c[i])} * 由于划分阶段比较困难 选择使用记忆化搜索 * */class Main { static f

2013-06-19 09:43:32 721

原创 UVa 10404 - Bachet's Game

/*UVa 10404 - Bachet's Game * d[i]=1表示Stan赢, d[i]=0表示输 那么只要有一个j使得d[i-arr[j]]==0那么d[i]=1; * */import java.util.Scanner;class Main { public static void main(String[] args) { Scanner s

2013-06-17 09:30:05 435

原创 UVa 111 - History Grading

/*UVa 111 - History Grading * 最长公共子序列 * */import java.util.Scanner;class Main { static final int MAX = 25; public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

2013-06-16 21:44:55 610

原创 UVa 674 - Coin Change

/*UVa 674 - Coin Change * d(i)表示i的换算方式种数 d(i) = d(i)+d[i-coins[j]] coins[](50,25,10,5,1) * */import java.util.Scanner;class Main { static final int MAX = 7489 + 5; static int[] coins = new in

2013-06-16 20:36:03 581

原创 UVa 10405 - Longest Common Subsequence

/*UVa 10405 - Longest Common Subsequence * */import java.util.Scanner;class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()

2013-06-16 19:56:00 579

原创 UVa 10304 - Optimal Binary Search Tree

/*UVa 10304 - Optimal Binary Search Tree * e(i,j)为搜索一棵包含节点f[i]...f[j]的最优二叉搜索树的代价 * 如果区间规模增大,则要选出一个新的根节点,而区间上除了根节点左右最优解之外, * 子树中每个节点要要增加一个高度 * k1 = max(k – 1, i),k2 = min(k + 1, j); * e[i][j] = mi

2013-06-16 18:31:51 432

原创 算法竞赛入门经典 例题 9-8 树的最大独立集

package ACM.DynamicProgramming;/* * 算法竞赛入门经典 例题 9-8 * */import java.util.Scanner;class Node { int num; int parent; int sumgs = 0;// 孙子节点累加值 int sums = 0;// 儿子节点累加值 public Node(int num, int

2013-06-16 16:30:03 714

原创 UVa 103 - Stacking Boxes

/*UVa 103 - Stacking Boxes * */import java.util.Arrays;import java.util.Scanner;class Main { public static final int MAXD = 15;// 最大维数 public static final int MAXN = 35;// 最大box数目 int[][] g =

2013-06-16 11:12:18 572

原创 算法竞赛入门经典 例题 9-7 最优三角剖分

/* 算法竞赛入门经典 例题 9-7 最优三角剖分 * f(i,j)定义为:从顶点i到顶点j所构成的子多边形的最大三角剖分权和 * 三角形权值为三个顶点权值之和 * f(i,j) = max{f(i,k) + f(k,j) + w(i,j,k)} i<j * */import java.util.Scanner;public class WeightTriangulation {

2013-06-15 21:52:57 1023

原创 UVa 10285 Longest run on a snowboard

/*UVa 10285 Longest run on a snowboard */import java.util.Arrays;import java.util.Scanner;class Main { static final int MAX = 105; int[][] arr = new int[MAX][MAX];//在数组外加上边框不用考虑出界的问题 int[][] d

2013-06-15 18:45:39 444

原创 最优矩阵链乘

public class MatrixChain { public static final int N = 6; public static void main(String[] args) { int[] p = new int[]{30,35,15,5,10,20,25}; int[][] m = new int[N+1][N+1]; int[][] s = ne

2013-06-15 16:39:53 421

原创 最长公共子序列 LCS

public class LCS { public static void main(String[] args) { char[] x = new char[]{' ','A','B','C','B','D','A','B'}; char[] y = new char[]{' ','B','D','C','A','B','A'}; int m = x.length-1

2013-06-15 16:37:26 410

原创 装配线调度问题

/*装配线调度问题*/public class AssemblyLine { public static final int N = 6; public static void main(String[] args) { int[] f1 = new int[N+1]; int[] f2 = new int[N+1]; int[] l1 = new int[N+1];

2013-06-15 16:35:48 502

原创 算法竞赛入门经典 例题9-3 硬币问题

/*算法竞赛入门经典 例题9-3 硬币问题 * d[i]表示从i出发到结点0的最长路径长度 d[0]=0 * 固定起点s 固定终点0 * 状态转移方程: d[i] = max{d[j] + 1} * */ import java.util.Arrays;import java.util.Scanner;public class Coins {

2013-06-15 16:33:30 1105

原创 算法竞赛入门经典 例题 9-2 嵌套矩形

/* 算法竞赛入门经典 例题 9-2 嵌套矩形 * 思路:使用有向无环图 g[i][j]=1表示矩形i可以嵌套在矩形j中 * dd[i]表示从i出发的最长路径长度 状态转移方程: d[i] = max{d[j] + 1| g[i][j]=1} * */import java.util.Arrays;import java.util.Scanner;clas

2013-06-15 16:30:45 556

原创 算法竞赛入门经典 例题 9-4

/*算法竞赛入门经典 例题 9-4 * 问题:求以c为起点的边权之和最大的路径 * 0-1背包之物品无限 d[i]表示以i为起点的最大路径 d[i] = max{d[j] + w[i]} * */import java.util.Arrays;import java.util.Scanner;public class PackageInfinite {

2013-06-15 16:24:00 518

原创 算法竞赛入门经典 例题9-5 0-1 背包

/*算法竞赛入门经典 例题 9-5 0-1背包问题 * f(i,j) 表示 “把前i个物品装到容量为j的背包的最大总重量” * f(i,j) = max{f(i-1,j),f(i-1,j-v[i])+w(i)} * n 表示物品个数 c表示物品容量 * */import java.util.Scanner;public class Package01 { pu

2013-06-15 16:20:53 753

原创 UVa 10130 - SuperSale

import java.util.Scanner;class Main { public static void main(String[] args) { int t; Scanner scanner = new Scanner(System.in); t = scanner.nextInt(); while(t > 0) { t--; i

2013-06-15 16:05:27 389

原创 UVa 624 CD

import java.util.Scanner;/* * UVa 624 CD * */class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.ne

2013-06-15 15:38:25 399

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除