考拉 解题报告

题目描述
其中 \(n,m \leq 100\)
初见毫无思路,于是打了暴力。枚举了一定范围内的 \((n,m)\),发现答案矩阵长这样:
\(\begin{bmatrix} 1 & 0 & 1 & 0 & 1 & ... \\ 0 & 2 & 0 & 8 & 0 & ... \\ 1 & 0 & 16 & 0 & 256 & ... \\ 0 & 8 & 0 & 512 & 0 & ...\\ 1 & 0 & 256 & 0 & 65536 & ...\\ ... & ... & ...& ... & ... & ... \end{bmatrix}\)
发现矩阵中的非零数都是 \(2\) 的若干次,且数值非零的位置的横纵下标的奇偶性一定相同。经过猜想,我们发现 \((i,j)\) 位置的值为 \(2^{i+j-2}\)
启示:无头绪时打表

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define For(i,s,t) for(int i=s;i<=t;i++)
#define Down(i,s,t) for(int i=s;i>=t;i--)
using namespace std;
typedef long long ll;
inline int min(int x,int y){return x<y?x:y;}
inline int max(int x,int y){return x>y?x:y;}
inline int read(){
    register int x=0;
    char c=getchar();
    while(c<'0' || '9'<c) c=getchar();
    while('0'<=c && c<='9') x=(x<<1)+(x<<3)+c-'0',c=getchar();
    return x;
}
const int N=1e3+10,mod=1e4;
int T,n,m,a[N][N];
struct Big{
  int first,a[N];
  Big(int _x=0){
    memset(a,0,sizeof(a));
    first=0,a[first]=_x;
  }
  Big operator *(const Big x) const{
    Big ans;
    ans.first=first+x.first;
    For(i,0,first)
      For(j,0,x.first)
        ans.a[i+j]+=a[i]*x.a[j],ans.a[i+j+1]+=ans.a[i+j]/mod,ans.a[i+j]%=mod;
    For(i,0,ans.first)
      ans.a[i+1]+=ans.a[i]/mod,ans.a[i]%=mod;
    if(ans.a[ans.first+1]) ans.first++;
    return ans;
  }
  void print(){
    printf("%d",a[first]);
    Down(i,first-1,0){
        if(a[i]<1000) putchar('0');
        if(a[i]<100) putchar('0');
        if(a[i]<10) putchar('0');
        printf("%d",a[i]);
    }
  }
}ans,x;
void quick_pow(int y){
    ans=Big(1),x=Big(2);
    while(y){
        if(y&1)
            ans=ans*x;
        x=x*x;
        y>>=1;
    }
}
void slove(){
    n=read(),m=read();
    if(n%2!=m%2){printf("0\n");return;}
    if(n>m) swap(n,m);
    int pow=0,nw=n+m-3;
    For(i,2,n)
      pow+=nw,nw-=2;
    quick_pow(pow);
    ans.print();
    putchar('\n');
}
int main()
{
    freopen("koala.in","r",stdin);
    freopen("koala.out","w",stdout);
    T=read();
    while(T--) slove();
    return 0;
}
posted @ 2025-07-09 21:26  XiaoZi_qwq  阅读(9)  评论(0)    收藏  举报