修改数组

using namespace std;
const int N = 1e6 + 1e5 + 10;
int p[N];
int find(int x)  // 并查集
{
    if (p[x] != x) p[x] = find(p[x]);
    return p[x];
}
int main()
{
    int n;
    cin >>n;
    for(int i = 1; i <= N; i ++)p[i] = i;
    for(int i = 1; i <= n; i ++)
    {
        int x;
        cin >> x;
        x =find(x);
        cout << x<<" ";
        p[x] = x + 1;
        
    }
}
全部评论

相关推荐

07-18 18:37
门头沟学院 Java
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务