
schoolwork
BIT
CN_BIT
这个作者很懒,什么都没留下…
展开
-
P1249 最大乘积最优分解
#include<iostream>using namespace std;int n;int ans[10005]={1},l=1,resolve[10005];void multiply(int x){ int carry=0; //进位 for(int i=0;i<l;i++) { ans[i]*=x; ans[i]+=carry; carry=ans[i]/10; ans[i]%=10; } while(carry>0) { +.原创 2021-02-23 09:01:38 · 362 阅读 · 0 评论 -
任务分派问题
只有一组测试用例。输入:第一行是操作员的人数n(4=<n<=11),接下来的n行里每行有n个数,分别表示第i名操作员完成第i项任务的时间。要求每人完成且只完成一项任务。输出:完成所有任务的最短时间。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 4↵ 38412↵ 912135↵ 8793↵ 12768↵ 以文本方式显示 21↵...原创 2021-02-23 09:01:30 · 623 阅读 · 0 评论 -
回溯运动员最佳配对问题
羽毛球队有男女运动员各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][i]. 设计一个算法, 计算男女运动员最佳配对法, 使得各组男女双方竞赛优势的总和达到最大.数据输入:第1行有一个正整数n(1<=n<=12), 接下来原创 2021-02-23 09:00:58 · 1101 阅读 · 0 评论 -
快算24
一副牌,除了大小王之外还有52张,从1到13每个数目各有四张。要求设计一个程序,对于任意给出52张牌中的四张,运用+-×÷四种运算来判断能否每个数只能用一次,但不能不用,算出24来。注意,给出的4个数是无序的。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1111↵ 2341↵ 7211↵ 以文本方式显示 no↵ yes↵ yes↵ 1...原创 2021-02-23 08:59:14 · 1196 阅读 · 1 评论 -
符号三角形问题
输入:n (1<n<=27).输出不同方案的个数.注意:纯打表必和谐掉,不信就试试;有限打表,你懂的。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 2↵ 3↵ 以文本方式显示 0↵ 4↵ 1秒 64M 0 #include<iostream> #include<cstring> #include<a.原创 2021-02-23 08:58:36 · 391 阅读 · 0 评论 -
整除15问题
给定一个只包含数字 [0..9] 的字符串,求使用字符串中的某些字符,构造一个能够被15整除的最大整数。注意,字符串中的每个字符最多只能使用一次。 输入:程序从标准输入读入数据,每行数据由一串数字组成,长度为1到1000。 输出:针对每一行输入,输出一个结果,每个结果占一行。如果无法构造出能够被15整除的整数,请输出impossible。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 1↵ 01431↵ .原创 2021-02-23 08:56:55 · 615 阅读 · 0 评论 -
活动调度
假设要用很多个教室对一组活动进行调度。我们希望使用尽可能少的教室来调度所有的活动。输入要求:第一行为活动的个数 N(1<=N<=1 000 000) 。接下来 N 行为 Si 和 Fi(0<=Si<Fi<=2 000 000 000) ,分别代表第 i 个活动的开始时间和结束时间。活动 i 的区间段为 [Si,Fi)输出要求:输出有一行 M ,为所需教室的最小数量。 测试输入 期待的输出 时间限制 内存限制 额外进程 .原创 2021-02-23 08:56:11 · 1616 阅读 · 5 评论 -
二分找下标
设n个不同的整数排好序后存于T[0:n-1]中. 若存在若干(>=0)个下标i,0<= i <=n-1, 使得T[i]=i. 设计一个有效算法找到这些个下标.数据输入: 第1行有一个正整数n, n<=1000000, 表示有n个整数(保证在int内). 接下来一行是这n个整数.结果输出:T[i]=i的下标;若没有则输出No .注意输出最后有个空格. 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示..原创 2021-02-22 22:07:11 · 3123 阅读 · 1 评论 -
租用游艇问题
问题描述: 长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n. 游客可在这些游艇出租站租用游艇, 并在下游的任何一个游艇出租站归还游艇. 游艇出租站i到出租站j之间的租金为r(i,j), 1<=i<j<=n. 试设计一个算法, 计算出从游艇出租站1到游艇出租站n所需的最少租金, 并分析算法的计算复杂性.算法设计: 对于给定的游艇出租站i到游艇出租站j的租金r(i,j), 1<=i<j<=n. 计算出租站1到n所需的最少租金.数据输入: 第1行有一个正整数n原创 2021-02-22 22:06:11 · 673 阅读 · 0 评论 -
数字三角形问题
问题描述: 给定一个有n行数字组成的数字三角形. 试设计一个算法, 计算出从三角形的顶至底的一条路径, 使该路径经过的数字和最大.算法设计: 对于给定的n行数字组成的三角形, 计算从三角形顶至底的路径经过的数字和的最大值.数据输入: 第1行数字三角形的行数n, 1<=n<=100. 接下来n行是数字三角形各行中的数字. 所有数字在0~99之间.结果输出: 第1行中的数是计算出的最大值. 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用.原创 2021-02-22 22:04:49 · 521 阅读 · 0 评论 -
石子合并问题
问题描述: 在一个圆形操场的四周摆放着n堆石子. 现在要将石子有次序地合并成一堆. 规定每次只能选相邻的2堆石子合并成一堆, 并将新的一堆石子数记为该次合并的得分. 试设计一个算法, 计算出将n堆石子合并成一堆的最小得分和最大得分.算法设计: 对于给定n堆石子, 计算合并成一堆的最小得分和最大得分.数据输入: 第1行是正整数n, 1<=n<=100, 表示有n堆石子. 第2行有n个数, 分别表示n堆石子的个数.结果输出: 第1行是最小得分, 第2行是最大得分. 测试输入.原创 2021-02-22 22:02:09 · 734 阅读 · 0 评论 -
小游戏
某人很喜欢玩计算机游戏,特别是战略游戏,但是有时他不能尽快找到解所以常常感到很沮丧。现在面临如下问题:他必须在一个中世纪的城堡里设防,城堡里的道路形成一棵无向树。要在结点上安排最少的士兵使得他们可以看到所有边。你能帮助他吗?你的任务是给出士兵的最少数目。输入包含多组数据。每组数据表示一棵树,在每组数据中:第一行是结点的数目。接下来的几行,每行按如下格式描述一个结点:结点标识符 : ( 道路的数目 ) 结点标识符1 结点标识符2...... 结点标识符道路的数目或者结点标识...原创 2021-02-22 22:00:55 · 1029 阅读 · 0 评论 -
DP
对于由从1到N (1 <= N <= 39)这N个连续的整数组成的集合来说,我们有时可以将集合分成两个部分和相同的子集合。例如,N=3时,可以将集合{1, 2, 3} 分为{1,2}和{3}。此时称有一种方式(即与顺序无关)。N=7时,共有四种方式可以将集合{1, 2, 3, ..., 7} 分为两个部分和相同的子集合:{1,6,7} 和 {2,3,4,5}{2,5,7} 和 {1,3,4,6}{3,4,7} 和 {1,2,5,6}{1,2,4,7} 和 {3,5,6}输入...原创 2021-02-22 21:59:45 · 230 阅读 · 0 评论 -
矩阵链乘问题
输入:共两行第一行 N ( 1<=N<=100 ),代表矩阵个数。第二行有 N+1 个数,分别为 A1 、 A2 ...... An+1 ( 1<=Ak<=2000 ), Ak 和 Ak+1 代表第 k 个矩阵是个 Ak X Ak+1 形的。输出:共两行第一行 M ,为最优代价。注:测试用例中 M 值保证小于 2^31第二行为最优顺序。如 (A1((A2A3)A4)) ,最外层也加括号。注意:测试用例已经保证了输出结果唯一,所以没有AAA的情况..原创 2021-02-22 21:58:11 · 1274 阅读 · 0 评论 -
套圈
Have you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some toys, with all the toys encircled awarded. In the field of Cyberground, the position of each toy is fixed, and the ring is carefully designed so it can only原创 2021-02-22 21:54:51 · 1097 阅读 · 0 评论 -
油井问题
主油管道为东西向,确定主油管道的南北位置,使南北向油井喷油管道和最小。要求线性时间完成。1<= 油井数量 <=2 000 000输入要求:输入有油井数量行,第 K 行为第 K 油井的坐标 X ,Y 。其中, 0<=X<2^31,0<=Y<2^31 。输出要求:输出有一行, N 为主管道最优位置的最小值注意:用快排做的不给分!!友情提示:可以采用while(scanf("%d,%d",&x,&y) != EOF)的数据读入方式。原创 2021-02-22 21:49:58 · 954 阅读 · 0 评论 -
北理工网络安全导论作业:网络抓包
原创 2020-10-06 16:42:39 · 400 阅读 · 0 评论 -
北理工网络安全导论作业:MD5算法
一.8位hash值摘要算法设计1.进行数据填充使消息的长度对32取模得28,填充方法是,填充第一位为1,其余为0。2.在消息后面添加4位值,表示原消息的长度。如果消息长度大于2^4,则只使用其低4位的值。3. 把消息分以32位为一分组进行处理,每一分组又被划分为16个2位子分组。每一个分组进行4轮变换,以4个常数为起始变量进行计算,重新输出4个变量,以这4个变量再进行下一分组的运算,如果已经是最后一个分组,则这4个变量为最后的结果,即MD5值。4个常数: A = 01, B = 19, C原创 2020-10-06 16:18:39 · 686 阅读 · 0 评论 -
北理工网络安全导论作业:RSA算法
选取质数p=37,q=29n=p*q=1073欧拉函数φ(n)=(p-1)(q-1)=1008使用以下程序找出所有符合要求的e和d#include<iostream>#include<string>#include<cmath>#include<cstdio>using namespace std;bool isprime(int x){ double l=sqrt((double)x); for(int i=2原创 2020-10-06 16:14:28 · 350 阅读 · 2 评论 -
北理工网络安全导论作业:DES算法
一.分析DES算法的编程实现小组使用同一份源码,程序实现参考以下流程图,采用C++实现,仅限十六位十六进制数为输入输出。二.实验验证DES算法的特性明文雪崩效应如图所示,明文只改变了一位,密钥不变,密文十六位完全改变。2.密钥雪崩效应如图所示,密钥只改变了一位,明文不变,密文十六位完全改变。3.加密解密过程可逆如图所示,加密解密过程是可逆的。...原创 2020-10-06 16:09:40 · 466 阅读 · 1 评论 -
北理工网络安全导论作业:维吉尼亚密码
维吉尼亚密码是使用多个凯撒密码组成的字母对照表格进行加密和解密的算法,其使用的表格如下:在加密时,通过明文字母确定列,再通过对应密钥字母确定行,行列交叉对应的字母即为密文字母。加密演示如下:O为明文,K为密钥,Y为加密所得密文。解密即为加密的逆过程。在使用代码实现时,不需要画出表格,将26个字母化为数字0-25,上述加密过程可用数学语言表达为(14+10)%26=24因此在程序中使用m[i]=(char)(97+(m[i]-97+k[j]-97)%26);..原创 2020-10-06 16:05:06 · 647 阅读 · 0 评论 -
Java实验:K-means算法
(1)实验题目: K-means算法是经典的聚类算法,其基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。假设要把样本集分为K个类别,算法描述如下:(1)适当选择k个类的初始中心(2)在第I次迭代中,对任意一个样本,求其到K个中心的距离,将该样本归到距离最短的中心所在的类(3)利用均值方式更新该类的中心值(4)对于所有的K个聚类中心,如果利用(2)(3)的迭代法更新后,值保持基本不变,则迭代结束,否则继续迭代。原创 2020-09-24 17:35:34 · 2042 阅读 · 1 评论 -
Java实验:K近邻算法
(1)实验题目: K近邻算法是分类数据最简单有效的算法,它采用基于实例的学习方法。简单地说,它采用测量不同样本之间距离的方法进行分类。它的工作原理是:存在一个样本数据集合,也称为训练样本集,并且样本集中的每个数据都有标签,即我们知道每个数据所属的分类。输入没有标签的新数据之后,将新数据的每个特征与样本集中数据的对应特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前K个最相似的数据,这就是K近邻算法中K的出处。最后,选择K个最相似数据中出现次数最多的分类。原创 2020-09-24 17:30:33 · 1451 阅读 · 0 评论 -
Java实验:文件读写
(1)实验题目:打开中的lunch.java文件,一次读取其中的一行,令每行形成一个String对象。然后利用java.util.Comparator接口重新定义String对象间的比较方法:将每个String中的小写字母转为大写后再进行比较。使用该比较法对这些String进行排序,按从大到小的顺序存入一个LinkedList。最后将LinkedList中的String按存入的相反顺序输出到另一个文件inverse.txt中。(2)实验思路:涉及到了文件的输入和输出,使用try catch处理.原创 2020-09-24 17:25:39 · 1857 阅读 · 1 评论 -
Java实验:类的设计
(1)实验题目:This question involves the design and implementation of a LibraryBook class of objects representing library books.a) Decide what information needs to be maintained about each library book. At this stage, do not worry about information needed to s原创 2020-09-24 17:22:46 · 649 阅读 · 0 评论 -
Java实验:重写equals方法
(1)实验题目:实现一个名为Value 的类,其中含有一个字符类型的成员x 和双精度类型的成员y。请重写(override)其equals( )方法,使得用equals( )比较Value 类的两个对象的内容时,相等条件是对象的所有成员分别对应相等。(2)实验思路:每个类都使用Object作为超类,要重写Value的equals方法,实际上就是重写其继承自object的equals方法。在子类中重写父类的方法要求子类的方法与父类的方法具有相同的方法名、返回类型和参数表,且访问权限不能减少。.原创 2020-09-24 17:19:06 · 765 阅读 · 0 评论 -
北理工C++面向对象程序设计试卷 (2019-2020-2)
课程编号:(2019-2020-2)-100081037-6120103321-01北京理工大学2019 - 2020学年第II学期面向对象程序设计(C++)/重/补考试题(请将答案写在试题后面)简答题(40分,每题10分)简述抽象的相关内容。 简述可能产生二义性的各种原因与解决办法。 简述赋值兼容规则及各种应用场景。 简述虚基类用途、应用场景及语法规则。论述题(40分,每题10分)论述C与C++的区别与联系 论述面向对象程序设计的特点。 论述C++中的构造函数。 论述C++.原创 2020-07-10 19:26:54 · 1801 阅读 · 0 评论 -
触发器逻辑符号
主从式JK触发器和边沿式JK触发器是不同的原创 2020-04-07 21:35:57 · 4088 阅读 · 0 评论 -
分组优化快速排序习题
算法设计与分析/王晓东2.25 在线性时间选择算法中, 输入元素被划分为5个一组, 如果将它们划分为7个一组, 该算法仍然是线性时间算法吗? 划分成3个一组又怎样?...原创 2020-03-26 16:55:53 · 1434 阅读 · 0 评论 -
求元素的阶
要求源代码中给出求解过程和注释,不能直接输出结果。设Z18为模18整数加群,求元素的阶。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 2↵ 以文本方式显示 9↵ 1秒 64M 0 #include<iostream> using name...原创 2020-03-26 08:24:44 · 6963 阅读 · 0 评论 -
求函数的逆元
要求源代码中给出求解过程和注释,不能直接输出结果。设A={x|x属于R, x不等于0,1},在A上定义6个函数,f1(x)=x, f2(x)=x-1, f3(x)=1-x,f4(x)=(1-x)-1, f5(x)=(x-1)x-1, f6(x)= x(x-1)-1,*运算为函数的复合运算,求函数的逆元。 测试输入 期待的输出 时间限制 内存限制 ...原创 2020-03-26 08:21:15 · 3260 阅读 · 1 评论 -
堆排序模板【严蔚敏数据结构】
实验要求:用堆排序算法按关键字递减的顺序排序。程序输入:待排序记录数(整数)和待排序记录(整数序列);程序输出:建堆结果和建堆后第一、第二次筛选结果。(注:待排序记录数大于等于3) 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 6↵ 11↵ 12↵ 16↵ 1...原创 2020-03-18 08:21:37 · 851 阅读 · 0 评论 -
竞选海报
描述数码城正在举行市长选举,城中各处贴满了竞选者的海报,这引起了一些市民的不满。因此城市委员会决定建造一座竞选墙,让参加竞选的人把自己的海报统一贴到竞选墙上。张贴海报的规则是:每一个候选人只能张贴一张海报; 海报的高度和墙的高度一样,而海报的宽度则是任意个 byte 宽(在数码城,byte 是个长度单位); 竞选墙被分成很多段,每段的宽度是一个 byte; 竞选者的海报必须完整地覆盖...原创 2020-03-18 08:22:00 · 617 阅读 · 0 评论 -
三数中值法快速排序
要求根据给定输入,按照课堂给定的快速排序算法进行排序。在划分时,以当前序列的首位元素、中间位置元素和最末元素的中间值为枢轴,记为median3。注意,如median3不在首尾,需要和首位元素交换位置。要求输出排序结果和median3的返回值。注:1,cutoff值为5,不足cutoff使用插入排序。 2,输入、输出格式参见测试用例0。 测试输入 ...原创 2020-03-18 08:22:11 · 2195 阅读 · 0 评论 -
平衡二叉树的先序中序后序及旋转输出
程序输入一个字符串(只包含小写字母),请按照字符的输入顺序建立平衡二叉排序树,并分别输出二叉树的先序序列、中序序列和后序序列,最后输出该二叉树向左旋转 90 度后的结构。例如:向左旋转 90 度后,以每层向里缩进 4 个空格的方式输出,输出结果为: i g fa d c b输入:agxnzyimk 输出...原创 2020-03-18 08:22:37 · 1764 阅读 · 1 评论 -
排序二叉树的凹入表示及中序遍历
建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入:输入有一行,表示若干个要排序的数,输入0时停止输出二叉树的凹入表示和二叉树的中序遍历序列sample:input:56 78 34 89 12 35 67 77 22 57 0output: 12 ...原创 2020-03-17 10:08:33 · 1286 阅读 · 0 评论 -
多关键字折半查找
折半查找的查找过程:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。每条待查记录包含关键字项和其他项,如关键字项为15,其他项为该记录在查找表里的原序号4。对无序表的查找,还需要事先排列成有序表,再进行折半查找。输入:5 (记录的条数)各记录项:如 32 1输出:已按关键字排列好的非递减序列:如 (16 2)(20 5)(32 1)(35 ...原创 2020-03-17 10:07:14 · 905 阅读 · 0 评论 -
求解无向图的各连通分支
求解无向图的各连通分支输入:第一行为图的节点数n(节点编号0至n-1,0<n<=10)从第二行开始列出图的边,-1表示输入结束输出:输出每个连通分支的广度优先搜索序列(从连通分支的最小编号开始),不同分支以最小编号递增顺序列出sample:input:80 55 24 55 66 23 7-1output:0-5-2-4-613-7...原创 2020-03-17 10:05:59 · 3499 阅读 · 0 评论 -
公司里的那点事儿
描述对于一间公司来说,它成立之时所做的第一件事恐怕就是任命CEO了。之后,CEO就会开始雇用员工,也会有员工离职去别的公司。假设公司中的每一个员工(包括 CEO在内)都可以直接雇用新的员工,而公司中的所有员工(包括CEO)也都可能会跳槽离开,则某公司在成立一段时间之后的的组织结构如图1:VonNeumann是公司的CEO,他直接雇用了两个人,分别是Tanenbaum和Dijkstra。...原创 2020-03-17 10:04:38 · 490 阅读 · 0 评论 -
AOE 网络计算工程完成的关键路径
说明: AOE 网络是有向无环加权图,其中顶点表示事件,弧表示活动,权表示活动持续的时间,通常可以用来估算工程完成的时间,即图中从开始点到结束点之间最长的路径对应的时间。请完成一个程序,完成下列任务:1 、计算 AOE 网络对应的拓扑排序。如果排序结果不唯一,请输出按照从小到大的顺序排列的结果。从小到大的顺序就是输入的节点序列顺序(参见下面关于输入格式的说明)。如图1中满足要求的拓扑排序是: ...原创 2020-03-17 09:59:40 · 2661 阅读 · 1 评论