c++
墨客!
这个作者很懒,什么都没留下…
展开
-
子集和问题
问题描述:给定集合S,S中有n个正整数,M是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中各元素之和等于M。请设计回溯法求解子集和问题,如果问题无解,输出“No Solution”,问题有解,则输出满足子集S1中各元素的值。输入6 123 4 5 7 10 1输出3 4 5#include <iostream>using namespace std;const int N = 10005;int a[N], n, m, rec[N]; bool nu;vo原创 2020-12-20 16:31:36 · 385 阅读 · 0 评论 -
寻宝
小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物,且每次只能向右边或向下边的房间继续寻宝,最终只能从最右下的房间出来。请你帮小明计算下他最多可以收集到多少价值的宝物?输入格式:输入第一行给出两个正整数m,n(1=<m,n<=2000),随后给出m行数据,每行都包括n个正整数,中间用空格分割。输出格式:输出收集到的最大价值v,题目保证v<10^9。输入样例:4 41 18 9 37 10 6 125 13 4 1原创 2020-12-20 11:05:36 · 255 阅读 · 1 评论 -
矩阵链相乘问题
矩阵的乘法定义如下:设A是m×p的矩阵,B是p×n的矩阵,则A与B的乘积为m×n的矩阵,记作C=AB,其中,矩阵C中的第i行第j列元素cij可以表示为:当多个矩阵相乘时,采用不同的计算顺序所需的乘法次数不相同。例如,A是50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵, 计算ABC有两种方式:(AB)C和A(BC),前一种需要15000次乘法计算,后一种则只需3500次。设A1,A2,…,An为矩阵序列,Ai是阶为Pi−1∗Pi的矩阵(1≤i≤n)。试确定矩阵的乘法顺序,使得计算A1A2原创 2020-12-20 10:37:42 · 551 阅读 · 1 评论 -
0-1背包
给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。输入格式:共有n+1行输入: 第一行为n值和c值,表示n件物品和背包容量c; 接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。输入样例:原创 2020-12-17 14:18:14 · 142 阅读 · 0 评论 -
工作分配问题
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。输入格式:输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。输出格式:将计算出的最小总费用输出到屏幕。输入样例:在这里给出一组输入。例如:310 2 32 3 43 4 5输出样例:在这里给出相应的输出。例如:9#include<iostream>#include&l原创 2020-12-15 20:50:48 · 326 阅读 · 0 评论 -
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。输入格式:输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。输出格式:将计算出的最小总费用输出到屏幕。输入样例:在这里给出一组输入。例如:310 2 32 3 43 4 5输出样例:在这里给出相应的输出。例如:9#include<iostream>#include&l原创 2020-12-10 13:10:47 · 6252 阅读 · 0 评论 -
最优服务次序问题
1.最优服务次序问题。问题描述:设有n个顾客同时等待一项服务,顾客i需要的服务时间为ti,(1<=i<=n)。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?(平均等待时间是n个顾客等待服务时间总和除以n)输入:第一行为一个正整数n,表示有n个顾客第二行为n个正整数,表示n个顾客需要的服务时间输出:最小平均等待时间。#include <iostream>#include<algorithm>using namespace std;int main(原创 2020-12-09 18:48:41 · 925 阅读 · 0 评论 -
priority_queue 说明
priority_queue 说明头文件 #include优先队列。默认是按照从大到小排序的。如果要定义从小达大排列的:priority_queue<int,vector,greater> q;priority_queue 操作q.size();//返回q里元素个数q.empty();//返回q是否为空,空则返回1,否则返回0q.push(k);//在q的末尾插入kq.pop();//删掉q的第一个元素q.top();//返回q的第一个元素例如#include<q转载 2020-12-06 14:05:42 · 169 阅读 · 0 评论 -
贪心算法之购月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。输入格式原创 2020-12-01 20:34:15 · 126 阅读 · 0 评论 -
C++函数指针的使用
一 函数指针介绍函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下:int add(int nLeft,int nRight);//函数定义该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可:int (pf)(int,int);//未初始化则pf可指向int(int,int)类型的函数。pf前面有,说明pf是指针,右侧是形参列表,表示pf指向的是函数,左侧为int,说明pf指向的函数返回值为int。则pf可指向int(转载 2020-11-25 22:52:29 · 1313 阅读 · 0 评论 -
最大子段和问题
1.最大子段和问题。给定由n个整数组成的序列,求序列中子段的最大和,若所有整数均为负整数时定义最大子段和为0。例如, 当(a1,a2,a3,a4 ,a5,a6) = (-2,11,-4,13,-5,-2)时,最大子段和为: a2+a3+a4=20输入格式:第一行输入整数个数n(1≤n≤10000),再依次输入n个整数。输出格式:输出第一行为最大子段和,第二行为子段第一个数和最后一个数在整个序列中的位序。输入样例1:6-2 11 -4 13 -5 -2输出样例1:202 4#inclu原创 2020-11-18 21:48:38 · 1352 阅读 · 0 评论 -
分形【递归】
分形【递归】题目描述分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。**盒型分形定义如下:度数为1的分形为:X度数为2的分形为:X XXX X如果用B(n-1)代表度数为n-1的盒型分形,则度数为n的盒型分形可以递归的定义为:B(n-1) B(n-1)B(n-1)B(n-1) B(n-1)你的任务是输出度数为n的盒型分形。输入输入包转载 2020-11-16 21:20:01 · 503 阅读 · 0 评论 -
c语言函数指针的理解与使用
1.函数指针的定义顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子:A.char * (*fun1)(char * p1,char * p2);B. char * *fun2(char * p1,char * p2);C. char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思?C.这很容易,fun3是函数名,p1,p2是参数,其类型为char 型,函数的返回值为char 类型。B. 也很简单,与C)表达式相比,唯一不同的就转载 2020-11-13 10:59:06 · 117 阅读 · 0 评论 -
滚动数组---动态规划思想
滚动数组—动态规划思想滚动数组是DP中的一种编程思想。简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。起到优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。当然是用时间去换空间的在斐波那契数列中#include<bits/stdc++.h>int main(){转载 2020-11-12 15:58:13 · 454 阅读 · 0 评论