练习求助×2(下次会更多)
  • 板块灌水区
  • 楼主haimingbei
  • 当前回复5
  • 已保存回复7
  • 发布时间2024/8/13 11:28
  • 上次更新2024/8/13 14:20:39
查看原帖
练习求助×2(下次会更多)
1235026
haimingbei楼主2024/8/13 11:28

没办法,老师作业错的不会订正(┭┮﹏┭┮),给答案能给个解释吗(求求了ε=(´ο`*)))唉)

3.2019年10月14日是星期一,1978年10月14日是()

A.星期日

B.星期五

C.星期一

D.星期六

5.由五个不同的节点构成的树有()种

(此题我都没明白什么意思(捂脸(/ω\)))

A. 3125
B. 125
C.32
D.1024

6.有一个长为6的A序列:{3,2,0,4,6,1},现通过进行交换其中相邻两个数字的操作进行排序,要将A序列排成从小到大的递增序列最少要进行多少次交换操作()

A.5
B.6
C.7
D.15

7.某算法计算时间表示为递推关系式: T(N)=N+T(N/2) ,则该算法时间复杂度为( )

A.O(N*N)

B.O(NlogN)

C.O(N)

D.O(1)

12.字符串”abcab”本质不同的子串个数()

A.15

B.14

C.13

D.12

二、阅读程序写结果

第一题

#include <algorithm>
#include <stdio.h>
using namespace std;
int w[35000],d[35000],dp[35000];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
       scanf("%d%d",&w[i],&d[i]);
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=w[i];j--)
        {
            dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
        }
    }
    printf("%d\n",dp[m]);
    return 0;
}

5. 当输入为:

4 6

1 4

2 6

3 12

2 7

输出为( )

A.17

B. 28

C. 29

D. 23

三、完善程序

1. 请完善下面的程序,使用BFS统计一张边权都为1的图中,从给定起点到所有点的距离:

#include<algorithm>
#include<cstdio>
#include<vector>
#define N 200020
using namespace std;
int n,m;
vector<int>G[N];
int q[N],hd,tl;
int dis[N];
void BFS(___(1)_____)
{
	hd=1,tl=0;
	for(int i=1;i<=n;i++)dis[i]=-1;
	q[++tl]=st,dis[st]=0;
	while(____(2)_____)
	{
		int u=q[hd++];
		for(int i=0;i<G[u].size();i++)
		{
			int v=G[u][i];
			if(____(3)____)continue;
			dis[v]=dis[u]+1;
			q[++tl]=v;
		}
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		G[x].push_back(y);
		______(4)________;
	}
	int st;
	scanf("%d",&st);
	BFS(st);
	for(_____(5)_____)printf("%d ",dis[i]);
}

1.上述程序___(1)___中应该填写()

A.int u;

B.int st;

C.int &st;

D.int st

2.上述程序___(2)___中应该填写()

A.hd<tl

B.hd>tl

C.hd<=tl

D.hd>=tl

2024/8/13 11:28
加载中...