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