问题 5187 --最小波动值

5187: 最小波动值★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 21  解决: 6
[提交][状态][命题人:]

题目描述


#include <bits/stdc++.h>
using namespace std;
int df[640][10];
int dff[640][10];
int df1[640];

int day; //一共经营的天数
int num[400];//数组num按经营时间顺序存储每天营业额
int numy[400];//数组numy按营业额降序存储每天营业额
int item[400][2];//根据数组构造链表
inline bool cmp (int x, int y) {
	return _____(1)______;
}

int main() {
	cin >> day;
	for (int i = 1; i <= day; i++) {
		for (int j = 0; j <= 4; j++)
			cin >> df[i][j];
	}
	int ct = 0;
	for (int i = 1; i <= day; i++) {
		if (______(2)_____) { //筛选营业的记录
			dff[ct][0] = df[i][0];
			dff[ct][1] = df[i][1];
			dff[ct][2] = df[i][2];
			dff[ct][3] = df[i][3];
			dff[ct][4] = df[i][4];
			++ct;
		}
	}
	for (int i = 0; i < ct; i++) {
		dff[i][5] = dff[i][0] + dff[i][1] + dff[i][2] + dff[i][3] + dff[i][4];
		df1[i] = dff[i][5];
	}
	for (int i = 0; i < ct; i++) {
		num[i] = df1[i];
	}
	sort(df1, df1 + ct, cmp);
	for (int i = 0; i < ct; i++) {
		numy[i] = df1[i];
	}
	int n = 1;
	for (int i = 1; i <= ct; i++) {
		item[i - 1][0] = numy[i - 1];
		item[i - 1][1] = n;
		n += 1;
	}
	item[n - 2][1] = -1;
	int head = 0;
	int k = 0;
	int tot = _____(3)______;
	int p;
	for (int i = ct - 1; i > 0; i--) {
		p = head;
		while (item[p][0] != num[i]) {
			k = p;
			______(4)_______;
		}
		int f = item[p][1];
		if (f == -1)
			tot += abs(item[k][0] - item[p][0]);
		else if (p == head) {
			tot += abs(item[f][0] - item[p][0]);
		} else
			tot += _______(5)_________;
		if (p == head)
			head = item[head][1];
		else
			______(6)________;
	}
	printf("%d\n", tot);
	return 0;
}


输入

输出

1)第1空的答案为__________

A.   x<y      B.  x>y       C. x!=y       D. x==y

2)第2空的答案为__________

A.   df[i][1]!=0      B.  df[i][2]!=0       C. df[i][3]!=0       D. df[i][4]!=0

3)第3空的答案为__________

A.   0      B.  -1      C.   num[0]        D. num[1]

4)第4空的答案为__________

A.   p=item[p][1]      B.  k=item[p][0]    

C.   k=item[p][1]        D. p=item[p][0]

5)第5空的答案为__________

A.  abs(item[f][0]-item[k][0])      

B.  min(abs(item[f][0]-item[p][0]),abs(item[k][0]-item[p][0]))        

C.  abs(item[f][0]-item[p][0])+abs(item[k][0]-item[p][0]) 

D.  abs(item[f][0]-item[p][0])-abs(item[k][0]-item[p][0]) 

6)第6空的答案为_____________

A.   head=item[p][1]      B.  item[k][1]=f        

C.  item[p][1]=k             D.  item[k][1]=item[f][1]

7)若营业额数为13,10,14,15,3,11,则最小波动值为________

A.   30   B. 24   C. 27   D. 26

提示

只需提交7个选项的答案,一行一个,均为大写字母。代码格式如下:

#include<iostream>
using namespace std;
int main()
{
	cout<<"A\n";
	cout<<"A\n";
	cout<<"A\n";
	cout<<"A\n";
	cout<<"A\n";
	cout<<"A\n";
	cout<<"A\n";
 	return 0;
}


来源

[提交][状态]