B. Badge

题目链接

Codeforces Round #503 (by SIS, Div. 2)--B. Badge

题解

简单题。题意大概是有一群人,每个人会指向一个人,判断从每个人开始,不停标记他们指向的人,第一次被标记两次的人是谁。
数据量只有1000,直接模拟即可,极限情况下n2完全没问题。

代码

#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

int n, h, a, b, k, ta, fa, tb, fb;
int input[1005];
int num[1005];
int main() {

    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> input[i];
    }
    for (int i = 1; i <= n; i++) {
        memset(num, 0, sizeof(num));
        int pos = i;
        for (;;) {
            num[pos]++;
            if (num[pos] == 2) { cout << pos << ' '; break; }
            pos = input[pos];
        }
    }
}

标签: brute force

添加新评论