1、某高校计算机学院要新建3个实验室,每个实验室有25台主机,已申请了一个C类地址192.168.10.0,该C类地址的子网掩码为()
255.255.255.224
解析:
地址总共32位,c类地址默认掩码24位,也就是32位前面24个1,最后8位用于子网断。25个ip需要至少5个位表示,最后8位剩下前3位用于表示网段。所以最后八位1110 0000,转成十进制224
2、 MTU与分片
根据网络使用的技术不同,每种网络都规定了一个帧最多能够携带的数据量,这一限制称为最大传输单元(MTU)。因此,一个IP数据报的长度只有小于或等于一个网络的MTU时,才能在这个网络中进行传输。为了解决这一问题,IP互联网通常采用分片与重组技术。当一个数据报的尺寸大于将发往网络的MTU值时,路由器会将IP数据报分成若干较小的部分,称为分片,然后再将每片独立地进行发送。在接收到所有分片的基础上,主机对分片进行重新组装的过程称为IP数据报重组。
3、现在假设对N个元素的链表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )?
第一个数的比较次数为1,第二个数的比较次数为2。。。以此类推第N个数的比较次数为N,所以总的比较次数为1+2+...+N=N(N+1)/2,平均比较次数为(N+1)/2,也即平均查找长度。
4、Python 使用_init_()作为构造方法
5、关于Linux下面说法正确的是?
可以使用一般身份用户执行ifconfig eth0指令 √
可以将“.”加入到PATH的查询目录中 √
init是linux启动的第一个进程 √
linux操作系统可以对目录进行硬链接
6、创建文件时,权限值默认最高为666;创建目录时最高值才是777,这里创建的是文件,所以应该是666-022,644
7、使用>>指令向文件追加内容,原内容将保存。
使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。
8、吃葡萄
有三种葡萄,每种分别有a,b,c\mathit a,b,ca,b,c颗。有三个人,第一个人只吃第1,2\text 1,21,2种葡萄,第二个人只吃第2,3\text 2,32,3种葡萄,第三个人只吃第1,3\text 1,31,3种葡萄。
适当安排三个人使得吃完所有的葡萄,并且且三个人中吃的最多的那个人吃得尽量少。输入描述:
第一行数字T\mathit TT,表示数据组数。
接下来T\mathit TT行,每行三个数a,b,c\mathit a,b,ca,b,c
1≤a,b,c≤1018,1≤T≤101 \leq a,b,c \leq 10^{18} , 1 \leq T \leq 101≤a,b,c≤1018,1≤T≤10
输出描述:
对于每组数据,输出一行一个数字表示三个人中吃的最多的那个人吃的数量。
示例1
输入
2 1 2 3 1 2 6
输出
2 3
9、跳柱子
链接:https://www.nowcoder.com/questionTerminal/f02fe9dda1c443bdbe14b5775727124f?orderByHotValue=0&questionTypes=000100&page=1&onlyReference=false
来源:牛客网
小易有n\mathit nn根柱子,第i\mathit ii根柱子的高度为hi\mathit h_{i}hi。一开始小易站在第一根柱子上。小易能从第i\mathit ii根柱子跳到第j\mathit jj根柱子,当且仅当hj≤hih_{j} \leq h_{i}hj≤hi且1≤j−i≤k1 \leq j - i \leq k1≤j−i≤k。其中k\mathit kk为指定的一个数字。
另外小易拥有一次释放超能力的机会。这个超能力能让小易从柱子i\mathit ii跳到任意满足1≤j−i≤k1 \leq j - i \leq k1≤j−i≤k的柱子j\mathit jj而无视柱子高度的限制。
现在小易想知道,小易是否能到达第n\mathit nn根柱子。输入描述:
第一行数据组数T\mathit TT
对于每组数据,第一行数字n,k\mathit n,kn,k,接下来一行n\mathit nn个数字表示hi\mathit h_{i}hi.
1≤n≤1000,1≤hi≤109,1≤T≤10,1≤k≤n1 \leq n \leq 1000 , 1 \leq h_{i} \leq 10^9 , 1 \leq T \leq 10 , 1 \leq k \leq n1≤n≤1000,1≤hi≤109,1≤T≤10,1≤k≤n
输出描述:
对于每组数据,输出YES或NO
示例1
输入
1 5 3 6 2 4 3 8
输出
YES
链接:https://www.nowcoder.com/questionTerminal/f02fe9dda1c443bdbe14b5775727124f?orderByHotValue=0&questionTypes=000100&page=1&onlyReference=false
来源:牛客网
#include
#include
#include
#define MAX_N 1000+100
int T;
int N, k;
int H[MAX_N];
int dp[MAX_N][3];
int main()
{
scanf("%d", &T);
while (T--)
{
memset(dp, 0, sizeof(dp));
dp[0][1] = 1;
dp[0][0] = 1;
scanf("%d%d", &N, &k);
for (int i = 0; i < N; i++)
{
scanf("%d", &H[i]);
}
for (int i = 1; i < N; i++)
{
for (int j = 1; j <= k; j++)
{
if (i - j >= 0 && H[i] <= H[i-j]) {
dp[i][0] |= dp[i - j][0];
dp[i][1] |= dp[i - j][1];
}
dp[i][1] |= dp[i - j][0];
}
}
if (dp[N - 1][0] || dp[N - 1][1])
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
10、小易的公司一共有名员工, 第个人每个月的薪酬是万元。
现在小易的老板向小易提了次询问, 每次询问老板都会给出一个整数, 小易要快速回答老板工资等于的员工的数量。
链接:https://www.nowcoder.com/questionTerminal/3afd4298eaa54ac7a0911d2d75f3f565
来源:牛客网
输入描述:
第一行,两个空格间隔的整数n\mathit nn和m\mathit mm,表示人数和提问的次数 第二行,n\mathit nn个用空格间隔的整数xix_ixi,表示每名员工的薪酬
接下来有m\mathit mm行,每行一个整数,表示老板的一次提问。
1<=m<=80000,1<=n<=100000,1<=xi<=500,000,0001<=m<=80000 ,1<=n<=100000 ,1<=x_i<=500,000,0001<=m<=80000,1<=n<=100000,1<=xi<=500,000,000
输出描述:
m行,每行一个整数,表示对应提问的答案
示例1
输入
7 4 6 2 1 2 6 2 5 6 5 8 2
输出
2 1 0 3
11、积木
链接:https://www.nowcoder.com/questionTerminal/ea786bfaf4004040a1ffca8c67be5b77
来源:牛客网
小易有n\mathit nn堆积木,第i\mathit ii堆积木有hih_{i}hi块。小易还拥有一个容量无限的背包。
一开始小易站在第一堆积木旁边。每次小易可以选择进行下列三种操作中的一种:
1、从背包里掏出一块积木(如果有的话)放到当前这一堆里
2、从当前这一堆积木里掏出一块塞到背包里(如果当前积木堆不为空的话)
3、从当前这一堆走到下一堆。
一开始小易的背包里有m\mathit mm块积木。小易希望把这些个积木变成严格递增的(即h1
链接:https://www.nowcoder.com/questionTerminal/ea786bfaf4004040a1ffca8c67be5b77
来源:牛客网
输入描述:
第一行数据组数T
对于每组数据,第一行数字n,m\mathit n,mn,m,接下来一行n\mathit nn个数字表示hih_{i}hi.
1≤n≤100000,0≤hi≤109,1≤T≤10,0≤m≤1091 \leq n \leq 100000 , 0 \leq h_{i} \leq 10^9 , 1 \leq T \leq 10 , 0 \leq m \leq 10^91≤n≤100000,0≤hi≤109,1≤T≤10,0≤m≤109
输出描述:
对于每组数据输出一行,输出结果YES或NO
示例1
输入
1 5 3 2 2 3 3 1
输出
YES
t = int(input())
for _ in range(t):
n, m = list(map(int, input().split()))
li = list(map(int, input().split()))
cur = m
flag = True
for i in range(n):
if li[i] > i:
cur += li[i] - i
elif li[i] < i:
if cur < i - li[i]:
flag = False
break
cur -= i - li[i]
if flag:
print('YES')
else:
print('NO')