求助,打的暴力,TLE可以理解为社么会WA
查看原帖
求助,打的暴力,TLE可以理解为社么会WA
759274
Stevehim楼主2022/10/27 12:44

RT

#include <bits/stdc++.h>
#define maxn 100010
using namespace std;
int n, m;
int Q;
vector<int> G[maxn];
int in[maxn]; //存储入度
int a[maxn]; //初始数列
int func[maxn]; //存储每个函数的类刑(下标表示函数序号)
int func1[maxn][2]; //记录第一类函数存储的下标及加数
int func2[maxn]; //记录第二类函数的乘数
int f3_s[maxn];//每个第三类函数连接的函数个数
int f3_n[maxn]; //记录第三类函数的序号
vector<int> func3[maxn]; //存储每个第三类函数的连接函数
int func3_number; //记录个数
int b[maxn];

void _print() {
	for (int i = 0; i < n; i++) {
		cout << a[i] << ' ';
	}
	cout << endl;
}

void one(int i, int x) {
//	cout << a[i] << endl;
	a[i - 1] += x;
}

void two(int x) {
	for (int i = 0; i < n; i++) {
		a[i] *= x;
	}
//	_print();
}

void three(int x) { //x表示序号
	for (int i = 0; i < f3_s[x]; i++) {
		switch (func[func3[x][i]]) { //取出函数类型
			case 1: {
				one(func1[func3[x][i]][0], func1[func3[x][i]][1]);
				break;
			}
			case 2: {
				two(func2[func3[x][i]]);
				break;
			}
			case 3: {
				three(func3[x][i]);
				break;
			}
		}
	}
}



int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	cin >> m;
	for (int i = 1; i <= m; i++) {
		cin >> func[i];
		switch (func[i]) {
			case 1: {
				cin >> func1[i][0] >> func1[i][1];
				break;
			}
			case 2: {
				cin >> func2[i];
//				cout << i << ' ' << func[i] << ' ' << func2[i] << endl;
				break;
			}
			case 3: {
				cin >> f3_s[i];
				int t;
				for (int j = 0; j < f3_s[i]; j++) {
					cin >> t;
					func3[i].push_back(t);
				}
//				func3_number++;
				break;
			}
		}
	}
	cin >> Q;
	int number;
	for (int i = 0; i < Q; i++) {
		cin >> b[i];
	}
	for (int i = 0; i < Q; i++) {
		number = b[i];
//		cout << number << ' ' << func[number];
		switch (func[number]) {
			case 1: {
//				cout << func1[number][0] << ' ' << func1[number][1] << endl;
				one(func1[number][0], func1[number][1]);
				break;
			}
			case 2: {
//				cout << func2[number];
				two(func2[number]);
				break;
			}
			case 3: {
				three(number);
				break;
			}
		}
	}
	_print();
	return 0;
}

2022/10/27 12:44
加载中...