0pts WA*2+TLE*8
查看原帖
0pts WA*2+TLE*8
1426624
TangLingxin楼主2025/1/26 17:14
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int q,M;
        cin>>q>>M;
        long long x=1;
        long long mcs[100001];
        int mcc=0;
        for(int i=0;i<q;i++)
        {
            int a;
            cin>>a;
            if(a==1)
            {
                long long m;
                cin>>m;
                x=(x*m)%M;
                mcs[mcc++]=m;
                cout<<x<<'\n';
            }
            if(a==2)
            {
                int pos;
                cin>>pos;
                long long inv=1;
                long long m=mcs[pos]-1;
                long long y=M-2;
                while(y)
                {
                    if(y&1)
                    {
                        inv=(inv*m)%M;
                    }
                    m=(m*m)%M;
                    y>>=1;
                    x=(x*inv)%M;
                    cout<<x<<endl;
                }
            }
        }
    }
}
2025/1/26 17:14
加载中...