WA #1#2#3#9#10#11求调
查看原帖
WA #1#2#3#9#10#11求调
1419939
hbdcsd楼主2025/7/28 10:19

rt

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <cctype>
#include <string>
#include <cstring>
#include <climits>
#include <cstdlib>
#include <cctype>
#include <stack>
#include <queue>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <unordered_set>
#include <unordered_map>
#define int ll
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int MOD = 998244353;
const int mod = 1e9 + 7;
int n, m, ty1, ty2, u, v, w;
vector<pii> a[1005], rev[305];
int g[305][305], gl[205][305], chong, zih, A[305], B[90005], Z[90005], vis[305][305];
signed main(){
	cin >> n >> m >> ty1 >> ty2;
	for (int i = 1; i <= m; i++){
		if (ty2 == 0){
			cin >> u >> v;
			if (u == v) zih = 1;
			if (ty1 == 0){
				a[u].push_back({v, 1});
				a[v].push_back({u, 1});
				rev[u].push_back({v, 1});
				rev[v].push_back({u, 1});
				g[u][v] = 1, g[v][u] = 1;
				gl[u][i] = 1, gl[v][i] = 1;
			} else {
				a[u].push_back({v, 1});
				rev[v].push_back({u, 1});
				g[u][v] = 1;
				gl[u][i] = 1;
				gl[v][i] = -1;
			}
			if (vis[u][v] == 1) chong = 1;
			if (ty1 == 0) vis[u][v] = vis[v][u] = 1;
			else vis[u][v] = 1;
		} else {
			cin >> u >> v >> w;
			if (u == v) zih = 1;
			if (ty1 == 0){
				a[u].push_back({v, w});
				a[v].push_back({u, w});
				rev[u].push_back({v, w});
				rev[v].push_back({u, w});
				g[u][v] = w, g[v][u] = w;
			} else {
				a[u].push_back({v, w});
				rev[v].push_back({u, w});
				g[u][v] = w;
			}
			if (vis[u][v] == 1) chong = 1;
			if (ty1 == 0) vis[u][v] = vis[v][u] = 1;
			else vis[u][v] = 1;
		}
	}
	if (!chong){
		for (int i = 1; i <= n; i++, cout << "\n") for (int j = 1; j <= n; j++) cout << g[i][j] << " ";
	}
	if (ty2 == 0 && zih == 0){
		for (int i = 1; i <= n; i++, cout << "\n") for (int j = 1; j <= m; j++) cout << gl[i][j] << " ";
	}
	if (ty2 == 0){
		for (int i = 1; i <= n; i++, cout << "\n") for (pii j: a[i]) cout << j.first << " ";
	} else {
		for (int i = 1; i <= n; i++, cout << "\n") for (pii j: a[i]) cout << j.first << " " << j.second << " ";
	}
	A[1] = 1;
	int k = 0;
	for (int i = 1; i <= n; i++){
		A[i + 1] = A[i] + a[i].size();
		for (pii j: a[i]){
			B[++k] = j.first;
			if (ty2 == 1) Z[k] = j.second;
		}
	}
	for (int i = 1; i <= n + 1; i++) cout << A[i] << " ";
	cout << "\n";
	for (int i = 1; i <= k; i++) cout << B[i] << " ";
	cout << "\n";
	if (ty2 == 1){
		for (int i = 1; i <= k; i++) cout << Z[i] << " ";
		cout << "\n";
	}
	if (ty1 == 0) return 0;
	A[1] = 1;
	k = 0;
	for (int i = 1; i <= n; i++){
		A[i + 1] = A[i] + rev[i].size();
		for (pii j: rev[i]){
			B[++k] = j.first;
			if (ty2 == 1) Z[k] = j.second;
		}
	}
	for (int i = 1; i <= n + 1; i++) cout << A[i] << " ";
	cout << "\n";
	for (int i = 1; i <= k; i++) cout << B[i] << " ";
	cout << "\n";
	if (ty2 == 1){
		for (int i = 1; i <= k; i++) cout << Z[i] << " ";
		cout << "\n";
	}
	return 0;
}
2025/7/28 10:19
加载中...