不是VIP会员,不能显示答案

题目解答

题目:
#include <iostream>

using namespace std;



const int maxn=100001;



int N,M,K;

int x[maxn], y[maxn],d[maxn];

int c[maxn];

int *a[maxn];



int main() {

cin>>N>>M>>K;

for (int i=0; i<K; ++i) {

cin >>x[i]>>y[i]>>d[i];//表示第x[i]行第y[i]列的值为d[i]

c[y[i]]++;

}

for (int i=1; i<=M; ++i)

a[i]=new int[c[i]];

for (int i= 0; i<K; ++i) {

*a[y[i]]=d[i];

a[y[i]]++;

}



for (int i=1; i<=M; ++i) {

a[i]=a[i]-c[i];

for (int j=0; j<c[i]; ++j,++a[i])

cout <<*a[i]<<" ";

}

return 0;

}




判断题

1) 程序第9行定义了一个指针数组,a[i]表示第i列的指针。( )

2) 第20行代码改成a[y[i][0]=d[i]不影响运算结果。( )

3) 第15行中,数组c用来统计每行中的数据个数。( )

4) 本程序中,采用动态数组以优化空间的利用,每一列数组长度可能不同。


选择题

5) 该程序的时间复杂度为( )。

6) 该程序的空间复杂度为( )。
考点:
分析:
解答:
评论:
老师: