社区讨论

求助T23713

灌水区参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo1hvc6n
此快照首次捕获于
2023/10/22 21:18
2 年前
此快照最后确认于
2023/11/02 22:11
2 年前
查看原帖
rt,RE了。代码如下:
CPP
#include <bits/stdc++.h>
using namespace std;
vector<double> num;
int a, b, c;
void addAndShow() {
	long long sum=0;
	for(int i = a-1;i < b;i++) {
		sum+=(long long)num[i];
	}
	cout << sum;
}
void swapAToB() {
	int tmp=(b-a+1)/2;
	for(int i = 0;i < tmp;i++) {
		swap(num[a-1+i], num[b-1-i]);
	}
}
void AToBAddC() {
	for(int i = a-1;i < b;i++) {
		num[i]+=c;
	}
}
void AToBMultiplyC() {
	for(int i = a-1;i < b;i++) {
		num[i]*=c;
	}
}
void sqrtAToB() {
	for(int i = a-1;i < b;i++) {
		num[i]=sqrt(num[i]);
	}
}
void AToBAddSomeC() {
	for(int i = a-1;i < b;i++) {
		num[i]*=(i-a+2)*c;
	}
}
void swapAToBAndBToC() {
	for(int i = a-1;i < b;i++) {
		swap(num[i], num[i+b+1-a]);
	}
}
void ope(int w) {
	cin >> a >> b >> c;
	switch(w) {
		case 0:addAndShow();
		case 1:swapAToB();
		case 2:AToBAddC();
		case 3:AToBMultiplyC();
		case 4:sqrtAToB();
		case 5:AToBAddSomeC();
		case 6:swapAToBAndBToC();
	}
}
int main () {
	int n, m;
	cin >> n >> m;
	for(int i = 1;i <= n;i++) {
		int tmp;
		cin >> tmp;
		num.push_back(tmp);
	}
	for(int i = 1;i <= m;i++) {
		int w;
		cin >> w;
		ope(w);
	}
	return 0;
}
请问该怎么优化?

回复

5 条回复,欢迎继续交流。

正在加载回复...