比赛 26暑假集训模拟赛1 评测结果 WWWWWWWWWW
题目名称 最终得分 0
用户昵称 exil 运行时间 0.233 s
代码语言 C++ 内存使用 3.67 MiB
提交时间 2026-06-29 12:58:34
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,p;
int xu[10005];
int lei[1005];
int ans;
void digui(int now){
    if(now>n){
        int ci=0;
        for(int i = 1;i<=n;i++){
            if(xu[i-1]>xu[i]){
                ci++;
            }
            if(ci==3){
                return;
            }
        }
        ans++;
        ans%=p;
        return;
    }
    for(int i = 1;i<=n;i++){
        if(lei[i]==0){
            lei[i]=1;
            xu[now]=i;
            digui(now+1);
            lei[i]=0;
            xu[now]=0;
        }
    }
}
signed main(){
    freopen("great.in","r",stdin);
    freopen("great.out","w",stdout);
    cin>>n>>p;
    if(n<=10){
        ans=0;
        digui(1);
        cout<<ans<<endl;
        return 0;
    }
    int yi=23,er=93,san=360;
    yi%=p,er%=p,san%=p;
    for(int i = 7;i<=n;i++){
        int err=er,sann=san;
        san=(5*san)%p-(8*er)%p+(5*yi)%p;
        er=sann;
        yi=err;
        yi%=p,er%=p,san%=p;
    }
    cout<<san;
    
    
    return 0;
}