啊这
tnbzndm
?
展开
-
回文串问题 动态规划
一个字符串,如果从左到右读和从右到左读是完全一样的,比如"aba",我们称其为回文串。现在给你一个字符串,可在任意位置添加字符,求最少添加几个字符,才能使其变成一个回文串。输入格式:任意给定的一个字符串,其长度不超过1000.输出格式:能变成回文串所需添加的最少字符数。#include#includeusing namespace std;int dp[1000][1000];int main(){char s[1000];int i, j, len;cin >> s;原创 2020-12-24 23:08:14 · 219 阅读 · 0 评论 -
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)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。#inc原创 2020-12-23 09:22:14 · 106 阅读 · 0 评论 -
最大子段和-动态规划算法
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。输入格式:输入有两行:第一行是n值(1<=n<=10000);第二行是n个整数。输出格式:输出最大子段和。#include#include#includeusing namespace std;class Solution {public:int ma原创 2020-12-22 19:08:13 · 575 阅读 · 0 评论 -
666问题-回溯
小明有一张m*n的好习惯记录卡,记录每一天的好习惯目标达成度(数字0-9表示)。某天目标完成达成,就在当天的格子里写上数字6,目标没有完全达成就写上一个小于6的数字(0-5),目标超额完成就写上一个大于6的数字(7-9)。记录卡上如果能找到一条长度为3的路径并且路径上的三个数字都大于等于6(这里的路径是指从某个格子出发,可以向左、右、上、下格子移动,并且不能重复经过一个格子),则小明就能得到一个“666”奖励。请你帮小明统计下他总共能得到多少“666”奖励。输入格式:输入第一行给出两个正整数m,n(.原创 2020-12-18 20:35:20 · 280 阅读 · 1 评论 -
整数拆分
将一个正整数拆分成若干个正整数的和。输入格式:一个正整数n输出格式:若干行,每行一个等式(每个数或者等号间都有一个空格,第一个数前没有空格,最后一个数后面没有空格,数与数之间要求非降序排列)。最后一行给出解的总个数#include#includeusing namespace std;void backTrack(int n,vector<vector>& nums,vector& ins) {int i = 1;while (n >= i) {if原创 2020-12-17 19:40:51 · 107 阅读 · 0 评论 -
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)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。#inclu原创 2020-12-15 23:15:49 · 185 阅读 · 0 评论 -
八皇后问题
输入格式正整数 n(n>0)输出格式若问题有解,则输出全部摆法(每两种摆法之间空一行)。若问题无解,则输出 None。要求:试探的顺序按从上到下逐行进行,其中每一行按从左到右的逐格进行,请参看输出样例2。...原创 2020-12-14 16:30:47 · 157 阅读 · 0 评论 -
最佳调度问题
假设有n(n<=20)个任务由k(k<=20)个可并行工作的机器完成。完成任务i需要的时间为ti。 试设计一个算法,对任意给定的整数n和k,以及完成任务i 需要的时间为ti ,i=1~n。计算完成这n个任务的最佳调度,使得完成全部任务的时间最早。输入格式:输入数据的第一行有2 个正整数n和k。第2 行的n个正整数是完成n个任务需要的时间。输出格式:将计算出的完成全部任务的最早时间输出到屏幕。#include #include using namespace std;int a原创 2020-12-09 21:04:17 · 152 阅读 · 0 评论 -
活动选择问题
#include#include#includeusing namespace std;struct activity{int si,ei;};int cmp(activity a,activity b){return a.ei<b.ei;}int main(){int n;activity a[1001];cin>>n;for(int i=0;i<n;i++)cin>>a[i].si>>a[i].ei;sort(a,a.原创 2020-12-07 20:29:45 · 80 阅读 · 0 评论 -
喷水装置
长L米,宽W米的草坪里装有n个浇灌喷头。每个喷头都装在草坪中心线上(离两边各W/2米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。请问:如果要同时浇灌整块草坪,最少需要打开多少个喷头?输入格式:输入包含若干组测试数据。第一行一个整数T表示数据组数。每组数据的第一行是整数n、L和W的值,其中n≤10 000。接下来的n行,每行包含两个整数,给出一个喷头的位置和浇灌半径。如图1所示的示意图是样例输入的第一组数据所描述的情况。图1输出格式:对每组测试数据输出原创 2020-12-06 09:30:17 · 126 阅读 · 0 评论 -
看电影
终于到周末了,明明是特别喜欢看电影。他想在一天内尽量多的看到完整的多部电影。 现在他把他喜欢的电影的播放时间表给你,希望你能帮他合理安排。输入格式:输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示明明喜欢的电影的总数。 接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个电影的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。 当n=0时,输入结束。输出格式:对于每组输入,输出能完整看到的电影的个数。#include #inc原创 2020-12-03 09:58:59 · 380 阅读 · 0 评论 -
最优合并问题
给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。输入格式:第一行有 1 个正整数k,表示有 k个待合并序列。 第二行有 k个正整数,表示 k个待合并序列的长度。输出格式:输出最多比较次数和最少比较次数。#include <bit原创 2020-12-02 22:38:29 · 112 阅读 · 0 评论 -
月饼
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。输入格式原创 2020-11-30 20:39:46 · 85 阅读 · 0 评论 -
装箱问题
#includeusing namespace std;int main(){int n;cin>>n;int a[n];int c[1000]={0};//箱内物品总大小int b[n];//记录箱子号for(int i=0;i<n;i++)cin>>a[i];int k=0;for(int i=0;i<n;i++){int p=0;//设置装箱开关for(int j=0;j<=k;j++){if((c[j]+a[i])<.原创 2020-11-29 20:19:57 · 71 阅读 · 0 评论 -
循环日程表
设有N个选手进行循环比赛,其中N=2M ,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空。输入格式:输入:M(M<=7)。输出格式:输出:表格形式的比赛安排表。一行各数据间用一个空格隔开。#include #include <math.h>using namespace std;void Table(int k,int n,int **a);void input(int &k);void ou原创 2020-11-28 10:31:54 · 403 阅读 · 0 评论 -
棋盘覆盖
在一个2^k * 2k(k为正整数,k<=10,length=2k)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格(其坐标为aa,bb,分别代表行坐标号和列坐标号),以及有四种L型骨牌(如下图)。求用若干块这种L型骨牌实现除该特殊点棋盘的全覆盖。(本题要求采用分治算法做)输入格式:输入三个数,分别是aa,bb,length.输出格式:输出整个棋盘。其中特殊方格填为0,然后铺棋盘的顺序为:先铺四个子棋盘交界的部分,然后递归的对每个子棋盘按照左上,右上,右下,左下的顺时针原创 2020-11-27 22:58:32 · 182 阅读 · 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-26 21:44:13 · 251 阅读 · 0 评论 -
改写二分搜索算法
设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。输入格式:输入有两行:第一行是n值和x值; 第二行是n个不相同的整数组成的非降序序列,每个整数之间以空格分隔。输出格式:输出小于x的最大元素的最大下标i和大于x的最小元素的最小下标j。当搜索元素在数组中时,i和j相同。 提示:若x小于全部数值,则输出:-1 0 若x大于全部数值,则输出:n-1的值、n的值。#原创 2020-11-25 09:08:56 · 487 阅读 · 0 评论 -
二分查找
输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。输入格式:输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。输出格式:输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。#includeusing namespace std;int main(){int n,x;cin>>n;int a[n];for(i原创 2020-11-23 20:46:54 · 312 阅读 · 2 评论 -
递归实现逆序输出整数
本题目要求读入1个正整数n,然后编写递归函数reverse(int n)实现将该正整数逆序输出。输入格式:输入在一行中给出1个正整数n。输出格式:对每一组输入,在一行中输出n的逆序数。原创 2020-11-22 09:00:26 · 3204 阅读 · 2 评论 -
输出全排列
输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按字典序输出。输入格式:一行输入正整数n。输出格式:按字典序输出1到n的全排列。每种排列占一行,数字间无空格。原创 2020-11-21 21:33:36 · 327 阅读 · 0 评论 -
换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。...原创 2020-11-20 15:42:39 · 90 阅读 · 0 评论 -
穷举问题-搬砖
某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。如果想用n人正好搬n块砖,问有多少种搬法?输入格式:输入在一行中给出一个正整数n。输出格式:输出在每一行显示一种方案,按照"men = cnt_m, women = cnt_w, child = cnt_c"的格式,输出男人的数量cnt_m,女人的数量cnt_w,小孩的数量cnt_c。请注意,等号的两侧各有一个空格,逗号的后面也有一个空格。如果找不到符合条件的方案,则输出"None"#include#includeus原创 2020-11-19 08:57:00 · 302 阅读 · 0 评论 -
停车场信息系统
需求分析:(1)在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机、一台读卡器和一个车辆通过传感器。(2)当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起。汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。(3)在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。(4)当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统原创 2020-11-11 09:31:50 · 955 阅读 · 0 评论 -
homework
https://continuousdelivery.com/2012/08/why-software-development-methodologies-suck/传统的软件项目与常规的、可预测的环境正好相反。衡量项目成功的唯一好指标 - 最终结果在项目生命周期内创造了预期价值吗?- 与导致成功或失败的关键决策相距无比,因此,原始团队的任何人都很少能够得到反馈。几乎不可能确定哪些决定导致成功或失败(在人工智能中,这被称为信用分配问题)。这些因素使得 IT 专业人员很难获得导致成功产品和服务的技能。相反原创 2020-11-02 12:56:38 · 70 阅读 · 0 评论 -
MVC与MVP的区别
通过对比图我们分析一下两种模式的特点:MVCView:布局的xml文件,或者纯Java写的布局,可以把页面显示的逻辑直接放在View中。Model:数据处理层,可以直接和View进行交互。Controller:把特定的功能逻辑抽离出来,作为控制层,保证View层和Model层的功能单一性,便于维护。MVC模式相对比较简单,尤其是View层,我们可以通过jsp等技术直接操作页面,完成和Controlller层和Model层的交互,所以MVC的核心是在View层。接下来我们再看看MVP模式:MV.原创 2020-11-02 13:02:39 · 143 阅读 · 0 评论 -
Homework3:
1.要考虑到大部分能影响到软件开发的事,适当延长周期才能在规定范围内完成项目。前期需求分析做的好软件开发周期内避免扯皮开发周期就会少的多。2.原创 2020-11-02 13:02:51 · 87 阅读 · 0 评论 -
homework4
形式化方法英文的名称是formal methods。用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验 证系统。 如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。这个基础提供一系列精确定义的概念,如:一致性和完整性,以及定义规范 的实现和正确性。 形式化方法的本质是基于数学的方法来描述目标软件系统属性的一种技术。不同的形式化方法的数学基础是不同的,有的以集合论和一阶谓词演算为基础...原创 2020-11-02 13:03:06 · 61 阅读 · 0 评论 -
咸鱼自我介绍
(咸鱼自我介绍)1.一名小小程序猿;也是一名无特殊兴趣爱好者对软件工程的希望:学到更多软件工程知识。目标:考试取得高分。2.本组只有自己,上面就是想要介绍的了3.不是更多的是学习软件工程的基本框架。...原创 2020-11-02 13:03:37 · 5415 阅读 · 0 评论