进阶PAT 2021-12-25 15:52 采纳率: 78.4%
浏览 103
已结题

C++圣诞节快乐⊙▽⊙

C最近玩上了新游戏,他想在网上交一些朋友,但他不知道应该交什么样的朋友。
首先,小C需要一个随机数生成器来帮助他进行选择,小C找到了一个可生成n个可行朋友id的随机数生成器,代码如下
include<iostream>

using namespace std;
int n,seed,arr[1000001];
void Rand(int seed)
{
seed|=0x123456 ;
for(int i=1;i<=n;i++){
arr[i ]=seed;
seed^=(arr[i]+i);
seed%=10000000;
seed+=1;
}
}
int main()
{
cin>>n>>seed;Rand( seed);
//todo
return 0;
}
得到n个随机数后将他们进行排序。小C会进行m次挑选,每次挑选下标为x的数,选择第x大的数的人交朋友。
输入格式:
第一行包括两个数字n seed
第二行输入一个数字m表示将会进行n组询问
接下来m行 每i行包含一个数字xi,表示将要选择第xi大的数

输出格式:
输出包括m行 每行输出询问的结果
输入样例
10 233
5
2
4
6
8
10
输出样例:
6
10
25
60
1193215
数据范围与提示
n<=1e7,m<=1e5

  • 写回答

2条回答 默认 最新

  • 南七灵 2021-12-25 16:21
    关注
    
    #include <iostream>
    using namespace std;
    int n, seed, arr[1000001];
    void Rand(int seed)
    {
        seed |= 0x123456;
        for (int i = 1; i <= n; i++)
        {
            arr[i] = seed;
            seed ^= (arr[i] + i);
            seed %= 10000000;
            seed += 1;
        }
    }
    int main()
    {
        cin >> n >> seed;
        Rand(seed);
        //降序排序
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= n - i; j++)
            {
                if (arr[j] > arr[j + 1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        int m,t = 0;
        cin >> m;
        int a[m];
        for(int i = 0;i < m;i++){
            cin >> a[i];
        }
        for(int i = 0;i < m;i++){
            cout << arr[a[i]] << endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月25日

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭