记录编号 595218 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 正负游戏 最终得分 100
用户昵称 Gravatar郑霁桓 是否通过 通过
代码语言 C++ 运行时间 0.203 s
提交时间 2024-10-10 20:13:02 内存使用 3.86 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,x,y,z,p,h[1000005],s,a2[1000005];
long long M=998244353;
long long pow(long long x,long long y){
    long long ss=1;
    while(y){
        if(y%2==1) ss*=x,ss%=M;
        x*=x;
        x%=M;
        y/=2;
    }
    return ss;
}
int main(){
    freopen("plusminus.in","r",stdin);
    freopen("plusminus.out","w",stdout);
    cin>>n>>m>>k;
    if((n+m)%2==1){
        cout<<0;
        return 0;
    }
    if(n<m){
        p=1;
        swap(n,m);
    }
    while(k--){
        cin>>x>>y>>z;
        if(p) swap(x,y);
        h[x]++;
    }
    a2[0]=1;
    for(int i=1;i<=m;i++){
        a2[i]=a2[i-1]*2;
        a2[i]%=M;
    }
    s=1;
    for(int i=1;i<=n;i++){
        s*=a2[m-h[i]-1];
        s%=M;
    }
    s*=pow(a2[m-1],M-2);
    s%=M;
    cout<<s;
	return 0;
}