mojo's Blog

#732 (Div.2) B - AquaMoon and Stolen String 본문

코드포스

#732 (Div.2) B - AquaMoon and Stolen String

_mojo_ 2021. 7. 12. 16:47

문제 링크 => Problem - B - Codeforces

 

Problem - B - Codeforces

 

codeforces.com


문자열 관련하여 '^' 연산자를 사용하는 문제이다.

 

아이디어는 다음과 같다.

 

기존 문자열의 쌍과 기존 문자열의 쌍에 대한 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