围成一个圈,那么知道对面是谁加上半圈的人数就知道背后的是谁了。如果加完大于最大编号要减一下,或者取余。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX_N = 100 + 10;
const int MAX_M = 20 + 2;
char names[MAX_N][MAX_M];
int main()
{
int T;
cin >> T;
while(T--)
{
int n, dist;
char name[MAX_M];
cin >> n >> name;
for(int i = 0; i < n; i++)
{
cin >> names[i];
if(strcmp(names[i], name) == 0)
dist = i;
}
int res = dist + (n / 2);
if(res >= n)
res -= n;
cout << names[res] << endl;
}
return 0;
}
本文提供了解决ZOJ3488 Kagome Kagome问题的方法,通过输入人物数量及指定名字,计算并输出位于该人物背后的名字。使用C++实现,包括获取输入、字符串比较及进行位置计算。
515

被折叠的 条评论
为什么被折叠?



