LuoguP7369 [COCI2018-2019#4] Elder 题解

Content

有一个魔杖最初在 \(Z\) 巫师中。经过 \(n\) 轮较量,第 \(i\) 轮中,\(Z_{i,1}\) 巫师打败了 \(Z_{i,2}\) 巫师。如果一个巫师打败了拥有魔杖的巫师,那么魔杖就到了获胜的巫师手中。问:

  • 最后魔杖在哪个巫师哪里。
  • 魔杖一共经过多少巫师之手。

数据范围:\(n\in[1,100]\)

Solution

第一个问题直接模拟,将魔杖按照规则不断传递。

第二个问题开个 \(vis\) 数组,直接判断是否出现过,没出现过标记一下再累加答案即可。

Code

int n, ans;
char first[2], game1[2], game2[2];
map<char, int> vis;

int main() {
	scanf("%s%d", first, &n);
	vis[first[0]] = 1, ans++;
	for(int i = 1; i <= n; ++i) {
		scanf("%s%s", game1, game2);
		if(game2[0] == first[0]) {
			first[0] = game1[0];
			if(!vis[game1[0]]) vis[game1[0]] = 1, ans++;
		}
	}
	printf("%c\n%d", first[0], ans);
	return 0;
} 
posted @ 2021-12-16 14:28  Eason_AC  阅读(41)  评论(0)    收藏  举报