知识--算法
jackson_j
求大佬
展开
-
算法--整数因子分解问题
又是上次,先是自己分析,写出来的代码连运行都不对(哭死),先贴上:思路:将输入的数分为两个数,在分别对这两个数进行求解,结果问题是:当出现相同的因式时,会重复增加。#include <iostream>using namespace std;int flag;void dec(int n){ for(int i=2;i<=n/2;i++) ...原创 2019-03-14 19:20:11 · 2514 阅读 · 0 评论 -
算法--顺序表应用7:最大子段和之分治递归法
Problem Description给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,当...原创 2019-04-16 20:02:13 · 172 阅读 · 0 评论 -
算法--高数Umaru系列(9)——哈士奇
Problem Description由于高数巨养的喵星人太傲娇了,要天天吃新鲜猫粮而且还经常欺负高数巨,所以高数巨决定买几条哈士奇尝尝鲜。这天高数巨来到了二手狗市场买哈士奇,高数巨看完了所有的哈士奇,记下了每条哈士奇的价格,并根据对它们的好感程度给它们每只都赋予了一个萌值。高数现在手里有X元,她想通过购买若干条哈士奇来获得尽可能多的萌值。现在给定高数巨手里的钱X以及N条哈士奇的价格和萌值,求...原创 2019-04-16 20:21:57 · 227 阅读 · 0 评论 -
算法--运动员最佳匹配问题
Problem Description羽毛球队有男女运动员各n 人。给定2 个n×n 矩阵P 和Q。P[i][j]是男运动员i 和女运动员j配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员i和男运动员j配合的女运动员竞赛优势。由于技术配合和心理状态等各种因素影响,P[i][j]不一定等于Q[j][i]。男运动员i和女运动员j配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[j...原创 2019-04-21 17:07:17 · 864 阅读 · 0 评论 -
算法--工作分配问题
Problem Description设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为 cij。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。Input输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。Output将计算出的最...原创 2019-04-21 18:32:57 · 1842 阅读 · 0 评论 -
算法--最少硬币问题
Problem Description设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,计算找钱m的最少硬币数。...原创 2019-04-16 21:41:05 · 297 阅读 · 0 评论 -
算法--数字三角形问题
Problem Description给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。Input输入数据的第1行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形各行中的数字。所有数字在0..99之间。...原创 2019-04-16 22:15:08 · 1245 阅读 · 0 评论 -
算法--石子合并问题
Problem Description在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。对于给定n堆石子,计算合并成一堆的最小得分和最大得分。Input输入数据的第1行是正整数n,1≤n≤100,表示有n堆石子。第二行有n...原创 2019-04-21 21:41:33 · 1126 阅读 · 0 评论 -
算法--最长公共子序列问题
Problem Description给定两个序列 X={x1,x2,…,xm} 和 Y={y1,y2,…,yn},找出X和Y的最长公共子序列。Input输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列X和Y。Output每组输出一行,表示所求得的最长公共子序列的长度,若不存在公共子序列,则输出0。Sample ...原创 2019-04-19 21:39:16 · 1542 阅读 · 0 评论 -
算法--汽车加油问题
Problem Description一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。对于给定的n和k个加油站位置,计算最少加油次数。Input输入数据的第一行有2 个正整数n和k(n≤5000,k≤1000),表示汽车加满油后可行驶n公里,且旅途中有k个加油站。接下来的1 行中,有k...原创 2019-04-19 21:40:37 · 1352 阅读 · 0 评论 -
算法--骨牌铺方格
Problem Description在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。Output对于每个测试实例,请输出铺放方案的总数,每个实例的输...原创 2019-04-16 19:31:33 · 467 阅读 · 0 评论 -
算法--最优合并问题
Problem Description给定k 个排好序的序列s1, s2,……, sk, 用2 路合并算法将这k 个序列合并成一个序列。假设所采用的2 路合并算法合并2 个长度分别为m和n的序列需要m + n -1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。对于给定的k个待合并...原创 2019-04-20 21:40:25 · 2508 阅读 · 0 评论 -
算法--众数问题
刚开始,自己想的办法,但是TLE了,以下是代码:#include <iostream>#include <stdio.h>#include <string.h>using namespace std;struct node{ int num; int counts;};void quickSort(node num...原创 2019-03-11 11:14:23 · 2446 阅读 · 0 评论 -
算法--插入排序
#include <bits/stdc++.h>using namespace std;void insert_sort(int a[],int n){ int tmp,j; for(int i=1;i<n;i++){ tmp = a[i]; j = i; while(j>0 && t...原创 2019-03-19 22:17:08 · 116 阅读 · 0 评论 -
算法--选择排序
要点:选择排序,从未排序的序列中选择最小的,放到已排好序的最后,时间复杂度#include <bits/stdc++.h>using namespace std;//选择排序,从未排序的序列中选择最小的,放到已排好序的最后void select_sort(int a[],int n){ int k; int temp; for(int i=0...原创 2019-03-17 19:15:54 · 79 阅读 · 0 评论 -
算法--插入排序
插入排序,即使将i个数据插入到钱i-1个已排好的数据中,然后将其数据进行错位。就像打扑克一样,新抓一张牌,插入自己手中已排好的牌中。#include <bits/stdc++.h>using namespace std;void insert_sort(int a[],int n){ int tmp,j; for(int i=1;i<n;i...原创 2019-03-21 17:33:41 · 63 阅读 · 0 评论 -
算法--最少硬币问题
最少硬币问题即为多重背包问题#include <bits/stdc++.h>#define INF 9999using namespace std;struct Coins{ int t; int c;} coin[20];int min(int a,int b){ return a<b?a:b;}int main(){ ...原创 2019-03-18 20:50:07 · 1116 阅读 · 0 评论 -
算法--二分查找
二分查找是基于有序序列的查找算法,该算法一开始令[left,right]为整个序列的下标区间,每次测试当前[left,right]的中间位置mid=(left+right)/2,判断A[mid]与欲查询的元素x的大小。如果按照严格递增序列:如果A[mid] == x,说明查找成功,退出查询; 如果A[mid] > x,说明查询序列在mid左侧,则从左子区间[left,mid]...原创 2019-04-06 22:42:19 · 168 阅读 · 0 评论 -
算法--工作分配问题
Problem Description设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为 cij。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。Input输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。Output将计算出的最...原创 2019-04-12 20:32:10 · 2246 阅读 · 2 评论 -
算法--子集和问题
Problem Description子集和问题的一个实例为〈S,t〉。其中,S={ x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得:。试设计一个解子集和问题的回溯法。对于给定的正整数的集合S={ x1,x2,…,xn}和正整数c,计算S 的一个子集S1,使得:。Input输入数据的第1 行有2 个正整数n...原创 2019-04-12 20:36:08 · 1413 阅读 · 0 评论 -
算法--活动选择
Problem Description学校的大学生艺术中心周日将面向全校各个学院的学生社团开放,但活动中心同时只能供一个社团活动使用,并且每一个社团活动开始后都不能中断。现在各个社团都提交了他们使用该中心的活动计划(即活动的开始时刻和截止时刻)。请设计一个算法来找到一个最佳的分配序列,以能够在大学生艺术中心安排不冲突的尽可能多的社团活动。比如有5个活动,开始与截止时刻分别为:最佳安排序列为...原创 2019-04-20 21:29:53 · 153 阅读 · 0 评论 -
算法--多元Huffman编码问题
Problem Description在一个操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次至少选2 堆最多选k堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n堆石子合并成一堆的最大总费用和最小总费用。对于给定n堆石子,计算合并成一堆的最大总费用和最小总费用。Input输入数据的第1 行有2 个正整数n和k(n≤100000,k≤100...原创 2019-04-19 22:33:16 · 394 阅读 · 0 评论