300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 剪花布条 客似云来

剪花布条 客似云来

时间:2020-04-09 15:29:34

相关推荐

剪花布条 客似云来

问答题

问答题1:某浏览器发出的HTTP 请求报文如下:

下列叙述中,错误的是?

提示:Connection: 连接方式Close表明为非持续连接方式,keep-alive表示持续连接方式;Cookie值是由服务器产生的,HTTP请求报文中有Cookie报头表示曾经访问过www.服务器

问答题2:主机甲与主机乙之间已建立一个TCP 连接,双方持续有数据传输,且数据无差错与丢失。若甲收到 1 个来自乙的 TCP 段,该段的序号为 1913、确认序号为 2046、有效载荷为 100 字节,则甲立即发送给乙的 TCP 段的序号和确认序号分别是?

A: 2046、

B: 2046、

C: 2047、

D: 2047、

提示:甲在发送数据之前,明确两个信息

(1) 段序号为 1913,说明 乙 发给 甲 的数据段起始字节序号为 1913,有效载荷长度为 100,说明该数据段的长度为 100,那么甲下次需要的数据段的序号就是 1913 + 100 = ;

(2) 乙 发给 甲 的确认序号为 2046,说明 乙 这次需要 甲 发送的数据段的起始字节序号为 2046。获取这两个信息后,甲 即可确定要发给 乙 的序号为 2046(从乙的确认序号获知),确认序号为 (希望下次乙能够发送首字节序号 的数据段过来)

问答题3:主机甲和乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是?

A: 10KB

B: 12KB

C: 14KB

D: 15KB

提示:当t时刻发生超时时,把ssthresh设为8的一半,即为4,且拥塞窗口设为1KB。然后经历10个RTT后,拥塞窗口的大小依次为2、4、5、6、7、8、9、10、11、12,而发送窗口取当时的拥塞窗口和接收窗口的最小值,而接收窗口始终为10KB,所以此时的发送窗口为10KB,实际上该题接收窗口一直为10KB,可知不管何时,发送窗口一定小于等于10KB,选项中只有A选项满足条件

编程题4主机甲和主机乙之间建立一个TCP连接,TCP最大段长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送 两 个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的 接收 窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是?

A: 1000

B: 2000

C: 3000

D: 4000

提示:第一个段的确认段中通告的接收窗口大小为2000字节,即表明在接受到第一个报文段后,还有2000字节的缓存空间可用。 由于发送方发送了二个报文段,第二个段将占用剩下的2000字节中的1000字节,即一共还有(2000-1000=1000)字节,因而 此时主机甲还可以向主机乙发送的最大字节数是1000字节

编程题

编程题1:剪花布条

一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?

输入描述:输入包含多组数据,每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长

输出描述:对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行

示例

输入

abcde a3

aaaaaa aa

输出

0

3

提示:求在S串中,T串整体出现了多少次,利用 find 函数,首先从 pos 位置开始找,如果找到后,就跳过小饰条的长度再次找,直到找不到为止.

#include <iostream>#include <string>using namespace std;int main(){string s,t;while(cin>>s>>t){int res = 0;size_t pos = 0;while((pos = s.find(t,pos))!=string::npos){pos+=t.size();++res;}cout<<res<<endl;}return 0;}

编程题2:客似云来

NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……

现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)

输入描述:测试数据包括多组,每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天

输出描述:对应每一组输入,输出从from到to这些天里(包含from和to两天),需要做多少份早餐

方法一:可以利用斐波那契数列求出前80项的和,利用跌加的方式计算出 from 到 to 的和

方法二 :可以利用一个公式Sn = Fn+2 − 1

具体推导如下:通过特征方式计算出斐波那契数列的通项,然后利用等比数列的公式可推导出来

#include <iostream>#define MAX 83 //如果用公式计算,需要接下来两项的值void solve(long long num[]){for (int i = 2; i < MAX; i++){num[i] = num[i - 1] + num[i - 2];}}//解法1:用遍历求和求解long long sum_traversal(long long num[], int from, int to){long long ans = 0;//让数组下标从from - 1遍历到to - 1for (int i = from - 1; i < to; i++){ans += num[i];}return ans;}//解法2:用公式求解long long sum_formula(long long num[], int from, int to) {return num[to + 1] - num[from]; //第to + 2项的下标是to + 1,//第from + 2 - 1项的下标是from}int main(){int from, to;long long num[MAX] = {1, 1};//提前计算Fibonacci数列solve(num);while (std::cin >> from >> to){cout << sum_formula(num, from, to) << endl; }return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。