Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
193992 luckypet 修复符文 C++ 编译错误 0 0 MS 0 KB 1683 2025-05-29 14:26:11

Tests(0/0):


#include <iostream> #include <string> #include <algorithm> #include <set> using namespace std; string transform(const string& s, int x) { int n = s.length(); string left = s.substr(0, x); string right = s.substr(x); string new_str = right + left; reverse(new_str.begin(), new_str.end()); return new_str; } bool can_transform(const string& s, const string& t, int a, int b) { if (s == t) return true; int n = s.length(); if (n != t.length()) return false; set<string> visited; set<string> queue; queue.insert(s); visited.insert(s); while (!queue.empty()) { set<string> next_queue; for (const string& current : queue) { // 尝试变换a string next_a = transform(current, a); if (next_a == t) return true; if (visited.find(next_a) == visited.end()) { visited.insert(next_a); next_queue.insert(next_a); } // 尝试变换b string next_b = transform(current, b); if (next_b == t) return true; if (visited.find(next_b) == visited.end()) { visited.insert(next_b); next_queue.insert(next_b); } } queue = next_queue; } return false; } int main() { int T; cin >> T; for (int i = 0; i < T; i++) { string s, t; int a, b; cin >> s >> t; cin >> a >> b; if (can_transform(s, t, a, b)) { cout << "yes" << endl; } else { cout << "no"


测评信息: