算法
文章平均质量分 65
annie11640389
这个作者很懒,什么都没留下…
展开
-
求最大连续和的几种算法
import java.util.Scanner;public class LongestSum { static final int N = 10;// 序列长度 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[N +原创 2013-06-03 17:24:17 · 492 阅读 · 0 评论 -
算法竞技赛入门经典 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 · 629 阅读 · 0 评论 -
使用并查集实现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 · 578 阅读 · 0 评论 -
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 · 538 阅读 · 0 评论 -
算法竞赛入门经典 例题 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 · 703 阅读 · 0 评论 -
增广路求网路最大流
/* 算法竞赛入门经典 增广路求网路最大流 * */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 · 752 阅读 · 0 评论 -
最小费用最大流问题
/*算法竞赛入门经典 最小费用最大流问题 * */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 · 1586 阅读 · 0 评论 -
SPFA算法
/* 改进的BellMan-Ford算法 SPFA * 含有负权图的单源最短路径 最短路径如果存在,一定不含环 * 存在负环时最短路径不存在 当一个节点入队超过n次时说明图中存在负环 * 使用邻接表和队列实现 每次更新节点时只更新与之相关联的节点 * d[i]表示节点0到节点i的最短路径 * */import java.util.Arrays;import java.util.L原创 2013-06-22 16:09:00 · 418 阅读 · 0 评论 -
算法竞赛入门经典 8.3.3 巨人与鬼
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;//比较器class ModelComparator implements Comparator {原创 2013-06-06 18:27:03 · 1728 阅读 · 1 评论 -
最大值最小化
/* * 算法竞赛入门经典 8.3.5 最大值最小化 * 问题描述:把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值最小是多少? * 例如序列1 2 3 2 5 4划分为3个子序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1),S(2),S(3)分别为6,7,4,那么最大值为7; * 如果划分为 1 2 | 3 2 |原创 2013-06-06 22:18:43 · 786 阅读 · 0 评论 -
算法竞赛入门经典 例题 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 · 1015 阅读 · 0 评论 -
算法竞赛入门经典 8.3.1 棋盘覆盖问题
/* * 算法竞赛入门经典 8.3.1 棋盘覆盖问题 * */import java.util.Scanner;public class ChessCover { public int step; public int[][] arr; public static void main(String[] args) { Scanner scanner = new Scan原创 2013-06-05 16:31:14 · 565 阅读 · 0 评论 -
算法竞赛入门经典 8.3.2 循环日程表问题
/* * 算法竞赛入门经典:8.3.2 循环日程表问题 * */import java.util.Scanner;public class CycSchedule { public int[][] arr; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); C原创 2013-06-05 18:01:35 · 518 阅读 · 0 评论 -
算法竞赛入门经典 例题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 · 1095 阅读 · 0 评论 -
装配线调度问题
/*装配线调度问题*/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 · 492 阅读 · 0 评论 -
最长公共子序列 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 · 401 阅读 · 0 评论 -
算法竞赛入门经典 例题 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 · 507 阅读 · 0 评论 -
最优矩阵链乘
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 · 412 阅读 · 0 评论 -
算法竞赛入门经典 例题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 · 747 阅读 · 0 评论 -
算法竞赛入门经典 例题 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 · 546 阅读 · 0 评论