Acm
Acm相关的题目和实现代码
进修的CODER
沉迷学习,不能自拔。只要学不死,就往死里学。代码虐我千百遍,我待代码如初恋@_@
展开
-
数据结构经典排序算法(动图演示)
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b...转载 2019-11-07 17:34:49 · 558 阅读 · 0 评论 -
基本排序算法
【1】插入排序将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。要点:设立哨兵,作为临时存储和判断数组边界之用。直接插入排序示例: 插入排序的主要思想是将元素进行移动,空出适合位置进行插入。从而达到排序效果代码如下:#include<iost...原创 2016-05-05 19:13:11 · 328 阅读 · 0 评论 -
二分查找算法
在一个数组中查找某个值,经常用到。可以采用遍历方法,对每一个进行比较,是否相等。但是这种方法查找比较慢,并且效率不高。所以可以采用二分查找来更好解决这种问题。二分查找要求有下面两个: 1:必须采用顺序排列。 2:并且这个排列是有序的。在一个数组array长度为M中,要查找某个元素N,将N和array[M/2]进行比较。如果array[M/2]>N则继续在0-M/2...原创 2016-05-05 19:25:00 · 523 阅读 · 0 评论 -
十进制数任意进制转换
基本算法中的任意进制之间的转换实例,采用栈结构保存所转换的结果。先进先出,十进制转换成任意进制,采用取余进栈的方式来完成进制转换,如下即是链栈所构成的进制转换代码:#define STACK_INT_SIZE 100#define STACKINCREMENT 10#define OVERFLOW -1#define OK 1#define ERROR 0 #define ...原创 2016-05-05 20:12:25 · 942 阅读 · 0 评论 -
C++求最大公约数和最小公倍数
常用算法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。辗转相除法的原理如下:例如,求(319,377):∵ 319÷377=0(余319)∴(319,377)=(377,319);∵ 377÷319=1(余58)∴(377,319)=(319,58);∵ 319÷58=5(余29),∴ (319,58)=(58,29);∵ 58÷29...原创 2016-05-10 23:07:46 · 1145 阅读 · 0 评论 -
动态规划初步进阶(一)
如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?动态规划的思想:1.当我们遇到一个大问题时,总是习惯把问题的规模变小,这样便于分析讨论;2.这个规模变小后的问题和原来的问题是同质的,除了规模变小,其它的都是一样的,本质上它还是同一个问题(规模变小后的问题其实是原问题的子问题.;动态规划的求解过程中有两个概念:状态和状态转移方程;状态就是如何描述这个问题...原创 2016-05-19 23:20:12 · 625 阅读 · 0 评论 -
中山大学ACM 前K个排列问题
题目大意是给出一个N个数字的排列,求出所有N个数的排列中,字典序(排列中每个数看作一个字符)位于给出的排列前K个的那个排列。算法思想:把第I个排列和整数对应起来,只需要把给定排列的对应整数编号计算出来,把它减去K,再求出这个编号所对应的排列即可。代码如下:#include#include//using namespace std;/*前K个排列问题映射与逆映射问题(O原创 2016-05-05 16:28:45 · 681 阅读 · 0 评论 -
中山大学 斐波那契装箱问题
求解问题代码如下:自己所写的代码#include#define MAX 64//using namespace std;int main(){ int lineNumber,T; int fibo[MAX]; scanf("%d",&lineNumber); T=lineNumber; while(lineNumber--){/// int i,count;原创 2016-05-05 10:23:27 · 440 阅读 · 0 评论 -
杭电ACM 1001
Sum ProblemTime Limit: 1000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 406156 Accepted Submission(s): 102002Problem DescriptionHey, welcome to原创 2016-05-04 19:02:23 · 349 阅读 · 0 评论 -
杭电ACM 1008
ElevatorTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 61524 Accepted Submission(s): 33782Problem DescriptionThe highest buildin原创 2016-05-04 22:26:35 · 310 阅读 · 0 评论 -
杭电ACM 1003-1004
Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 207825 Accepted Submission(s): 48632Problem DescriptionGiven a sequence a[原创 2016-05-04 19:06:15 · 683 阅读 · 0 评论 -
杭电ACM 1002
A + B Problem IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 306310 Accepted Submission(s): 59185Problem DescriptionI have a v原创 2016-05-04 19:04:13 · 341 阅读 · 0 评论 -
杭电ACM 1000
A + B ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 564223 Accepted Submission(s): 179165Problem DescriptionCalculate A + B.原创 2016-05-04 18:55:48 · 508 阅读 · 0 评论 -
HUSTOJ 1033: 质因子分解
Description任意输入一正整数N,求出它的所有质因子。如:10=(2 5);20=(2 2 5)。Input输入只有一行,包括1个整数。Output输出只有一行.为你分解的质因子,数字间用一个空格分开。Sample Input36Sample Output2 2 3 3算法思想:ollard Rho原创 2016-05-11 23:39:29 · 2271 阅读 · 0 评论 -
HOSTOJ 1032:寻找2的幂
Description数学上把2的K次方叫2的K次幂,如4、8、32等。给定一个整数n,请输出距离它最近的那个2的幂是多少。如果有两个距离相同,输出那个小的。Input只有一个整数 n(10 Output只有一个整数,表示距离 最近的那个2的幂。Sample Input17Sample Output16原创 2016-05-11 23:01:21 · 2526 阅读 · 0 评论 -
HUSTOJ 1023: 最大值和最小值
Description任意输入n个整数,把它们的最大值,最小值求出来.Input输入只有一行,包括一个整数n(1Output输出只有一行,包括2个整数。Sample Input5 1 99 3 6 0Sample Output99 0算法思想:这是一个比较简单的题目,然而这个题目里面有一个比较容易让人忽略的知识原创 2016-05-10 21:27:24 · 1232 阅读 · 0 评论 -
HUSTOJ 1017:三个整数是否相邻
Description判断三个整数是否相邻,是输出"TRUE",否则输出"FALSE"。Input输入只有一行,包括3个整数。Output输出只有一行。Sample Input1 2 3Sample OutputTRUE算法思想是等差公式算法:(a+c)/2.0==b 初步思想是这个。但是注意这种情况下相等的不原创 2016-05-10 21:05:04 · 3196 阅读 · 0 评论