程序设计
一些竞赛编程题目
浩波的笔记
微信公众号:浩波的笔记
展开
-
双机流水作业调度问题——Johnson算法
概述流水作业是并行处理技术领域的一项关键技术,它是以专业化为基础,将不同处理对象的同一施工工序交给专业处理部件执行,各处理部件在统一计划安排下,依次在各个作业面上完成指定的操作。流水作业调度问题是一个非常重要的问题,其直接关系到计算机处理器的工作效率。然而由于牵扯到数据相关、资源相关、控制相关等许多问题,最优流水作业调度问题处理起来非常复杂。已经证明,当机器数(或称工序数)大于等于3时, 流水作业调度问题是一个NP-hard问题(e.g分布式任务调度)。粗糙地说,即该问题至少在目前基本上没有可能找到多项原创 2020-06-17 22:31:43 · 4192 阅读 · 0 评论 -
N皇后问题——通俗易懂地讲解(C++)
注:参考程序猿小灰,hackbuteer1八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上(斜率为1),问有多少种摆法。高斯认为有76种方案。让我们来举个栗子,下图的绿色格子是一个皇后在棋盘上的“封锁范围”,其他皇后不得放置在这些...原创 2020-05-06 08:33:29 · 14859 阅读 · 4 评论 -
哈夫曼(Huffman)编码问题(C++)
一、题目描述哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。一个包含100,000个字符的文件,各字符出现频率不同,如下表所示:有多种方式表示文件中的信息,若用0,1码表示字符的方法,即每个字符用唯一的一个0,1串表示。若采用定长编码表示,则需要3位表示一个字符,整...原创 2020-05-05 12:47:20 · 11944 阅读 · 1 评论 -
子集和数问题——回溯法(C++)
问题描述已知(w1, w2, …, wn)和M,均为正数。要求找出wi的和数等于M的所有子集。例如:若n=4,(w1,w2,w3,w4)=(11,13,24,7),M=31,则满足要求的子集是(11,13,7)和(24,7).分析子集和数问题解的一种表示方法解由n-元组(x1, x2, …, xn)表示;显式约束条件xi∈{0,1},1≤i≤n,如果没有选择Wi,则xi=0;如果选择...原创 2020-05-05 11:27:13 · 8301 阅读 · 6 评论 -
最大子段和问题——详解(C++)
最大子段和或称为最大部分和(maximum subtotal)问题,以下简称MS。MS:给定一类特定的数据类型的序列:[x1,x2,x3,x4,x5,x6],从该序列截取一段连续的子序列,如果这个子序列和满足整个序列的任意序列的最大值,我们称之为最大子段和。 Sample:sequence:{6, -3, -4, 7, -1, 5, -3, -4, 8, -2}; subSequen...原创 2020-05-05 10:34:00 · 7276 阅读 · 0 评论 -
Gray Code(格雷码) C++多方法实现
简介在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增计数,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对同时发生,则计数中可能出现短暂的其它代码(1100...原创 2020-04-30 23:36:41 · 3411 阅读 · 1 评论 -
矩阵连乘问题——算法笔记——详解
1、动态规划法问题简述:给定n个矩阵{A1A2…An},其中Ai和Ai+1是可乘的,考察这n个矩阵的连乘积A1A2…An。由于矩阵的乘法满足结合律,故计算矩阵的连乘积有许多不同的计算次序,而不同的计算次序,所需要计算的连乘次数也是不同的,求解连乘次数最少的矩阵连乘最优次序。举例说明矩阵结合方式对数乘次数的影响:矩阵连乘积A1A2A3,3个矩阵的维数分别为10x100,100x5和5x50,...原创 2020-04-24 18:50:13 · 28357 阅读 · 1 评论 -
codeup 1918 简单计算器
在这里插入代`在这里插入代码片`码片//codeup 1918#include #include #include #include #include #include using namespace std;struct node{double num; //操作数char op; //操作符bool flag; //true代表操作数,...原创 2020-02-18 18:29:19 · 129 阅读 · 0 评论