题面:厕所战神(真实故事改编),有n道题,m道没换的题,k次去厕所的机会,a道写了不会被怀疑的题,'k'题有l行代码,给出每次去厕所抄代码的行数和错误的可能性,求ac的问题数。
解析:题目中有较多无关数据,其中真正有用的是a和概率。k题能ac,即每次去厕所抄的代码都正确。
图片说明
除法不能直接取模,用费马小定理求逆元。
代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k,a,l;
const int mod=4933;
ll kpow2(ll a,ll b)
{
    if(b==0) return 1;
    if(b%2==1) return a*kpow2(a,b-1)%mod;
    else {
        ll t=kpow2(a,b/2);
        return t*t%mod;                                                                                                                                     
    }
}//4933是质数,费马小定理求逆元inv=kpow2(t,mod-2)


ll p=1,ans=0;
int main(){
    cin>>n>>m>>k>>a>>l;
    for(int i=1;i<=k;i++){
        cin>>x>>y>>z ;
        if(y==0||x==0) continue;
        y=z-y;
        if(y==0){
             p=0;
            break;
        }//注意细节


        p=(p%mod*(y%mod)*(kpow2(z,mod-2)%mod))%mod;
    }
    ans=(a%mod+p)%mod;
    cout<<ans<<endl;


}