2-2 数组循环左移分数 6
作者 DS课程组
单位 浙江大学
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯a**n−1)变换为(a**m⋯a**n−1a0a1⋯a**m−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。
输出格式:在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:128 31 2 3 4 5 6 7 8
输出样例:14 5 6 7 8 1 2 3
我的答案(虽然是对的,但是有更好的,见后面)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <iostream> ...
2-1 两个有序序列的中位数分数 6
作者 DS课程组
单位 浙江大学
已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,A**N−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。
输入格式:输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。
输出格式:在一行中输出两个输入序列的并集序列的中位数。
输入样例1:12351 3 5 7 92 3 4 5 6
输出样例1:14
输入样例2:1236-100 -10 1 1 1 1-50 0 2 3 4 5
输出样例2:11
答案123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include <iostream ...
本文引用手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会-阿里云开发者社区
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会简介: 本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
为什么要搭建图床?经常在博客写文章或者搭建自己的网站时,肯定需要往里面加图片对吧。有人可能会想,我直接把图片保存在电脑上不就行了?其实这样也不是不可以,但问题来了,如果你想把你的文章转载到别的地方,那些在本地的图片别人是看不到的,你得一个个去复制粘贴,真是够呛!
这时候,如果用阿里云OSS或者腾讯云COS来搭建一个图床,问题就迎刃而解了。用这些服务,处理图片简直高效到不行。说到国内用得多的,腾讯云和阿里云绝对是排前面的,速度快 ...
实验2-1 求链式线性表的倒数第 m 项(C++版)分数 20
作者 刘凯源
单位 华东师范大学
请设计时间和空间上都尽可能高效的算法,求链式存储的线性表的倒数第m(>0)个元素。
函数接口定义:12template <typename ElemType>ElemType LinkedList<ElemType>::Find(int m)
其中LinkedList结构定义如下
123456789101112131415161718192021222324252627template <typename ElemType>class LinkedList{ public: struct ListNode { // 单链表的结点类型 ElemType data_; // 存储数据 ListNode* next_; // 线性表中下一个元素的位置 }; using Position = ListNode*; // 指针即结点位置 struct ListExce ...
算法2-9 一元多项式加法运算分数 20
作者 陈越
单位 浙江大学
请编写程序,求两个多项式的和。
输入格式:输入给出两个多项式的信息。对每个多项式,首先在一行中给出其非零项的个数 n,随后按指数递减的顺序给出 n 对 系数 指数,其中 系数 为实数,绝对值均不超过 1000,指数 为不超过 1000 的非负整数。注意:零多项式对应的 n 为 0。
输出格式:按指数递减的顺序输出两个多项式的和的每个非零项,每项占一行,格式为 系数 指数,其中 系数 输出小数点后 2 位。注意:零多项式不输出任何内容。
输入样例:123439 12 15 8 3 2426 19 -4 8 -13 6 82 0
输出样例:12345626.00 199.00 1211.00 8-13.00 63.00 282.00 0
答案12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747 ...
实验1-1 有序数组的插入(C++版)分数 20
作者 刘凯源
单位 华东师范大学
给定存储了n个从大到小排好序的整数,试将任一给定整数 x 插入数组中合适的位置,以保持结果依然有序。分析算法在最坏、最好情况下的时间、空间复杂度。具体来说,不妨假设整数序列存储为一个序列 array,这个序列的结构定义在下面给出,数据存放在数组 data 中。因为数组长度是有限的,我们在此假设 data 数组的最大长度为 kMaxSize。如果在执行插入之前,数组已经满了,则插入失败,返回 false;如果待插入的元素 x 已经在data中,则不要重复插入,返回 false;如果插入成功,则返回 true。
函数接口定义:1bool DecrSeqInsert(ArrNode& array, int x);
其中ArrNode定义如下:
123456class ArrNode { public: vector<int> data_; // 使用vector来动态管理数组大小 int size_; // 数组的大小 ...
算法1-10~11 输出 1 ~ n分数 10
作者 陈越
单位 浙江大学
给定正整数 n,输出 1 ~ n,每个数字占一行。
本题旨在测试不同的算法在各种数据情况下的表现。各组测试数据特点如下:
数据 0:测试基本正确性;
数据 1:n=1;
数据 2:n=1000;
数据 3:n=10000;
数据 4:n=100000;
数据 5:n=1000000。
输入格式:输入在一行中给出正整数 n (≤106)。
输出格式:输出 1 ~ n,每个数字占一行。
输入样例:13
输出样例:123123
法一:1234567891011121314#include <iostream>using namespace std;int main() { int n; cin >> n; // 使用'\n'代替endl,减少缓冲区刷新次数 for (int i = 1; i <= n; i++) { cout << i &l ...
算法1-7~9 连续子序列最大和分数 25
作者 陈越
单位 浙江大学
给定 n 个整数组成的序列 { a1,a2,⋯,an },“连续子序列”被定义为 { ai,ai+1,⋯,aj },其中 1≤i≤j≤n。“连续子序列最大和”则被定义为所有连续子序列元素的和中最大者。例如给定序列 { -2, 11, -4, 13, -5, -2 },其连续子序列 { 11, -4, 13 } 有最大的和 20。请编写程序,计算给定整数序列的连续子序列最大和。
本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:
数据 0~6:测试基本正确性;
数据 7:10$^3$ 个随机整数;
数据 8:10$^4$ 个随机整数;
数据 9:10$^5$ 个随机整数。
输入格式:输入第一行给出正整数 n (≤105);第二行给出 n 个整数,绝对值均不超过 100,其间以空格分隔。
输出格式:在第一行中输出连续子序列最大和,第二行输出该子序列首尾的数组下标(从 0 开始),以 1 个空格分隔。若解不唯一,则输出最小的数组下标(如样例所示)。注意:如果序列中所有整数皆为零或负数,则取空子列 ...
算法1-6 计算1-n与1-m每一项相互乘积的和分数 10
作者 陈越
单位 浙江大学
给定两个正整数 n 和 m,请编写程序,求 1n 与 1m 每一项相互乘积的和。
输入格式:输入在一行中给出两个正整数 n 和 m,均不超过 100,其间以空格分隔。
输出格式:在一行中输出题面中要求的值。
输入样例:15 3
输出样例:190
答案1234567891011121314#include <iostream>using namespace std;int main() { int n, m; cin >> n >> m; int sum = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { sum += i * j; } } cout << sum;}
算法1-5 计算1~ n平方的和加上1~n的和分数 10
作者 陈越
单位 浙江大学
给定正整数 n,请编写程序,求 (1+2+⋯+n2)+(1+2+⋯+n) 的值。
输入格式:输入在一行中给出正整数 n(≤100)。
输出格式:在一行中输出题面中要求的值。
输入样例:15
输出样例:1340
答案12345678910111213141516171819#include<iostream>using namespace std;// 计算m到n的和int getSum(int m, int n) { int sum = 0; for (int i = m; i <= n; i++) { sum += i; } return sum;}int main() { int n; cin >> n; int sum = 0; sum += getSum(1, n); sum += getSum(1, n*n); cout << ...


