百撕不得骑姐
  • 板块P1347 排序
  • 楼主幽灵特工
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/4/3 20:44
  • 上次更新2023/11/5 01:05:21
查看原帖
百撕不得骑姐
332549
幽灵特工楼主2021/4/3 20:44

P1347,90分,下载了唯一错误的数据

输出:

Sorted sequence determined after 25 relations: ACEGIKMOQSUWYZBDFHJLNPRTVX.

我的运行结果:

Sorted sequence determined after 25 relations: ACEGIKMOQSUWYZBDFHJLNPRTVX.

明明一模一样好吧?为什么判我WA?

放上我的代码,大佬帮忙提交下看是不是OJ的问题

#include <bits/stdc++.h>
using namespace std;
int n, m;
vector <int> G[30];
bool vis[30];
char out[30];
char minone = '-';
int DFS(int x,int k) {
	if (vis[x])return 1;//矛盾,冲突;一误,再误!
	vis[x] = 1;
	out[k] = 'A' + x;
	
	int res = 0;
	for (int i = 0; i < G[x].size(); i++) {
		res = DFS(G[x][i], k + 1);
		if (res)return res;
	}
	if (k >= n)return 2;//已经确定
	vis[x] = 0;
	return 0;
}

int main() {
	cin >> n >> m;
	char a, b, c;
	int answer = 0;
	for (int i = 0; i < m; i++) {
		cin >> a >> b >> c;
		if (minone == '-')minone = a;
		else if (minone == c)minone = a;
		G[a - 'A'].push_back(c-'A');
		answer = DFS(minone - 'A', 1);
		if (answer == 1) {
			cout << "Inconsistency found after " << i + 1 << " relations."; return 0;
		}
		if (answer == 2) {
			cout << "Sorted sequence determined after " << i + 1 << " relations: ";
			for (int j = 0; j <= n; j++)cout << out[j];
			cout << ".";
			return 0;
		}
	}
	if (answer == 0) {
		cout << "Sorted sequence cannot be determined.";
	}
	return 0;
}
2021/4/3 20:44
加载中...