关于题目的理解 请教大佬
查看原帖
关于题目的理解 请教大佬
170047
小渣青999楼主2020/9/1 17:05

不明白为什么按着题目的意思操作直接模拟不行,感觉这复杂度就是O(n)。

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#define MAXN 1000010
#define _for(i,a,b) for(int i=(a);i<=(b);i++)
using namespace std;
typedef long long int ll;
int a[100010*5],b[100010*5];
int read()
{
    int x=0,f=1;
    char c=getchar();
    while(!isdigit(c)) 
    {
        if(c=='-') f=-1;
        c=getchar();

    }
    while(isdigit(c))
    {
        x=x*10+c-'0';
        c=getchar();
    }
    return x*f;
}
int main()
{
    int t=read();
    while(t--)
    {
        int n=read(),mod=read();
        ll ans=1;
        _for(i,1,n)
        {
            int x=read(),y=read();
            a[i]=y;
            //printf("x:%d y:%d\n",x,y);
            if(x==1)
            {
                ans=(ans*y)%mod;
                cout<<ans<<endl;

            }
            else
            {
                // printf("ay:%d\n",a[y]);
                 ans=(ans/a[y])%mod;
                 cout<<ans<<endl;
            }
            

        }
    }
    return 0;
}
2020/9/1 17:05
加载中...