竞赛讨论区 > 数的变换一题一直显示段错误
头像
孝陵卫赵神的室友
发布于 2020-03-18 11:10
+ 关注

数的变换一题一直显示段错误

#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
LL num[50005] = {0};
const LL maxn = 1e9 + 7;

LL search(LL x, LL n)
{
        LL k;
        for(int i = i; i <= n; i++)
        {
                if(num[i] == x)
                {
                        k = i;
                        break;
                }
        }
        return k;
}

LL C(LL n, LL m)
{
        LL ans = 1;
        for(LL i = 1; i <= m; i++)
        {
                ans = ans * (n - m + i) / i;
        }
        return ans;
}

LL Lucas(LL k, LL x)
{
        if(x == 0 || k == x) return 1;
        return C(k % maxn, x % maxn) * Lucas(k / maxn, x / maxn) % maxn;
}
int main()
{
        LL T, n, q, x, k, h;
        cin >> T;
        while(T --)
        {
                memset(num, 0, sizeof(num));
                cin >> n >> q;
                for(int i = 1; i <= n; i++)
                {
                        cin >> h;
                        num[i] = h;
                }
                for(int i = 1; i <= q; i++)
                {
                        cin >> x >> k;
                        LL gx = search(x, n);
                        LL fx = (Lucas(k, gx) % n + 1);
                        cout << num[fx] << endl;
                }
                cin >> T;
        }
        return 0;
}
请问我这个为什么一直显示段错误?

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐