StarryCodingP290小玖的礼物题解

题目链接:P290 小玖的礼物 | StarryCoding算法竞赛平台 | OJ、ACM、CSP、OI训练与学习平台

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int T;
    cin>>T;
    while(T--)
    {
        //读入
        int n;
        cin>>n;
        //记录每个朋友收到礼物的来源
        int ans[101]={0};
        //下标从1开始直接对应收到礼物的人的编号
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            ans[x]=i;
        }
        //输出答案
        for(int i=1;i<=n-1;i++)cout<<ans[i]<<' ';
        cout<<ans[n]<<endl;
    }
    return 0;
}

本题思路简单,为压缩时间直接在读入数据时处理ans数组。逻辑如下:

假设读入第3个数据为5,含义为编号为3的朋友将礼物给到编号为5的朋友,此时处理ans数组,将下标为5的位置存储为3,即编号为5的朋友收到的礼物来自3号。如此便将题目信息转换成了目标结果。循环结束后ans数组中存储的就是编号为下标值的朋友收到来自编号为存储值的朋友。逐个输出即为本题答案。

posted @ 2024-07-31 16:28  Ryougi9  阅读(30)  评论(0)    收藏  举报  来源