mojo's Blog
#732 (Div.2) B - AquaMoon and Stolen String 본문
문제 링크 => Problem - B - Codeforces
문자열 관련하여 '^' 연산자를 사용하는 문제이다.
아이디어는 다음과 같다.
기존 문자열의 쌍과 기존 문자열의 쌍에 대한 permutated 문자열의 쌍을 각각 '^' 연산을 취해주면 0이 된다. (이때 0을 베이스로 깔고 감)
즉, (2*n - 1) 개의 문자열 중에서 stolen string을 제외한 문자들을 전부 '^' 연산을 한 결과는 0이 됨을 아는것이 중요하다.
풀이 code
#define _CRT_SECURE_NO_WARNINGS
#include <string>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <time.h>
#define INF 100000000
#define endl '\n'
#define MOD 1000000009
using namespace std;
void test() {
int n, m;
cin >> n >> m;
string ans(m, 0);
for (int i = 0; i < 2 * n - 1; i++) {
string tmp;
cin >> tmp;
for (int j = 0; j < m; j++) {
ans[j] = ans[j] ^ tmp[j];
}
}
cout << ans << endl;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int t;
cin >> t;
for (int i = 0; i < t; i++) {
test();
}
return 0;
}
'코드포스' 카테고리의 다른 글
#738 (Div.2) C - Mocha and Hiking (0) | 2021.08.16 |
---|---|
#738 (Div.2) B - Mocha and Red and Blue (0) | 2021.08.16 |
#736 (Div.2) C - Web of Lies (0) | 2021.08.02 |
#727 (Div.2) C - Stable Groups (0) | 2021.07.05 |
#729 (Div. 2) B - Plus and Multiply (0) | 2021.07.04 |
Comments