![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论作业
文章平均质量分 54
算法导论的作业
owooooow
这个作者很懒,什么都没留下…
展开
-
算法导论3 A 数据加密(贪心)
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。现在要求你用下面给定的方法对数据实现加密。原创 2023-11-08 20:10:16 · 41 阅读 · 0 评论 -
算法导论2 D 汽车费用(dp)
一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如下表就是一个费用的单子。没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<=n<100),它可以通过无限次的换车来完成旅程。最后要求费用最少。第一行十个整数分别表示行走1到10公里的费用(<=500)。注意这些数并无实际的经济意义,即行驶10公里费用可能比行驶一公里少。第二行一个整数n表示,旅客的总路程数。仅一个整数表示最少费用。15147。原创 2023-11-08 14:56:01 · 44 阅读 · 0 评论 -
算法导论2 F 法师康的工人(滑动窗口)
三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机。第一个工人在200时刻开始(从6点开始计时,以秒作为单位)在生产线上开始生产,一直到1000时刻。第二个工人,在700时刻开始,在1100时刻结束。第三个工人从1500时刻工作到2100时刻。期间最长至少有一个工人在生产线上工作的连续时间为900秒(从200时刻到1100时刻),而最长的无人生产的连续时间(从生产开始到生产结束)为400时刻(1100时刻到1500时刻)。原创 2023-11-08 19:54:53 · 46 阅读 · 0 评论 -
算法导论2 C 哈夫曼编码(哈弗曼树,贪心)
给定一只含有小写字母的字符串;输出其哈夫曼编码的长度。原创 2023-11-08 14:47:03 · 57 阅读 · 0 评论 -
算法导论3 B 有趣的素数(dfs)
素数被广泛地应用于密码学中,所谓的公钥就是将想要传递的信息在编码时加入砠数,编码之后传给收信人,任何人收到此信息之后,若没有此收信人所拥有的秘钥,则在解密的过程中将会因为分解质因数过久而无法破解信息,可见素数在密码学中的重要性。现在给你n(2<=n<=16)个正整数1,2,3...n,你的任务是把这n个正整数组成一个环,使得任意相邻的两个整数之和为一个素数,输出有多少种合法方案。多组输入数据,每组数据只有一个正整数n(2<=n<=16)代表有n个正整数 1,2,3...n。原创 2023-11-08 20:17:25 · 48 阅读 · 0 评论 -
算法导论3 C 简单的密码(dp)
密码是按特定法则编成,用以对通信双方的信息进行明密变换的符号。密码是隐蔽了真实内容的符号序列。其实就是把用公开的、标准的信息编码表示的信息通过一种变换手段,将其变为除通信双方以外其他人所不能读懂的信息编码,这种独特的信息编码就是密码。现在我们定义一种非常简单的密码,它的长度固定为n(n<=30)并且每一位只能由数字0或者数字1组成,但是有一个特殊的要求:一个密码序列中至少要有连续的3个0出现才可以,否则就是无效的。现在给定你密码序列的长度n,你的任务是计算长度为n的序列能产生多少种不同的并且有效的密码。原创 2023-11-08 20:26:16 · 52 阅读 · 0 评论 -
算法导论2 A迷宫游戏(dijkstra)
你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首要目标的前提下,使得你的得分总和尽可能大。现在问题来了,给定房间、道路、分数、起点和终点等全部信息,你能计算在尽快离开迷宫的前提下,你的最大得分是多少么?原创 2023-11-08 14:35:42 · 94 阅读 · 0 评论 -
算法导论3 E 凯撒加密法
凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是左移3的时候:明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。原创 2023-11-08 20:36:25 · 123 阅读 · 0 评论 -
算法导论3 D Vigenère 密码
16世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法——Vigenère 密码。Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。在 Vigenère 密码中,密钥k是一个字母串,kk1k2...kn。当明文时,得到的密文。原创 2023-11-08 20:30:13 · 39 阅读 · 0 评论 -
算法导论2 E 八皇后问题(dfs)
努比亚和苏丹没有子女,所以他要从一些有集成资格的继承者中挑选一个出来继承王位。他希望这个继承者足够聪明,所以他准备了一个西洋棋盘,上面的每个格子中均有一个 1-99 的数字。他又准备了 8 个皇后棋子。8 皇后的规则就是不能有任何棋子同行或者同列或者同斜线,在满足这个规则的同时,王位继承者还需要让 8 个皇后所在的位置的数字的和是最大的。原创 2023-11-08 19:42:37 · 46 阅读 · 0 评论 -
算法导论2 B Homework(贪心)
临近开学了,大家都忙着收拾行李准 备返校,但 I_Love_C 却不为此担心!因为他的心思全在暑假作业上:目前为止还未开动。暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。如果有 5 张试卷,其中 4 张是选择题,最后一张是填空题,很明显做最后一张所花的时间要比前 4 张长很多。但如果你只做了选择题,虽然工作量很少,但表面上看起来也已经做了4/5的作业了。原创 2023-11-08 14:39:38 · 35 阅读 · 0 评论 -
去重排序,双指针,二分(例题进击的奶牛),位运算(MEX AND XOR)
一般去重排序用set容器,但是有时候想要用到vector的性质,因此掌握利用vector去重排序的方法是很有必要的:vector去重排序的模板为:首先排序不必多说,是下面unique方法的前提。去重分为unique和erase两次操作unique方法传入两个迭代器,作用是把两个迭代器之间的重复的元素都挪到后面,它的返回值是第一个重复元素的迭代器,如下图所示:unique把原向量中重复的1和2都挪到了后面,并且返回了指向1的迭代器。原创 2023-11-05 22:47:05 · 51 阅读 · 0 评论 -
算法导论J 跳台阶(动态规划)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。多组测试样例。每组测试样例包含一个整数n。每组测试样例输出一行,表示青蛙跳上n级台阶的跳法数量.所得到的结果模10000000073435。原创 2023-11-05 12:31:24 · 28 阅读 · 0 评论 -
算法导论G 排列问题(深度优先,剪枝,回溯)
输入一个可能含有重复字符的字符串,打印出该字符串中所有字符的全排列。单组测试数据,输入数据是一个长度不超过10个字符的字符串,以逗号结尾。打印出该字符串中所有字符的全排列。以字典序顺序输出,用空格分隔。abc,原创 2023-11-05 12:05:34 · 29 阅读 · 0 评论 -
算法导论B 最长公共子序列(动态规划)
一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。第一行两个字符串用空格分开。两个串的长度均小于2000。最长子串的长度。原创 2023-11-05 10:12:52 · 31 阅读 · 0 评论 -
算法导论D 沙子的质量(矩阵连乘换皮)
设有N堆沙子排成一排,其编号为1,2,3,…,N(N< =300)。原创 2023-11-05 10:36:02 · 38 阅读 · 0 评论 -
算法导论C 矩阵连乘(动态规划)
给定n个矩阵{A1,A2,...,An},及m个矩阵连乘的表达式,判断每个矩阵连乘表达式是否满足矩阵乘法法则,如果满足,则计算矩阵的最小连乘次数,如果不满足输出“MengMengDa“。原创 2023-11-05 10:27:50 · 83 阅读 · 0 评论 -
算法导论I 奶牛的聚会(三分)
农历新年马上就要到了,奶牛们计划举办一次聚会庆祝新年的到来。但是,奶牛们并不喜欢走太远的路,这会给他们的聚会带来消极情绪,当一头奶牛的消极指数为Wi,他参加聚会所需行走的距离为si,那么他就会给聚会带来Si3*Wi的消极情绪。所有奶牛所在位置都在一条直线上,已知所有奶牛的坐标和消极指数,求如何确定聚会地点,使得所有奶牛给聚会带来的消极情绪之和最小,输出消极情绪之和的最小值。第一行包含一个整数 Ca(Ca<=20) ,表示有 Ca 组测试数据。原创 2023-11-05 12:26:47 · 51 阅读 · 0 评论 -
算法导论F 快速幂(快速幂,OJ里的一点小坑点)
给定x,求f(x)对100000007取余的结果。原创 2023-11-05 11:00:15 · 60 阅读 · 0 评论 -
算法导论A 锯木棒(哈夫曼树)
xiaok大佬最近再雇佣工人给他掰木棒。把一根长为L的木棒锯成两段,他需要支付给工人L元钱。xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段,每段长度分别为L1,L2,...,Ln,问xiaok大佬最少要付给工人多少钱?原创 2023-11-05 10:04:00 · 83 阅读 · 0 评论 -
算法导论H 进制转换(偷懒写法)
输入一个十进制正整数,然后输出它所对应的八进制数。原创 2023-11-05 12:07:34 · 28 阅读 · 0 评论 -
算法导论E 求第k小(偷懒写法)
给定n(1<=n<=1000000)个元素,求第k小数(1<=k<=n)。一组样例。第一行输入两个整数n和k。第二行输入n个不同的int范围内的数。输出一行,输出第k小数。原创 2023-11-05 10:40:08 · 23 阅读 · 0 评论