算法分析
horizon_zore
这个作者很懒,什么都没留下…
展开
-
编辑距离问题
#include using namespace std;int main(){ char A[] = "fxpimu"; char B[] = "xwrs"; int lena = strlen(A); int lenb = strlen(B); int **m = new int*[lena+1]; for (int i = 0; i <= lena; i++){ m[i]原创 2015-10-17 18:20:35 · 329 阅读 · 0 评论 -
算法训练 结点选择
问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。接下来一共 n-1 行,每行描述树上的一条边。输出格式输出一个整数,代表选出的点的权值和的原创 2016-01-18 12:53:26 · 775 阅读 · 0 评论 -
n王后问题(分支限界)
#include #include using namespace std;class QNode{public: int *x;//记录当前的数值 int i;//记录自己是第几层,即已经放了多少个};class Queen{ friend int main();public: int* bestx;//记录最好 int n;//有几个王后 Queen(int n)原创 2015-12-17 09:50:04 · 2393 阅读 · 0 评论 -
快速排序的各种方法
#include #include using namespace std;int partition(int* arr, int left, int right){ int key = arr[left]; int i = left, j = right; while (1) { while ((i= key)) { j--; } while ((i<j)&&原创 2015-12-16 20:29:39 · 285 阅读 · 0 评论 -
算法训练 区间k大数查询
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式原创 2015-12-22 15:19:46 · 405 阅读 · 0 评论 -
算法训练 安慰奶牛
问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 j j <= N; Sj != Ej),而且走完它需要Lj的时间原创 2016-01-23 16:05:09 · 442 阅读 · 0 评论 -
算法训练 集合运算
问题描述 给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。输入格式 第一行为一个整数n,表示集合A中的元素个数。 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。 第三行为一个整数m,表示集合B中的元素个数。 第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。 集合中的所有元素均为int范围内的整数,n、m原创 2016-02-01 17:29:47 · 733 阅读 · 0 评论 -
算法训练 旅行家的预算
问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。输入原创 2016-02-03 21:00:45 · 9106 阅读 · 0 评论 -
算法训练 操作格子
问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p原创 2016-02-17 18:32:40 · 417 阅读 · 0 评论 -
算法训练 王、后传说
问题描述 地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横、坚、斜线位置。 看过清宫戏的中国人都知道,后宫乃步步惊心的险恶之地。各皇后都有自己的势力范围,但也总能找到相安无事的办法。 所有中国人都知道,皇权神圣,伴君如伴虎,触龙颜者死...... 现在有一个n*n的皇宫,国王占据他所在位置及周围的共9个格子,这些格子皇后不能使用(如果国王在王宫的边原创 2016-03-11 23:17:15 · 663 阅读 · 0 评论 -
蓝桥杯练习题 K好数
问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。输出格式输出一个整数原创 2016-01-16 21:58:07 · 350 阅读 · 0 评论 -
最小重量机器设计问题
input.txt3 3 43 2 11 2 31 2 21 2 33 2 12 2 2#include #include using namespace std;int main(){ //读取文件 ifstream in("input.txt", ios::in); if (!in.is_open()){ cout << "Er原创 2015-11-19 22:34:57 · 481 阅读 · 0 评论 -
圈乘运算问题
思路源于Will_Lee_Buaa#include using namespace std;int NumLen(int x){//统计位数 int len = 0; while (x>0){ len++; x /= 10; } return len;}void Init(int* a, int x){//作初始化 int min = 10; int max =原创 2015-10-29 09:11:22 · 2653 阅读 · 0 评论 -
数学三角形问题
input.txt573 88 1 02 7 4 44 5 2 6 5原创 2015-10-19 20:16:43 · 421 阅读 · 0 评论 -
带方向性全排列
#include using namespace std;typedef struct{ int value; int fangxiang;//-1}number;void swap(number* arr, int n,int j){//arr为数组的指针,n为总个数,j为要交换的位置 number* p=arr; number temp = arr[j+arr[j].fang原创 2015-10-19 20:40:14 · 283 阅读 · 0 评论 -
独立任务最优调度
#include using namespace std;int main(){ int n = 6;//15 int a[] = {2,5,7,10,5,2}; int b[] = {3,8,4,11,3,4}; int sum = 0; for (int i = 0; i < n; i++){ sum += a[i]; } int** m = new int*[n];原创 2015-10-19 11:28:24 · 553 阅读 · 0 评论 -
会场安排问题之最少使用会场
input.txt51 2312 2825 3527 8036 50ouput.txt3问题描述:假设有足够多的场地中,有一批任务要使用场地,求最少使用场地的数目。#include #include#include #include using namespace std;int main(){ //数据读取 ifstream in("原创 2015-11-03 16:56:41 · 870 阅读 · 0 评论 -
石子合并问题
#include using namespace std;int main(){ int n = 4; int arr[] = { 4, 4, 5, 9 }; int **sums = new int*[n];//记录从第i个到i+j个的最后一次的分数 for (int i = 0; i < n; i++){ sums[i] = new int[n](); } int **m原创 2015-10-19 11:26:09 · 280 阅读 · 0 评论 -
乘法表问题
a b ca b b ab c b ac a c c原创 2015-10-21 09:26:21 · 358 阅读 · 0 评论 -
租用游艇问题
input.txt原创 2015-10-21 19:55:39 · 357 阅读 · 0 评论 -
最小m段和
#include using namespace std;int main(){ int n = 9; int m = 3; int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; int **r = new int*[n]; for (int i = 0; i < n; i++){ r[i] = new int[m](); } r[0][0]转载 2015-10-22 18:11:49 · 395 阅读 · 0 评论 -
子集和问题
input.txt5 102 4 6 5 2#include #include using namespace std;class subset{public:subset(int* best, int* arr, int n, int result); void backtrack(); bool Place(int k); int* arr;原创 2015-11-12 17:53:20 · 341 阅读 · 0 评论 -
算法训练 最大体积
问题描述 每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的OIER想要研究一下物品不能装出的最大体积。题目保证有解,如果是有限解,保证不超过2,000,000,000 如果是无限解,则输出0输入格式 第一行一个整数n(n 第2行到N+1行: 每件物品的体积(1原创 2016-03-14 15:38:12 · 1525 阅读 · 0 评论