比赛 2025.10.18 评测结果 AAAAAAAAAA
题目名称 01数列 最终得分 100
用户昵称 梦那边的没好TM 运行时间 0.028 s
代码语言 C++ 内存使用 3.69 MiB
提交时间 2025-10-18 11:03:59
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define foru(a,b,c) for(ll a=b;a<=c;a++)
#define mod 1000000007

ll ksm(ll a,ll e){
    a%=mod;
    if(a<0)a+=mod;
    ll r=1;
    while(e>0){
        if(e&1)r=(r*a)%mod;
        a=(a*a)%mod;
        e>>=1;
    }
    return r;
}

ll n,k,b[1005];

int main(){
    freopen("01.in" ,"r",stdin );
    freopen("01.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    int n;
    cin>>n;
    foru(i,1,n)cin>>b[i];
    ll k = 0;
    foru(i,1,n)k+=b[i];
    ll kn=k*n,d=n-2*k,pow2_d;
    if(d>=0){
        pow2_d=ksm(2,d);
    }else{
        ll t=ksm(2,-d);
        pow2_d=ksm(t,mod-2);
    }
    ll ans1=ksm(2,kn),tmp=(1+pow2_d)%mod;
    ll ans2=ksm(tmp,n);
    ll ans=ans1*ans2%mod;
    cout<<ans;
    return 0;
}