Link:

ARC 066 传送门

C:

如果存在可行方案则答案为$2^{n/2}$

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
typedef long long ll;
typedef pair<int,int> P;
const int MAXN=1e5+10,MOD=1e9+7;
int n,x,res[MAXN];

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x);
        int rk=(n-1+x)/2;
        if(!res[rk+1]) res[rk+1]=i;
        else if(!res[n-rk]) res[n-rk]=i;
        else return puts("0"),0;
    }
    int res=1;
    for(int i=1;i<=n/2;i++) (res*=2)%=MOD;
    printf("%d",res);
    return 0;
}
Problem C

相关文章:

  • 2021-12-29
  • 2022-12-23
  • 2021-09-30
  • 2021-10-15
  • 2022-01-23
  • 2021-10-04
  • 2022-02-20
猜你喜欢
  • 2021-10-24
  • 2021-06-16
  • 2021-07-10
  • 2022-12-23
  • 2021-11-06
  • 2021-04-24
  • 2022-12-23
相关资源
相似解决方案